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.
Yalnızca şunlar için geçerlidir:Dökümhane (klasik) portalı. Bu makale yeni Dökümhane portalında kullanılamaz.
Yeni portal hakkında daha fazla bilgi edinin.
Not
Bu makaledeki bağlantılar, şu anda görüntülediğiniz Dökümhane (klasik) belgeleri yerine yeni Microsoft Foundry belgelerinde içerik açabilir.
Bu öğreticide, öğretici serisinin 2. Bölümünde oluşturduğunuz sohbet uygulamasını değerlendirirsiniz. Uygulamanızın kalitesini birden çok ölçümde değerlendirir ve iyileştirmeleri yinelersiniz. Bu bölümde:
- Değerlendirme veri kümesi oluşturma
- Azure yapay zeka değerlendiricileriyle sohbet uygulamasını değerlendirme
- Uygulamanızı tekrarla ve geliştirin
Bu öğretici, Bölüm 2: Microsoft Foundry SDK ile özel bir sohbet uygulaması oluşturma üzerine inşa eder.
Önkoşullar
Önemli
Bu makale, merkez tabanlı projeler için eski sistem desteği sağlar. Foundry projeleri için çalışmaz. Bkz. Ne tür bir projem olduğunu nasıl bilebilirim?
SDK uyumluluk notu: Kod örnekleri için belirli bir Microsoft Döküm SDK'sı sürümü gerekir. Uyumluluk sorunlarıyla karşılaşırsanız hub tabanlı bir projeden Foundry projesine geçiş yapmayı göz önünde bulundurun.
- Etkin aboneliği olan bir Azure hesabı. Hesabınız yoksa ücretsiz deneme aboneliği içeren bir
free Azure hesabı oluşturun. - Bir projeniz yoksa merkez tabanlı bir proje oluşturun.
- Sohbet uygulamasını derlemek için öğretici serisinin 2. Bölümünü tamamlayın.
- Bölüm 1'de oluşturduğunuz hub tabanlı projeyi kullanın.
- Azure AI izinleri: Model uç nokta hız sınırlarını değiştirmek ve değerlendirme işleri yürütmek için Sahip veya Katkıda Bulunan rolüne sahip olunmalıdır.
- 2. Bölümden telemetri günlüğü ekleme adımlarını tamamladığınızdan emin olun.
Değerlendirme veri kümesi oluşturma
Örnek sorular ve beklenen yanıtları içeren aşağıdaki değerlendirme veri kümesini kullanın. Bu veri kümesini bir değerlendirici ve get_chat_response() hedef işlevle birlikte kullanarak sohbet uygulamanızın ilgi, temel ve tutarlılık ölçümleri arasındaki performansını değerlendirin.
Assets klasörünüzde chat_eval_data.jsonl adlı bir dosya oluşturun.
Bu veri kümesini dosyaya yapıştırın:
{"query": "Which tent is the most waterproof?", "truth": "The Alpine Explorer Tent has the highest rainfly waterproof rating at 3000m"} {"query": "Which camping table holds the most weight?", "truth": "The Adventure Dining Table has a higher weight capacity than all of the other camping tables mentioned"} {"query": "How much do the TrailWalker Hiking Shoes cost? ", "truth": "The Trailewalker Hiking Shoes are priced at $110"} {"query": "What is the proper care for trailwalker hiking shoes? ", "truth": "After each use, remove any dirt or debris by brushing or wiping the shoes with a damp cloth."} {"query": "What brand is TrailMaster tent? ", "truth": "OutdoorLiving"} {"query": "How do I carry the TrailMaster tent around? ", "truth": " Carry bag included for convenient storage and transportation"} {"query": "What is the floor area for Floor Area? ", "truth": "80 square feet"} {"query": "What is the material for TrailBlaze Hiking Pants?", "truth": "Made of high-quality nylon fabric"} {"query": "What color does TrailBlaze Hiking Pants come in?", "truth": "Khaki"} {"query": "Can the warrenty for TrailBlaze pants be transfered? ", "truth": "The warranty is non-transferable and applies only to the original purchaser of the TrailBlaze Hiking Pants. It is valid only when the product is purchased from an authorized retailer."} {"query": "How long are the TrailBlaze pants under warranty for? ", "truth": " The TrailBlaze Hiking Pants are backed by a 1-year limited warranty from the date of purchase."} {"query": "What is the material for PowerBurner Camping Stove? ", "truth": "Stainless Steel"} {"query": "Is France in Europe?", "truth": "Sorry, I can only queries related to outdoor/camping gear and equipment"}Kaynaklar: Değerlendirme veri kümeleri için JSONL biçimi.
Azure yapay zeka değerlendiricileriyle değerlendirme
Hedef işlev sarmalayıcı oluşturan, veri kümenizi yükleyen, değerlendirmeyi çalıştıran ve sonuçları Foundry projenize kaydeden bir değerlendirme betiği oluşturun.
Ana klasörünüzde evaluate.py adlı bir dosya oluşturun.
Gerekli kitaplıkları içeri aktarmak, proje istemcisi oluşturmak ve bazı ayarları yapılandırmak için aşağıdaki kodu ekleyin:
import os import pandas as pd from azure.ai.projects import AIProjectClient from azure.ai.projects.models import ConnectionType from azure.ai.evaluation import evaluate, GroundednessEvaluator from azure.identity import DefaultAzureCredential from chat_with_products import chat_with_products # load environment variables from the .env file at the root of this repo from dotenv import load_dotenv load_dotenv() # create a project client using environment variables loaded from the .env file project = AIProjectClient.from_connection_string( conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential() ) connection = project.connections.get_default(connection_type=ConnectionType.AZURE_OPEN_AI, include_credentials=True) evaluator_model = { "azure_endpoint": connection.endpoint_url, "azure_deployment": os.environ["EVALUATION_MODEL"], "api_version": "2024-06-01", "api_key": connection.key, } groundedness = GroundednessEvaluator(evaluator_model)Başvurular: AIProjectClient, DefaultAzureCredential, azure-ai-evaluation.
Sorgu ve yanıt değerlendirmesi için değerlendirme arabirimini uygulayan bir sarmalayıcı işlevi oluşturmak için kod ekleyin:
def evaluate_chat_with_products(query): response = chat_with_products(messages=[{"role": "user", "content": query}]) return {"response": response["message"].content, "context": response["context"]["grounding_data"]}Referanslar: azure-ai-evaluation, değerlendirme hedef fonksiyonlar.
Son olarak, değerlendirmeyi çalıştırmak, sonuçları yerel olarak görüntülemek ve Foundry portalında değerlendirme sonuçlarına bir bağlantı almak için kod ekleyin:
# Evaluate must be called inside of __main__, not on import if __name__ == "__main__": from config import ASSET_PATH # workaround for multiprocessing issue on linux from pprint import pprint from pathlib import Path import multiprocessing import contextlib with contextlib.suppress(RuntimeError): multiprocessing.set_start_method("spawn", force=True) # run evaluation with a dataset and target function, log to the project result = evaluate( data=Path(ASSET_PATH) / "chat_eval_data.jsonl", target=evaluate_chat_with_products, evaluation_name="evaluate_chat_with_products", evaluators={ "groundedness": groundedness, }, evaluator_config={ "default": { "query": {"${data.query}"}, "response": {"${target.response}"}, "context": {"${target.context}"}, } }, azure_ai_project=project.scope, output_path="./myevalresults.json", ) tabular_result = pd.DataFrame(result.get("rows")) pprint("-----Summarized Metrics-----") pprint(result["metrics"]) pprint("-----Tabular Result-----") pprint(tabular_result) pprint(f"View evaluation results in AI Studio: {result['studio_url']}")Kaynaklar: azure-ai-evaluation, AIProjectClient.
Değerlendirme modelini yapılandırma
Değerlendirme betiği modeli birçok kez çağırır. Değerlendirme modeli için dakika başına belirteç sayısını artırmayı göz önünde bulundurun.
Bu öğretici serisinin 1. Bölümünde, değerlendirme modelinin adını belirten bir gpt-4o-mini dosyası oluşturdunuz. Kullanılabilir kotanız varsa bu model için dakika başına belirteç sınırını artırmayı deneyin. Değeri artırmak için yeterli kotanız yoksa endişelenmeyin. Betik, limit hatalarını işlemek için tasarlanmıştır.
- Foundry portalındaki projenizde Modeller + uç noktalar'ı seçin.
- gpt-4o-mini'yi seçin.
- Düzenle'yi seçin.
- Kotanız varsa Dakika Başına Belirteç Hız Sınırı'nı 30 veya daha fazla olarak artırın.
- Kaydet ve kapat'ı seçin.
Değerlendirme betiğini çalıştırma
Konsolunuzdan Azure CLI kullanarak Azure hesabınızda oturum açın:
az loginGerekli paketleri yükleyin:
pip install openai pip install azure-ai-evaluation[remote]Başvurular: azure-ai-değerlendirme SDK'sı, Değerlendirme SDK'sı belgeleri.
Değerlendirme kurulumunuzu doğrulama
Tam değerlendirmeyi çalıştırmadan önce (5-10 dakika sürer), şu hızlı testi çalıştırarak SDK'nın ve proje bağlantınızın çalıştığını doğrulayın:
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
# Test that you can connect to your project
project = AIProjectClient.from_connection_string(
conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
)
print("Evaluation SDK is ready! You can now run evaluate.py")
görürseniz "Evaluation SDK is ready!"kurulumunuz tamamlanır ve devam edebilirsiniz.
Referanslar: AIProjectClient, DefaultAzureCredential.
Değerlendirmeyi başlatma
Değerlendirme betiğini çalıştırın:
python evaluate.py
Değerlendirmenin tamamlanması 5-10 dakika sürer. Zaman aşımı uyarıları ve hız sınırı hataları görebilirsiniz. Betik bu hataları otomatik olarak işler ve işlemeye devam eder.
Değerlendirme çıkışını yorumlama
Konsol çıkışında her soru için bir yanıt ve ardından ilgi, temellik ve tutarlılık puanlarını gösteren özetlenmiş ölçümlerin yer aldığı bir tablo görürsünüz. Puanlar, GPT destekli ölçümler için 0 (en kötü) ile 4 (en iyi) arasında değişir. Başvuru belgeleri tarafından iyi desteklenmeyen yanıtları belirlemek için düşük temellilik puanlarını ve konu dışı yanıtları belirlemek için düşük ilgi puanlarını arayın.
Birçok WARNING:opentelemetry.attributes: ileti ve zaman aşımı hatası görebilirsiniz. Bu iletileri güvenle yoksayabilirsiniz. Değerlendirme sonuçlarını etkilemez. Değerlendirme betiği, hız sınırı hatalarını işlemek ve işlemi sürdürmek amacıyla tasarlanmıştır.
Değerlendirme sonuçları çıkışı, değerlendirme çalıştırmalarını yan yana karşılaştırabileceğiniz ve zaman içindeki iyileştirmeleri izleyebileceğiniz Foundry portalında ayrıntılı sonuçları görüntülemek için bir bağlantı da içerir.
====================================================
'-----Summarized Metrics-----'
{'groundedness.gpt_groundedness': 1.6666666666666667,
'groundedness.groundedness': 1.6666666666666667}
'-----Tabular Result-----'
outputs.response ... line_number
0 Could you specify which tent you are referring... ... 0
1 Could you please specify which camping table y... ... 1
2 Sorry, I only can answer queries related to ou... ... 2
3 Could you please clarify which aspects of care... ... 3
4 Sorry, I only can answer queries related to ou... ... 4
5 The TrailMaster X4 Tent comes with an included... ... 5
6 (Failed) ... 6
7 The TrailBlaze Hiking Pants are crafted from h... ... 7
8 Sorry, I only can answer queries related to ou... ... 8
9 Sorry, I only can answer queries related to ou... ... 9
10 Sorry, I only can answer queries related to ou... ... 10
11 The PowerBurner Camping Stove is designed with... ... 11
12 Sorry, I only can answer queries related to ou... ... 12
[13 rows x 8 columns]
('View evaluation results in Foundry portal: '
'https://xxxxxxxxxxxxxxxxxxxxxxx')
Yineleme ve geliştirme
Değerlendirme sonuçları, yanıtların genellikle başvuru belgelerinde iyi temellenmediğini ortaya koyuyor. Temelliliği iyileştirmek için, assets/grounded_chat.prompty dosyasındaki sistem isteminizi değiştirerek modelin başvuru belgelerini daha doğrudan kullanmasını teşvik edin.
Geçerli komut istemi (sorunlu):
If the question is not related to outdoor/camping gear and clothing, just say 'Sorry, I only can answer queries related to outdoor/camping gear and clothing. So, how can I help?'
If the question is related to outdoor/camping gear and clothing but vague, ask clarifying questions.
Geliştirilmiş komut:
If the question is related to outdoor/camping gear and clothing, answer based on the reference documents provided.
If you cannot find information in the reference documents, say: 'I don't have information about that specific topic. Let me help with related products or try a different question.'
For vague questions, ask clarifying questions to better assist.
İstemi güncelleştirdikten sonra:
Dosyayı kaydedin.
Değerlendirme betiğini yeniden çalıştırın:
python evaluate.pyYeni değerlendirme sonuçlarını önceki değerlendirme ile karşılaştırın. Geliştirilmiş güvenirlik puanlarını görmeniz gerekir.
Aşağıdaki gibi ek değişiklikleri deneyin:
- Sistem istemini değiştirerek tamlık üzerinde doğruluğa odaklanma
- Farklı bir modelle test etme (örneğin,
gpt-4-turbovarsa) - Bağlam alma işlemini daha ilgili belgeler döndürecek şekilde ayarlama
Her yineleme, hangi değişikliklerin belirli ölçümleri geliştirdiğini anlamanıza yardımcı olur.
Kaynakları temizleme
Gereksiz Azure maliyetlerle karşılaşmamak için, artık gerekli değilse bu öğreticide oluşturduğunuz kaynakları silin. Kaynakları yönetmek için Azure portal kullanabilirsiniz.
İlgili içerik
Microsoft Foundry SDK