Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, bir sohbet uygulamasının yanıtlarını bir dizi doğru veya ideal yanıtla (temel gerçek olarak bilinir) nasıl değerlendirebilirsiniz? Sohbet uygulamanızı yanıtları etkileyecek şekilde değiştirdiğinizde, değişiklikleri karşılaştırmak için bir değerlendirme çalıştırın. Bu tanıtım uygulaması, değerlendirmeleri çalıştırmayı kolaylaştırmak için bugün kullanabileceğiniz araçlar sunar.
Bu makaledeki yönergeleri izleyerek:
- Konu etki alanına göre uyarlanmış sağlanan örnek istemleri kullanın. Bu istemler zaten depodadır.
- Kendi belgelerinizden örnek kullanıcı soruları ve temel gerçek yanıtları oluşturun.
- Oluşturulan kullanıcı sorularıyla örnek bir istem kullanarak değerlendirmeleri çalıştırın.
- Yanıtların analizini gözden geçirin.
Not
Bu makalede, makaledeki örnekler ve kılavuzlar için temel olarak bir veya daha fazla yapay zeka uygulaması şablonu kullanılır. Yapay zeka uygulama şablonları, dağıtımı kolay ve iyi bakımlı referans uygulamaları sağlar. Yapay zeka uygulamalarınız için yüksek kaliteli bir başlangıç noktası sağlamaya yardımcı olur.
Mimariye genel bakış
Mimarinin temel bileşenleri şunlardır:
- Azure tarafından barındırılan sohbet uygulaması: Sohbet uygulaması Azure Uygulaması Hizmeti'nde çalışır.
- Microsoft AI Sohbet Protokolü: Protokol, yapay zeka çözümleri ve dilleri arasında standartlaştırılmış API sözleşmeleri sağlar. Sohbet uygulaması, değerlendirme uygulamasının protokole uyan tüm sohbet uygulamalarına karşı çalışmasını sağlayan Microsoft AI Sohbet Protokolü'ne uygundur.
- Azure AI Search: Sohbet uygulaması, kendi belgelerinizdeki verileri depolamak için Azure AI Search kullanır.
- Örnek sorular oluşturucu: Araç, her belge için temel gerçeğin yanıtıyla birlikte birçok soru oluşturabilir. Ne kadar çok soru olursa değerlendirmeler o kadar uzun olur.
- Değerlendirici: Araç, sohbet uygulamasında örnek sorular ve istemler çalıştırır ve sonuçları döndürür.
- İnceleme aracı: Araç, değerlendirmelerin sonuçlarını gözden geçirir.
- Fark aracı: Araç, değerlendirmeler arasındaki yanıtları karşılaştırır.
Bu değerlendirmeyi Azure'a dağıttığınızda, model için GPT-4 kendi kapasitesine sahip Azure OpenAI Hizmeti uç noktası oluşturulur. Sohbet uygulamalarını değerlendirirken, değerlendiricinin kendi kapasitesini kullanarak GPT-4 kendi Azure OpenAI kaynağına sahip olması önemlidir.
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun
Sohbet uygulaması dağıtma.
Bu sohbet uygulamaları verileri Azure AI Search kaynağına yükler. Değerlendirme uygulamasının çalışması için bu kaynak gereklidir. Önceki yordamın Kaynakları temizleme bölümünü tamamlamayın.
Bu makaledeki sohbet uygulaması olarak adlandırılan bu dağıtımdan aşağıdaki Azure kaynak bilgilerine ihtiyacınız vardır:
- Sohbet API'sinin URI'si: İşlemin sonunda
azd upgösterilen hizmet arka uç uç noktası. - Azure AI Arama. Aşağıdaki değerler gereklidir:
- Kaynak adı: İşlem sırasında
Search serviceolarakazd upbildirilen Azure AI Search kaynak adının adı. - Dizin adı: Belgelerinizin depolandığı Azure AI Search dizininin adı. Dizin adını Arama hizmeti için Azure portalında bulabilirsiniz.
- Kaynak adı: İşlem sırasında
Sohbet API'si URL'si, değerlendirmelerin arka uç uygulamanız üzerinden istekte bulunabilmesini sağlar. Azure AI Arama bilgileri, değerlendirme betiklerinin belgelerle birlikte yüklenen arka ucunuzla aynı dağıtımı kullanmasına olanak tanır.
Bu bilgileri topladıktan sonra sohbet uygulaması geliştirme ortamını yeniden kullanmanız gerekmez. Bu makale, sohbet uygulamasını birkaç kez referans alarak Değerlendirmeler uygulamasının onu nasıl kullandığını gösterir. Bu makaledeki tüm adımları tamamlamadan sohbet uygulaması kaynaklarını silmeyin.
- Sohbet API'sinin URI'si: İşlemin sonunda
Bu makaleyi tamamlamak için gereken tüm bağımlılıklarla birlikte bir geliştirme kapsayıcısı ortamı sağlanır. Geliştirme kapsayıcısını GitHub Codespaces'ta (tarayıcıda) veya Visual Studio Code'u kullanarak yerel olarak çalıştırabilirsiniz.
- GitHub hesabı
Geliştirme ortamı açma
Bu makaleyi tamamlamak için gerekli tüm bağımlılıklarla önceden yapılandırılmış bir geliştirme ortamı ayarlamak için bu yönergeleri izleyin. Bu belgeleri ve geliştirme ortamını aynı anda görebilmek için monitör çalışma alanınızı düzenleyin.
Bu makale, değerlendirme dağıtımı için bölgeyle switzerlandnorth test edilmiştir.
GitHub Codespaces, Kullanıcı arabirimi olarak Web için Visual Studio Code ile GitHub tarafından yönetilen bir geliştirme kapsayıcısı çalıştırır. En kolay geliştirme ortamı için GitHub Codespaces'i kullanın. Bu makaleyi tamamlamak için doğru geliştirici araçları ve bağımlılıkları önceden yüklenmiş olarak gelir.
Önemli
Tüm GitHub hesapları, iki çekirdek örneğiyle her ay 60 saate kadar ücretsiz gitHub Codespaces kullanabilir. Daha fazla bilgi için bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.
mainGitHub deposunun dalında yeni bir GitHub kod alanı oluşturma işlemini başlatın.Geliştirme ortamını ve sağlanan belgeleri aynı anda görüntülemek için aşağıdaki düğmeye sağ tıklayın ve Bağlantıyı yeni pencerede aç'ı seçin.
Codespace oluştur sayfasında codespace yapılandırma ayarlarını gözden geçirin ve ardından Yeni kod alanı oluştur'u seçin.
Kod alanının başlamasını bekleyin. Bu başlatma işlemi birkaç dakika sürebilir.
Ekranın alt kısmındaki terminalde Azure Geliştirici CLI'sı ile Azure'da oturum açın:
azd auth login --use-device-codeKodu terminalden kopyalayın ve bir tarayıcıya yapıştırın. Azure hesabınızla kimlik doğrulaması yapmak için yönergeleri izleyin.
Değerlendirme uygulaması için gerekli Azure kaynağını (Azure OpenAI Hizmeti) sağlayın:
azd upBu
AZDkomut değerlendirme uygulamasını dağıtmaz, ancak değerlendirmeleri yerel geliştirme ortamında çalıştırmak için gerekliGPT-4bir dağıtımla Azure OpenAI kaynağını oluşturur.
Bu makaledeki kalan görevler bu geliştirme kapsayıcısı bağlamında gerçekleşir.
GitHub deposunun adı arama çubuğunda görünür. Bu görsel gösterge, değerlendirme uygulamasını sohbet uygulamasından ayırmanıza yardımcı olur. Bu ai-rag-chat-evaluator depo, bu makaledeki değerlendirme uygulaması olarak adlandırılır.
Ortam değerlerini ve yapılandırma bilgilerini hazırlama
Ortam değerlerini ve yapılandırma bilgilerini değerlendirme uygulaması önkoşulları sırasında topladığınız bilgilerle güncelleştirin.
.envtemelinde bir.env.sampledosya oluşturun.cp .env.sample .envGerekli değerleri dağıtılan kaynak grubunuzdan
AZURE_OPENAI_EVAL_DEPLOYMENTveAZURE_OPENAI_SERVICEalmak için bu komutu çalıştırın. Bu değerleri dosyaya yapıştırın.env.azd env get-value AZURE_OPENAI_EVAL_DEPLOYMENT azd env get-value AZURE_OPENAI_SERVICEAzure AI Search örneği için sohbet uygulamasından aşağıdaki değerleri,
.envbölümünde topladığınız dosyasına ekleyin.AZURE_SEARCH_SERVICE="<service-name>" AZURE_SEARCH_INDEX="<index-name>"
Yapılandırma bilgileri için Microsoft AI Sohbet Protokolü'ni kullanma
Sohbet uygulaması ve değerlendirme uygulaması, tüketim ve değerlendirme için kullanılan açık kaynak, bulut ve dilden bağımsız bir yapay zeka uç noktası API'si sözleşmesi olan Microsoft AI Sohbet Protokolü belirtimini uygular. İstemciniz ve orta katman uç noktalarınız bu API belirtimine uyduğunda yapay zeka arka uçlarınızda sürekli olarak değerlendirmeleri kullanabilir ve çalıştırabilirsiniz.
adlı
my_config.jsonyeni bir dosya oluşturun ve içine aşağıdaki içeriği kopyalayın:{ "testdata_path": "my_input/qa.jsonl", "results_dir": "my_results/experiment<TIMESTAMP>", "target_url": "http://localhost:50505/chat", "target_parameters": { "overrides": { "top": 3, "temperature": 0.3, "retrieval_mode": "hybrid", "semantic_ranker": false, "prompt_template": "<READFILE>my_input/prompt_refined.txt", "seed": 1 } } }Değerlendirme betiği klasörü oluşturur
my_results.overridesnesnesi, uygulama için gereken tüm yapılandırma ayarlarını içerir. Her uygulama kendi ayar özellikleri kümesini tanımlar.Sohbet uygulamasına gönderilen ayar özelliklerinin anlamını anlamak için aşağıdaki tabloyu kullanın.
Ayarlar özelliği Açıklama semantic_rankerKullanıcının sorgusuyla anlamsal benzerlik temelinde arama sonuçlarını yeniden oluşturan bir model olan anlam derecesini kullanıp kullanmama. Maliyetleri azaltmak için bu öğreticide devre dışı bırakıyoruz. retrieval_modeKullanılacak alma modu. Varsayılan değer: hybrid.temperatureModelin sıcaklık ayarı. Varsayılan değer: 0.3.topDöndürülecek arama sonuçlarının sayısı. Varsayılan değer: 3.prompt_templateSoruya ve arama sonuçlarına göre yanıt oluşturmak için kullanılan istem geçersiz kılınan. seedGPT modellerine yapılan çağrıların tohum değeri. Bir tohum ayarlamak, değerlendirmeler arasında daha tutarlı sonuçlara neden olur. target_urlDeğeri, Önkoşullar bölümünde topladığınız sohbet uygulamanızın URI değeriyle değiştirin. Sohbet uygulamasının sohbet protokolüne uygun olması gerekir. URI şu biçimdedir:https://CHAT-APP-URL/chat. Protokolün vechatyolun URI'nin parçası olduğundan emin olun.
Örnek veri oluşturma
Yeni yanıtları değerlendirmek için, belirli bir sorunun ideal yanıtı olan temel bir gerçek yanıtıyla karşılaştırılmalıdır. Sohbet uygulaması için Azure AI Search'te depolanan belgelerden sorular ve yanıtlar oluşturun.
example_inputklasörü adlımy_inputyeni bir klasöre kopyalayın.Bir terminalde aşağıdaki komutu çalıştırarak örnek verileri oluşturun:
python -m evaltools generate --output=my_input/qa.jsonl --persource=2 --numquestions=14
Soru-cevap çiftleri oluşturulur ve bir sonraki adımda kullanılan değerlendiriciye giriş olarak (my_input/qa.jsonl) depolanır . Üretim değerlendirmesi için daha fazla soru-cevap çifti oluşturabilirsiniz. Bu veri kümesi için 200'den fazla öğe oluşturulur.
Not
Bu yordamı hızla tamamlayabilmeniz için kaynak başına yalnızca birkaç soru ve yanıt oluşturulur. Kaynak başına daha fazla soru ve yanıt olması gereken bir üretim değerlendirmesi olması amaçlanmamıştır.
İlk değerlendirmeyi iyileştirilmiş bir istemle çalıştırma
my_config.jsonYapılandırma dosyası özelliklerini düzenleyin.Özellik Yeni değer results_dirmy_results/experiment_refinedprompt_template<READFILE>my_input/prompt_refined.txtİyileştirilmiş istem, konu etki alanı hakkında özeldir.
If there isn't enough information below, say you don't know. Do not generate answers that don't use the sources below. If asking a clarifying question to the user would help, ask the question. Use clear and concise language and write in a confident yet friendly tone. In your answers, ensure the employee understands how your response connects to the information in the sources and include all citations necessary to help the employee validate the answer provided. For tabular information, return it as an html table. Do not return markdown format. If the question is not in English, answer in the language used in the question. Each source has a name followed by a colon and the actual information. Always include the source name for each fact you use in the response. Use square brackets to reference the source, e.g. [info1.txt]. Don't combine sources, list each source separately, e.g. [info1.txt][info2.pdf].Değerlendirmeyi çalıştırmak için terminalde aşağıdaki komutu çalıştırın:
python -m evaltools evaluate --config=my_config.json --numquestions=14Bu betik, değerlendirme ile içinde
my_results/yeni bir deneme klasörü oluşturmuştur. klasörü değerlendirmenin sonuçlarını içerir.Dosya adı Açıklama config.jsonDeğerlendirme için kullanılan yapılandırma dosyasının bir kopyası. evaluate_parameters.jsonDeğerlendirme için kullanılan parametreler. config.jsonbenzer ancak zaman damgası gibi diğer meta verileri içerir.eval_results.jsonlHer soru ve yanıtın yanı sıra her soru ve yanıt çifti için GPT ölçümleri. summary.jsonOrtalama GPT ölçümleri gibi genel sonuçlar.
İkinci değerlendirmeyi zayıf bir istemle çalıştırın
my_config.jsonYapılandırma dosyası özelliklerini düzenleyin.Özellik Yeni değer results_dirmy_results/experiment_weakprompt_template<READFILE>my_input/prompt_weak.txtBu zayıf istem, konu etki alanıyla ilgili bir bağlama sahip değildir.
You are a helpful assistant.Değerlendirmeyi çalıştırmak için terminalde aşağıdaki komutu çalıştırın:
python -m evaltools evaluate --config=my_config.json --numquestions=14
Üçüncü değerlendirmeyi belirli bir sıcaklıkla çalıştırma
Daha fazla yaratıcılık sağlayan bir istem kullanın.
my_config.jsonYapılandırma dosyası özelliklerini düzenleyin.Mevcut Özellik Yeni değer Mevcut results_dirmy_results/experiment_ignoresources_temp09Mevcut prompt_template<READFILE>my_input/prompt_ignoresources.txtYeni temperature0.9Varsayılan değer
temperature0,7'dir. Sıcaklık ne kadar yüksek olursa, yanıtlar o kadar yaratıcı olur.İstem
ignorekısadır.Your job is to answer questions to the best of your ability. You will be given sources but you should IGNORE them. Be creative!Yapılandırma nesnesi, aşağıdaki örneğe benzer, ancak kendi yolunuzu
results_dirile değiştirmeniz gerekir.{ "testdata_path": "my_input/qa.jsonl", "results_dir": "my_results/prompt_ignoresources_temp09", "target_url": "https://YOUR-CHAT-APP/chat", "target_parameters": { "overrides": { "temperature": 0.9, "semantic_ranker": false, "prompt_template": "<READFILE>my_input/prompt_ignoresources.txt" } } }Değerlendirmeyi çalıştırmak için terminalde aşağıdaki komutu çalıştırın:
python -m evaltools evaluate --config=my_config.json --numquestions=14
Değerlendirme sonuçlarını gözden geçirme
Farklı istemlere ve uygulama ayarlarına göre üç değerlendirme gerçekleştirdiyseniz. Sonuçlar klasöründe depolanır my_results . Ayarlara göre sonuçların nasıl farklılık gösterdiğini gözden geçirin.
Değerlendirmelerin sonuçlarını görmek için inceleme aracını kullanın.
python -m evaltools summary my_resultsSonuçlar şuna benzer:
Her değer bir sayı ve yüzde olarak döndürülür.
Değerlerin anlamını anlamak için aşağıdaki tabloyu kullanın.
Değer Açıklama Temellilik Modelin yanıtlarının olgusal ve doğrulanabilir bilgilere göre ne kadar iyi olduğunu denetler. Bir yanıt, olgusal olarak doğruysa ve gerçeği yansıtıyorsa temelli olarak kabul edilir. İlgi Modelin yanıtlarının bağlamla veya istemle ne kadar yakından uyumlu olduğunu ölçer. İlgili yanıt, kullanıcının sorgusunu veya deyimini doğrudan ele alır. Yapışma Modelin yanıtlarının mantıksal olarak ne kadar tutarlı olduğunu denetler. Tutarlı yanıt, mantıksal bir akış tutar ve kendisiyle çelişmiyor. Alıntı Yanıtın istemde istenen biçimde döndürülp döndürülmediğini gösterir. Uzunluk Yanıtın uzunluğunu ölçer. Sonuçlar, üç değerlendirmenin de yüksek ilgi düzeyine sahip olduğunu, en düşük ilgi düzeyine
experiment_ignoresources_temp09sahip olduğunu göstermelidir.Değerlendirmenin yapılandırmasını görmek için klasörü seçin.
Uygulamadan çıkmak ve terminale dönmek için Ctrl + C girin.
Yanıtları karşılaştırın
Değerlendirmelerden döndürülen yanıtları karşılaştırın.
Karşılaştırmak için değerlendirmelerden ikisini seçin ve ardından yanıtları karşılaştırmak için aynı gözden geçirme aracını kullanın.
python -m evaltools diff my_results/experiment_refined my_results/experiment_ignoresources_temp09Sonuçları inceleyin. Sonuçlarınız farklılık gösterebilir.
Uygulamadan çıkmak ve terminale dönmek için Ctrl + C girin.
Daha fazla değerlendirme için öneriler
- Konu etki alanı, uzunluk ve diğer faktörler gibi yanıtları uyarlamak için içindeki istemleri
my_inputdüzenleyin. -
my_config.jsondosyasını düzenleyerek gibitemperatureparametreleri değiştirin vesemantic_rankerdenemeleri yeniden çalıştırın. - İstem ve sorunun yanıt kalitesini nasıl etkilediğini anlamak için farklı yanıtları karşılaştırın.
- Azure AI Search dizinindeki her belge için ayrı bir soru kümesi ve temel gerçek yanıtları oluşturun. Ardından yanıtların nasıl farklılık gösterdiğini görmek için değerlendirmeleri yeniden çalıştırın.
- Gereksinimi istemin sonuna ekleyerek istemleri daha kısa veya daha uzun yanıtlar gösterecek şekilde değiştirin. Örnek olarak
Please answer in about 3 sentences.
Kaynakları ve bağımlılıkları temizleme
Aşağıdaki adımlar, kullandığınız kaynakları temizleme işleminde size yol gösterir.
Azure kaynaklarını temizleme
Bu makalede oluşturulan Azure kaynakları Azure aboneliğinize faturalandırılır. Gelecekte bu kaynaklara ihtiyaç duymayı beklemiyorsanız, daha fazla ücret ödememek için bunları silin.
Azure kaynaklarını silmek ve kaynak kodu kaldırmak için aşağıdaki Azure Geliştirici CLI komutunu çalıştırın:
azd down --purge
GitHub Codespaces ve Visual Studio Code'ı temizleme
GitHub Codespaces ortamını silmek, hesabınız için elde ettiğiniz ücretsiz çekirdek başına saat yetkilendirmesi miktarını en üst düzeye çıkarmanızı sağlar.
Önemli
GitHub hesabınızın yetkilendirmeleri hakkında daha fazla bilgi için bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.
GitHub Codespaces kontrol panelinegiriş yapın.
Şu anda çalışan ve Azure-Samples/ai-rag-chat-evaluator GitHub deposundan alınan kod alanlarınızı tespit edin.
codespace bağlam menüsünü açın ve Silöğesini seçin.
Bu kaynakları temizlemek için sohbet uygulaması makalesine dönün.
İlgili içerik
- Değerlendirme deposuna bakın.
- GitHub'daki kurumsal sohbet uygulaması deposunabakın.
- Azure OpenAI en iyi yöntemler çözüm mimarisiyle
sohbet uygulaması oluşturun. - Azure AI Searchile üretici yapay zeka uygulamalarında
erişim denetimi hakkında bilgi edinin. - Azure API Management ile kurumsal kullanıma hazır bir Azure OpenAI çözümü oluşturun.
- Bkz Azure AI Arama: Hibrit geri çağırma ve sıralama yetenekleriyle vektör aramasında üstün performans gösterme.