JavaScript'te sohbet uygulamasında yanıtları değerlendirmeye başlama
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 şunları yapacaksınız:
- 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ı, yapay zeka uygulamalarınız için yüksek kaliteli bir başlangıç noktası sağlamaya yardımcı olan, bakımlı, kolay dağıtılan başvuru uygulamaları sağlar.
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ü , yapay zeka çözümleri ve dilleri genelinde 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: Her belge için temel gerçeğin yanıtıyla birlikte birçok soru oluşturabilir. Ne kadar çok soru olursa değerlendirme o kadar uzun olur.
- Değerlendirici , sohbet uygulamasında örnek sorular ve istemler çalıştırır ve sonuçları döndürür.
- Gözden Geçirme aracı , değerlendirmelerin sonuçlarını gözden geçirmenizi sağlar.
- Fark aracı , değerlendirmeler arasındaki yanıtları karşılaştırmanıza olanak tanır.
Bu değerlendirmeyi Azure'a dağıttığınızda, model için GPT-4
kendi kapasitesine sahip Azure OpenAI uç noktası oluşturulur. Sohbet uygulamalarını değerlendirirken değerlendiricinin kendi kapasitesiyle kullanan GPT-4
kendi OpenAI kaynağına sahip olması önemlidir.
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun
İstenen Azure aboneliğinde Azure OpenAI'ya erişim verilir.
Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI'ye erişim için başvurabilirsiniz.
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 makalede sohbet uygulaması olarak adlandırılan bu dağıtımdaki aşağıdaki Azure kaynak bilgilerine ihtiyacınız olacaktır:
- Sohbet API'sinin URI'si: İşlemin sonunda
azd up
gösterilen hizmet arka uç uç noktası. - Azure AI Arama. Aşağıdaki değerler gereklidir:
- Kaynak adı: İşlem sırasında
azd up
olarakSearch service
bildirilen Azure AI Search kaynak adının adı. - Dizin adı: Belgelerinizin depolandığı Azure AI Search dizininin adı. Bu, Arama hizmeti için Azure portalında bulunabilir.
- 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 makalenin devamında, sohbet uygulamasının Değerlendirmeler uygulaması tarafından nasıl kullanıldığını göstermek için birkaç kez başvuruda bulunulacaktır. Bu makaledeki yordamın tamamını tamamlayana kadar 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ı
Açık geliştirme ortamı
Bu makaleyi tamamlamak için tüm bağımlılıkların yüklü olduğu bir geliştirme ortamıyla hemen başlayın. Hem bu belgeleri hem de geliştirme ortamını aynı anda görebilmek için izleme çalışma alanınızı düzenlemeniz gerekir.
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 basit geliştirme ortamı için GitHub Codespaces'ı kullanarak bu makaleyi tamamlamak için doğru geliştirici araçlarını ve bağımlılıklarını önceden yüklemiş olursunuz.
Önemli
Tüm GitHub hesapları Codespaces'ı her ay 2 çekirdek örneğiyle 60 saate kadar ücretsiz olarak kullanabilir. Daha fazla bilgi için bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.
GitHub deposunun dalında
Azure-Samples/ai-rag-chat-evaluator
yeni bir GitHub Codespacemain
oluşturmak için işlemi 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-code
Kodu 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) sağlayın.
azd up
Bu
AZD command
işlem değerlendirme uygulamasını dağıtmaz, ancak değerlendirmeleri yerel geliştirme ortamında çalıştırmak için gerekliGPT-4
bir 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österilir. 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ğerlendirmeler 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.
tabanlı
.env.sample
bir.env
dosya oluşturun:cp .env.sample .env
Dağıtılan kaynak grubunuz için gerekli değerleri almak ve
AZURE_OPENAI_SERVICE
bu değerleri dosyaya.env
yapıştırmak içinAZURE_OPENAI_EVAL_DEPLOYMENT
şu komutları çalıştırın:azd env get-value AZURE_OPENAI_EVAL_DEPLOYMENT azd env get-value AZURE_OPENAI_SERVICE
Azure AI Search örneği için sohbet uygulamasından aşağıdaki değerleri önkoşullar bölümünde topladığınız öğesine ekleyin:
.env
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 dil belirsiz yapay zeka uç noktası API'sinin sözleşmesini uygularMicrosoft AI Chat Protocol specification
. İstemci 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.json
yeni 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
.overrides
nesnesi, 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 ayarlar özelliklerinin anlamını anlamak için aşağıdaki tabloyu kullanın:
Ayarlar Özelliği Açıklama semantic_ranker Kullanı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_mode Kullanılacak alma modu. Varsayılan değer: hybrid
.sıcaklık Modelin sıcaklık ayarı. Varsayılan değer: 0.3
.üst Döndürülecek arama sonuçlarının sayısı. Varsayılan değer: 3
.prompt_template Soruya ve arama sonuçlarına göre yanıt oluşturmak için kullanılan istem geçersiz kılınan. tohum GPT modellerine yapılan çağrıların tohum değeri. Bir tohum ayarlamak, değerlendirmeler arasında daha tutarlı sonuçlara neden olur. target_url
değerini, ö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 aşağıdaki biçimdedirhttps://CHAT-APP-URL/chat
. Protokolün vechat
yolun URI'nin parçası olduğundan emin olun.
Örnek veri oluşturma
Yeni yanıtları değerlendirmek için, belirli bir soru için ideal yanıt olan "temel 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_input
klasörü adlımy_input
yeni 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/yanıt çiftleri oluşturulur ve sonraki adımda kullanılan değerlendiriciye giriş olarak (JSONL biçiminde) depolanır my_input/qa.jsonl
. Üretim değerlendirmesi için bu veri kümesi için 200'den fazla QA çifti oluşturabilirsiniz.
Not
Kaynak başına birkaç soru ve yanıt, bu yordamı hızlı bir şekilde tamamlamanızı sağlamak içindir. Kaynak başına daha fazla soru ve yanıta sahip olması gereken bir üretim değerlendirmesi olması amaçlanmamıştır.
geliştirilmiş bir istemle ilk değerlendirmeyi çalıştırma
my_config.json
Yapılandırma dosyası özelliklerini düzenleyin:Özellik Yeni değer results_dir my_results/experiment_refined
prompt_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 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=14
Bu betik, değerlendirme ile içinde
my_results/
yeni bir deneme klasörü oluşturmuştur. klasörü, aşağıdakiler dahil olmak üzere değerlendirmenin sonuçlarını içerir:Dosya Adı Açıklama config.json
Değerlendirme için kullanılan yapılandırma dosyasının bir kopyası. evaluate_parameters.json
Değerlendirme için kullanılan parametreler. Buna çok benzer config.json
ancak zaman damgası gibi ek meta veriler içerir.eval_results.jsonl
Her soru ve yanıtın yanı sıra her soru-cevap çiftinin GPT ölçümleri. summary.json
Ortalama GPT ölçümleri gibi genel sonuçlar.
Zayıf bir istemle ikinci değerlendirmeyi çalıştırma
my_config.json
Yapılandırma dosyası özelliklerini düzenleyin:Özellik Yeni değer results_dir my_results/experiment_weak
prompt_template <READFILE>my_input/prompt_weak.txt
Bu zayıf istem, konu etki alanı hakkında hiç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
Belirli bir sıcaklıkla üçüncü değerlendirmeyi çalıştırma
Daha fazla yaratıcılık sağlayan bir istem kullanın.
my_config.json
Yapılandırma dosyası özelliklerini düzenleyin:Mevcut Özellik Yeni değer Mevcut results_dir my_results/experiment_ignoresources_temp09
Mevcut prompt_template <READFILE>my_input/prompt_ignoresources.txt
Yeni sıcaklık 0.9
Varsayılan değer
temperature
0,7'dir. Sıcaklık ne kadar yüksek olursa, yanıtlar o kadar yaratıcı olur.İstem
ignore
kı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 gibi görünmelidir, ancak değerini yolunuzla değiştirin
results_dir
:{ "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_results
Sonuç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.
Value Açıklama Temellilik Bu, modelin yanıtlarının olgusal ve doğrulanabilir bilgilere ne kadar iyi dayandığı anlamına gelir. Bir yanıt, olgusal olarak doğruysa ve gerçeği yansıtıyorsa temelli olarak kabul edilir. İlgi Bu, 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 Bu, modelin yanıtlarının mantıksal olarak ne kadar tutarlı olduğunu ifade eder. Tutarlı yanıt, mantıksal bir akış tutar ve kendisiyle çelişmiyor. Alıntı Bu, yanıtın istemde istenen biçimde döndürülp döndürülmediğini gösterir. Length Bu, 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_temp09
sahip olduğunu göstermelidir.Değerlendirmenin yapılandırmasını görmek için klasörü seçin.
Ctrl + C yazın, uygulamadan çıkın ve terminale dönün.
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, 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_temp09
Sonuçları inceleyin. Sonuçlarınız farklılık gösterebilir.
Ctrl + C yazın, uygulamadan çıkın ve terminale dönün.
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_input
düzenleyin. my_config.json
dosyasını düzenleyerek gibitemperature
parametreleri değiştirin vesemantic_ranker
denemeleri 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. Örneğin,
Please answer in about 3 sentences.
.
Kaynakları ve bağımlılıkları temizleme
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'i 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 panosunda (https://github.com/codespaces ) oturum açın.
GitHub deposundan
Azure-Samples/ai-rag-chat-evaluator
alınan şu anda çalışan Codespaces'ınızı bulun.Codespace bağlam menüsünü açın ve sil'i seçin.
Bu kaynakları temizlemek için sohbet uygulaması makalesine dönün.
Sonraki adımlar
- Değerlendirme deposu
- Kurumsal sohbet uygulaması GitHub deposu
- Azure OpenAI en iyi yöntem çözüm mimarisiyle sohbet uygulaması oluşturma
- Azure AI Search ile Oluşturucu yapay zeka uygulamalarında erişim denetimi
- Azure API Management ile Kurumsal kullanıma hazır openAI çözümü oluşturma
- Karma alma ve derecelendirme özellikleriyle vektör aramasını daha iyi performansla gerçekleştirme