إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مهم
العناصر التي تم وضع علامة عليها (إصدار أولي) في هذه المقالة موجودة حالياً في الإصدار الأولي العام. يتم توفير هذه المعاينة دون اتفاقية على مستوى الخدمة، ولا نوصي بها لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام الإضافية لمعاينات Microsoft Azure.
في هذا المقال، تتعلم كيفية تشغيل التقييمات في السحابة (معاينة) لاختبار ما قبل النشر على مجموعة بيانات اختبار.
استخدم التقييمات الدفعية لمعظم السيناريوهات — خاصة عند الاختبار على نطاق واسع، أو دمج التقييمات في خطوط أنابيب التكامل المستمر والتسليم المستمر (CI/CD)، أو إجراء اختبارات ما قبل النشر. يؤدي تشغيل التقييمات في السحابة إلى إلغاء الحاجة لإدارة البنية التحتية للحوسبة المحلية ويدعم سير عمل الاختبار الآلي واسع النطاق. يمكنك أيضا جدولة التقييمات لتعمل بشكل متكرر، أو إعداد تقييم مستمر لتقييم استجابات الوكلاء المأخوذة تلقائيا في الإنتاج.
يتم تخزين نتائج التقييم الدفعي في مشروع Foundry الخاص بك. يمكنك مراجعة النتائج في البوابة، أو استرجاعها عبر مجموعة تطوير البرمجيات، أو توجيهها إلى Application Insights إذا كانت متصلة. يدعم التقييم الدفعي جميع المقيمين المدمجين الذين تختارهم مايكروسوفت والمقيمين المخصصين الخاص بك. يتم إدارة المقيمين في كتالوج المقيمين بنفس نطاق المشروع والتحكم في الوصول القائم على الدور.
نصيحة
للحصول على أمثلة كاملة قابلة للتشغيل، راجع ><عينات تقييم SDK
عند استخدام مجموعة تطوير البرمجيات الخاصة ب Foundry، فإنه يسجل نتائج التقييم في مشروع Foundry الخاص بك لتحسين الملاحظة. تدعم هذه الميزة جميع المقيمين المدمجين الذين تختارهم مايكروسوفت ومقيموك المخصص الخاص. يمكن أن يكون المقيمون موجودين في مكتبة المقيمين ولديهم نفس نطاق المشروع والتحكم في الوصول القائم على الدور.
كيف يعمل تقييم الدفعات
لتشغيل تقييم دفعي، تقوم بإنشاء تعريف تقييم باستخدام مخطط البيانات ومعايير الاختبار (المقيمون)، ثم تنشئ عملية تقييم. تقوم الجولة بتنفيذ كل مقيم مقابل بياناتك وتعيد نتائج مدرجة يمكنك استطلاعها لإكمالها.
يدعم تقييم الدفعات السيناريوهات التالية:
| السيناريو | وقت الاستخدام | نوع مصدر البيانات | استهداف |
|---|---|---|---|
| تقييم مجموعة البيانات | تقييم الاستجابات المحسوبة مسبقا في ملف JSONL. | jsonl |
— |
| تقييم أهداف النموذج | توفير الاستعلامات وتوليد الردود من نموذج أثناء التشغيل للتقييم. | azure_ai_target_completions |
azure_ai_model |
| تقييم هدف الوكيل | توفير الاستعلامات وتوليد الردود من وكيل Foundry أثناء التشغيل للتقييم. | azure_ai_target_completions |
azure_ai_agent |
| تقييم استجابة الوكيل | استرجاع وتقييم ردود وكلاء Foundry حسب معرفات الردود. | azure_ai_responses |
— |
| تقييم البيانات التركيبية (المعاينة) | قم بتوليد استعلامات اختبار اصطناعية، وإرسالها إلى نموذج أو وكيل، وتقييم الإجابات. | azure_ai_synthetic_data_gen_preview |
azure_ai_model او azure_ai_agent |
| تقييم الفريق الأحمر | شغل اختبارات خصومة آلية ضد نموذج أو وكيل. | azure_ai_red_team |
azure_ai_model او azure_ai_agent |
معظم السيناريوهات تتطلب بيانات إدخال. يمكنك تقديم البيانات بطريقتين:
| نوع المصدر | وصف |
|---|---|
file_id |
الإشارة إلى مجموعة بيانات مرفوعة بواسطة ID. |
file_content |
قدم البيانات ضمن الطلب. |
كل تقييم يتطلب رسالة data_source_config تخبر الخدمة ما هي الحقول التي يجب توقعها في بياناتك:
-
custom— أنت تعرف aitem_schemaباستخدام أسماء وأنواع الحقول الخاصة بك. ضبطهinclude_sample_schemaعندtrueاستخدام الهدف حتى يتمكن المقيمون من الرجوع إلى الردود المولدة. -
azure_ai_source— يتم استنتاج المخطط من الخدمة. تم ضبطه"scenario"ل"responses"لتقييم استجابة الوكيل،"synthetic_data_gen_preview"أو لتقييم البيانات التركيبية (المعاينة)، أو"red_team"للفريق الأحمر.
كل سيناريو يتطلب مقيمين يحددون معايير الاختبار الخاصة بك. للحصول على إرشادات حول اختيار المقيمين، راجع المقيمين المدمجين.
المتطلبات المسبقه
- مشروع مسبك.
- نشر Azure OpenAI مع نموذج GPT يدعم إكمال الدردشة (على سبيل المثال،
gpt-5-mini). - Azure مستخدم الذكاء الاصطناعي في مشروع Foundry.
- اختياريا، يمكنك استخدام حساب التخزين الخاص بك لإجراء التقييمات.
ملاحظة
بعض ميزات التقييم لها قيود إقليمية. راجع المناطق المدعومة لمزيد من التفاصيل.
الشروع في العمل
قم بتثبيت حزمة تطوير البرمجيات وقم بإعداد عميلك:
pip install "azure-ai-projects>=2.0.0"
import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from openai.types.eval_create_params import DataSourceConfigCustom
from openai.types.evals.create_eval_jsonl_run_data_source_param import (
CreateEvalJSONLRunDataSourceParam,
SourceFileContent,
SourceFileContentContent,
SourceFileID,
)
# Azure AI Project endpoint
# Example: https://<account_name>.services.ai.azure.com/api/projects/<project_name>
endpoint = os.environ["AZURE_AI_PROJECT_ENDPOINT"]
# Model deployment name (for AI-assisted evaluators)
# Example: gpt-5-mini
model_deployment_name = os.environ.get("AZURE_AI_MODEL_DEPLOYMENT_NAME", "")
# Dataset details (optional, for reusing existing datasets)
dataset_name = os.environ.get("DATASET_NAME", "")
dataset_version = os.environ.get("DATASET_VERSION", "1")
# Create the project client
project_client = AIProjectClient(
endpoint=endpoint,
credential=DefaultAzureCredential(),
)
# Get the OpenAI client for evaluation API
client = project_client.get_openai_client()
تحضير بيانات الإدخال
معظم سيناريوهات التقييم تتطلب بيانات إدخال. يمكنك تقديم البيانات بطريقتين:
رفع مجموعة بيانات (موصى به)
قم بتحميل ملف JSONL لإنشاء مجموعة بيانات معدلة في مشروع Foundry الخاص بك. تدعم مجموعات البيانات الإصدارات وإعادة الاستخدام عبر عدة عمليات تقييم. استخدم هذا النهج لاختبارات الإنتاج وسير عمل CI/CD.
جهز ملف JSONL يحتوي على كائن JSON واحد لكل سطر يحتوي على الحقول التي يحتاجها المقيمون:
{"query": "What is machine learning?", "response": "Machine learning is a subset of AI.", "ground_truth": "Machine learning is a type of AI that learns from data."}
{"query": "Explain neural networks.", "response": "Neural networks are computing systems inspired by biological neural networks.", "ground_truth": "Neural networks are a set of algorithms modeled after the human brain."}
# Upload a local JSONL file. Skip this step if you already have a dataset registered.
data_id = project_client.datasets.upload_file(
name=dataset_name,
version=dataset_version,
file_path="./evaluate_test_data.jsonl",
).id
توفير البيانات بشكل متداخل
للتجربة السريعة مع مجموعات اختبار صغيرة، قدم البيانات مباشرة في طلب التقييم باستخدام file_content.
source = SourceFileContent(
type="file_content",
content=[
SourceFileContentContent(
item={
"query": "How can I safely de-escalate a tense situation?",
"ground_truth": "Encourage calm communication, seek help if needed, and avoid harm.",
}
),
SourceFileContentContent(
item={
"query": "What is the largest city in France?",
"ground_truth": "Paris",
}
),
],
)
مرر source كحقل "source" في تكوين مصدر البيانات عند إنشاء تشغيل. أقسام السيناريو التالية تستخدم file_id بشكل افتراضي.
تقييم مجموعة البيانات
تقييم الاستجابات المحسوبة مسبقا في ملف JSONL باستخدام jsonl نوع مصدر البيانات. هذا السيناريو مفيد عندما يكون لديك بالفعل مخرجات نماذج وترغب في تقييم جودتها.
نصيحة
قبل أن تبدأ، أكمل معلومات البدءوتحضير المدخلات.
تعريف مخطط البيانات والمقيمين
حدد المخطط الذي يطابق حقول JSONL الخاصة بك، واختر المقيمين (معايير الاختبار) لتشغيلهم. استخدم المعامل data_mapping لربط الحقول من بيانات الإدخال إلى معلمات المقيم باستخدام {{item.field}} بناء الجملة. دائما قم بتضمين data_mapping حقول الإدخال المطلوبة لكل مقيم. يجب أن تتطابق أسماء الحقول مع تلك الموجودة في ملف JSONL الخاص بك — على سبيل المثال، إذا كانت بياناتك تحتوي "question" على ، "query"استخدم "{{item.question}}" في التعيين. للمعلمات المطلوبة لكل مقيم، انظر المقيمات المدمجة.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
"response": {"type": "string"},
"ground_truth": {"type": "string"},
},
"required": ["query", "response", "ground_truth"],
},
)
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "coherence",
"evaluator_name": "builtin.coherence",
"initialization_parameters": {
"deployment_name": model_deployment_name
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{item.response}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "violence",
"evaluator_name": "builtin.violence",
"initialization_parameters": {
"deployment_name": model_deployment_name
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{item.response}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "f1",
"evaluator_name": "builtin.f1_score",
"data_mapping": {
"response": "{{item.response}}",
"ground_truth": "{{item.ground_truth}}",
},
},
]
أنشئ التقييم وبدأ
أنشئ التقييم، ثم ابدأ عملية التقييم على مجموعة البيانات التي رفعتها. يقوم الجولة بتنفيذ كل مقيم في كل صف في مجموعة البيانات.
# Create the evaluation
eval_object = client.evals.create(
name="dataset-evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
# Create a run using the uploaded dataset
eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="dataset-run",
data_source=CreateEvalJSONLRunDataSourceParam(
type="jsonl",
source=SourceFileID(
type="file_id",
id=data_id,
),
),
)
للحصول على مثال كامل قابل للجري، انظر sample_evaluations_builtin_with_dataset_id.py على GitHub. للاستطلاع لإكمال النتيجة وتفسير النتائج، راجع الحصول على النتائج.
تقييم أهداف النموذج
أرسل الاستعلامات إلى نموذج منشور أثناء التشغيل وقيم الردود باستخدام azure_ai_target_completions نوع مصدر البيانات مع azure_ai_model الهدف. تحتوي بيانات إدخالك على استعلامات؛ يولد النموذج استجابات يتم تقييمها بعد ذلك.
نصيحة
قبل أن تبدأ، أكمل معلومات البدءوتحضير المدخلات.
حدد قالب الرسالة والهدف
يتحكم القالب input_messages في كيفية إرسال الاستعلامات إلى النموذج. استخدمها {{item.query}} للرجوع إلى الحقول من بيانات الإدخال. حدد النموذج لتقييم ومعلمات العينة الاختيارية:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_model",
"model": "gpt-5-mini",
"sampling_params": {
"top_p": 1.0,
"max_completion_tokens": 2048,
},
}
قم بإعداد المقيمين ورسم خرائط البيانات
عندما يولد النموذج استجابات أثناء وقت التشغيل، استخدم {{sample.output_text}} في data_mapping للإشارة إلى مخرجات النموذج. استخدمها {{item.field}} للرجوع إلى الحقول من بيانات الإدخال.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "coherence",
"evaluator_name": "builtin.coherence",
"initialization_parameters": {
"deployment_name": model_deployment_name,
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "violence",
"evaluator_name": "builtin.violence",
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
]
أنشئ التقييم وبدأ
eval_object = client.evals.create(
name="Model Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="model-target-evaluation",
data_source=data_source,
)
للحصول على مثال كامل قابل للجري، انظر sample_model_evaluation.py على GitHub. للاستطلاع لإكمال النتيجة وتفسير النتائج، راجع الحصول على النتائج.
نصيحة
لإضافة جولة تقييم أخرى، قم بتشغيل نفس التقييم مرة أخرى باستخدام نفس مجموعة التقييم. كل تنفيذ ينشئ سلسلة جديدة تحت نفس المجموعة، مما يتيح لك مقارنة >النتائج عبر الجولات بعد تغيير أشياء مثل النموذج أو الإشعار أو مجموعة البيانات — دون إنشاء تقييم جديد أو استخدام واجهة برمجة تطبيقات مختلفة.
انظر إلى العينة التي تعيد استخدام نفس مجموعة التقييم لإنشاء عدة عمليات للمقارنة.
تقييم هدف الوكيل
أرسل استعلامات إلى وكيل Foundry أثناء التشغيل وقيم الردود باستخدام azure_ai_target_completions نوع مصدر البيانات مع azure_ai_agent هدف.
نصيحة
قبل أن تبدأ، أكمل معلومات البدءوتحضير المدخلات.
حدد قالب الرسالة والهدف
input_messages القالب يتحكم في كيفية إرسال الاستعلامات إلى الوكيل. استخدمها {{item.query}} للرجوع إلى الحقول من بيانات الإدخال. حدد الوكيل الذي يجب تقييمه بالاسم:
input_messages = {
"type": "template",
"template": [
{
"type": "message",
"role": "developer",
"content": {
"type": "input_text",
"text": "You are a helpful assistant. Answer clearly and safely."
}
},
{
"type": "message",
"role": "user",
"content": {
"type": "input_text",
"text": "{{item.query}}"
}
}
]
}
target = {
"type": "azure_ai_agent",
"name": "my-agent",
"version": "1" # Optional. Uses latest version if omitted.
}
قم بإعداد المقيمين ورسم خرائط البيانات
عندما يولد الوكيل استجابات أثناء وقت التشغيل، استخدم {{sample.*}} المتغيرات في data_mapping للإشارة إلى مخرجات الوكيل:
| المتغير | وصف | الاستخدام ل |
|---|---|---|
{{sample.output_text}} |
رد العميل عبر الرسالة النصية العادية. | المقيمون الذين يتوقعون استجابة سلاسل (على سبيل المثال، coherence، violence). |
{{sample.output_items}} |
مخرجات JSON المنظمة للوكيل، بما في ذلك استدعاءات الأدوات. | المقيمون الذين يحتاجون إلى سياق تفاعل كامل (على سبيل المثال، task_adherence). |
{{item.field}} |
حقل من بيانات الإدخال. | حقول الإدخال مثل query أو ground_truth. |
نصيحة
يمكن أن يحتوي الحقل query على JSON منظم، بما في ذلك رسائل النظام وتاريخ المحادثات. بعض مقيمين task_adherence الوكلاء يستخدمون هذا السياق لتقييم أكثر دقة. لمزيد من التفاصيل حول تنسيق الاستعلامات، راجع مقيمو الوكلاء.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
},
"required": ["query"],
},
include_sample_schema=True,
)
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "coherence",
"evaluator_name": "builtin.coherence",
"initialization_parameters": {
"deployment_name": model_deployment_name,
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "violence",
"evaluator_name": "builtin.violence",
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "task_adherence",
"evaluator_name": "builtin.task_adherence",
"initialization_parameters": {
"deployment_name": model_deployment_name,
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_items}}",
},
},
]
أنشئ التقييم وبدأ
eval_object = client.evals.create(
name="Agent Target Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_target_completions",
"source": {
"type": "file_id",
"id": data_id,
},
"input_messages": input_messages,
"target": target,
}
agent_eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="agent-target-evaluation",
data_source=data_source,
)
لمثال كامل قابل للجري، انظر sample_agent_evaluation.py على GitHub. للاستطلاع لإكمال النتيجة وتفسير النتائج، راجع الحصول على النتائج.
نصيحة
لإضافة جولة تقييم أخرى، قم بتشغيل نفس التقييم مرة أخرى باستخدام نفس مجموعة التقييم. كل تنفيذ ينشئ سلسلة جديدة تحت نفس المجموعة، مما يتيح لك مقارنة >النتائج عبر الجولات بعد تغيير أشياء مثل النموذج أو الإشعار أو مجموعة البيانات — دون إنشاء تقييم جديد أو استخدام واجهة برمجة تطبيقات مختلفة.
انظر إلى العينة التي تعيد استخدام نفس مجموعة التقييم لإنشاء عدة عمليات للمقارنة.
تقييم استجابة الوكيل
استرجاع وتقييم استجابات وكلاء Foundry حسب معرفات الردود باستخدام azure_ai_responses نوع مصدر البيانات. استخدم هذا السيناريو لتقييم تفاعلات محددة مع الوكلاء بعد حدوثها.
نصيحة
قبل أن تبدأ، أكمل ابدأ.
معرف الاستجابة هو معرف فريد يعود في كل مرة يولد فيها وكيل Foundry استجابة. يمكنك جمع معرفات الاستجابة من تفاعلات الوكلاء باستخدام واجهة برمجة تطبيقات الاستجابات أو من سجلات تتبع تطبيقك. قدم المعرفات الجاهزة كمحتوى ملف، أو رفعها كمجموعة بيانات (انظر إعداد بيانات الإدخال).
جمع معرفات الرد
كل استدعاء إلى واجهة برمجة تطبيقات الاستجابات يعيد كائن استجابة بحقل فريد id . اجمع هذه المعرفات من تفاعلات تطبيقك، أو قم بإنشائها مباشرة:
# Generate response IDs by calling a model through the Responses API
response = client.responses.create(
model=model_deployment_name,
input="What is machine learning?",
)
print(response.id) # Example: resp_abc123
يمكنك أيضا جمع معرفات الاستجابة من تفاعلات الوكلاء في سجلات تتبع التطبيق أو خط أنابيب المراقبة. كل معرف استجابة يحدد بشكل فريد استجابة مخزنة يمكن لخدمة التقييم استرجاعها.
أنشئ التقييم وبدأ
data_source_config = {"type": "azure_ai_source", "scenario": "responses"}
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "coherence",
"evaluator_name": "builtin.coherence",
"initialization_parameters": {
"deployment_name": model_deployment_name,
},
},
{
"type": "azure_ai_evaluator",
"name": "violence",
"evaluator_name": "builtin.violence",
},
]
eval_object = client.evals.create(
name="Agent Response Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_responses",
"item_generation_params": {
"type": "response_retrieval",
"data_mapping": {"response_id": "{{item.resp_id}}"},
"source": {
"type": "file_content",
"content": [
{"item": {"resp_id": "resp_abc123"}},
{"item": {"resp_id": "resp_def456"}},
]
},
},
}
eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="agent-response-evaluation",
data_source=data_source,
)
للحصول على مثال كامل قابل للجري، انظر sample_agent_response_evaluation.py على GitHub. للاستطلاع لإكمال النتيجة وتفسير النتائج، راجع الحصول على النتائج.
نصيحة
لإضافة جولة تقييم أخرى، قم بتشغيل نفس التقييم مرة أخرى باستخدام نفس مجموعة التقييم. كل تنفيذ ينشئ سلسلة جديدة تحت نفس المجموعة، مما يتيح لك مقارنة >النتائج عبر الجولات بعد تغيير أشياء مثل النموذج أو الإشعار أو مجموعة البيانات — دون إنشاء تقييم جديد أو استخدام واجهة برمجة تطبيقات مختلفة.
انظر إلى العينة التي تعيد استخدام نفس مجموعة التقييم لإنشاء عدة عمليات للمقارنة.
تقييم البيانات التركيبية (المعاينة)
توليد استعلامات اختبار اصطناعية، وإرسالها إلى نموذج منشور أو وكيل Foundry، وتقييم الردود باستخدام azure_ai_synthetic_data_gen_preview نوع مصدر البيانات. استخدم هذا السيناريو عندما لا يكون لديك مجموعة بيانات اختبار — حيث تولد الخدمة استعلامات بناء على التعليمات التي تقدمها (و/أو من تعليمات الوكيل)، وتشغلها على هدفك، وتقيم الردود.
نصيحة
قبل أن تبدأ، أكمل ابدأ.
كيف يعمل تقييم البيانات التركيبية
- تقوم الخدمة بتوليد استعلامات تركيبية بناء على ملفات البيانات البذرية الخاصة بك
promptوملفات البيانات الاختيارية. - يتم إرسال كل استعلام إلى الهدف المحدد (النموذج أو الوكيل) لتوليد استجابة.
- يقوم المقيمون بتقييم كل إجابة باستخدام الاستعلام والرد المولدين.
- يتم تخزين الاستعلامات المولدة كمجموعة بيانات في مشروعك لإعادة الاستخدام.
المعلمات
| المعلمة | مطلوب | وصف |
|---|---|---|
samples_count |
نعم | الحد الأقصى لعدد استعلامات الاختبار التركيبي التي يجب إنشاؤها. |
model_deployment_name |
نعم | نشر النماذج لاستخدامها في توليد استعلامات تركيبية. فقط النماذج التي تحتوي على واجهة برمجة تطبيقات Responses مدعومة. للاطلاع على التوفر، راجع توفر منطقة واجهة برمجة التطبيقات للاستجابات. |
prompt |
لا. | تعليمات تصف نوع الاستعلامات التي يجب إنشاؤها. اختياري عندما يكون لدى الوكيل المستهدف تعليمات مهيأة. |
output_dataset_name |
لا. | اسم مجموعة البيانات المخرجة التي يتم تخزين الاستعلامات المولدة فيها. إذا لم يتم توفيرها، تولد الخدمة اسما تلقائيا. |
sources |
لا. | ملفات بيانات البذرة (حسب معرف الملف) لتحسين ملاءمة الاستعلامات المولدة. حاليا هناك ملف واحد فقط مدعوم. |
قم بإعداد المقيمين ورسم خرائط البيانات
ينتج مولد البيانات التركيبية {{item.query}} استعلامات في الميدان. يقوم الهدف بتوليد استجابات متاحة في {{sample.output_text}}. قم بتعيين هذه الحقول إلى مقيميك:
data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}
testing_criteria = [
{
"type": "azure_ai_evaluator",
"name": "coherence",
"evaluator_name": "builtin.coherence",
"initialization_parameters": {
"deployment_name": model_deployment_name,
},
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
{
"type": "azure_ai_evaluator",
"name": "violence",
"evaluator_name": "builtin.violence",
"data_mapping": {
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
},
]
أنشئ التقييم وبدأ
هدف النموذج
توليد استعلامات تركيبية وتقييم نموذج:
eval_object = client.evals.create(
name="Synthetic Data Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
"output_dataset_name": "my-synthetic-dataset",
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
}
eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-data-evaluation",
data_source=data_source,
)
يمكنك اختياريا إضافة تنبيه نظام لتشكيل سلوك النموذج المستهدف. عند استخدام input_messages التوليد الصناعي للبيانات، قم بتضمين رسائل الأدوار فقط system — حيث توفر الخدمة الاستعلامات المولدة كرسائل مستخدم تلقائيا.
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
"input_messages": {
"type": "template",
"template": [
{
"type": "message",
"role": "system",
"content": {
"type": "input_text",
"text": "You are a helpful customer service agent. Be empathetic and solution-oriented."
}
}
]
},
}
هدف العميل
توليد استعلامات تركيبية وتقييم وكيل Foundry:
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_agent",
"name": agent_name,
"version": agent_version,
},
}
eval_run = client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-agent-evaluation",
data_source=data_source,
)
للاستطلاع لإكمال النتيجة وتفسير النتائج، راجع الحصول على النتائج. تتضمن الاستجابة خاصية output_dataset_id تحتوي على معرف مجموعة البيانات المولدة، والتي يمكنك استخدامها لاسترجاع أو إعادة استخدام البيانات الاصطناعية.
احصل على النتائج
بعد الانتهاء من عملية التقييم، استرجع النتائج المدرجة وراجعها في البوابة أو بشكل برنامجي.
استطلاع للنتائج
عمليات التقييم غير متزامنة. قم باستطلاع حالة الجولة حتى تكملها، ثم استرجع النتائج:
import time
from pprint import pprint
while True:
run = client.evals.runs.retrieve(
run_id=eval_run.id, eval_id=eval_object.id
)
if run.status in ("completed", "failed"):
break
time.sleep(5)
print("Waiting for eval run to complete...")
if run.status == "failed":
print(f"Evaluation run failed: {run.error}")
else:
# Retrieve results
output_items = list(
client.evals.runs.output_items.list(
run_id=run.id, eval_id=eval_object.id
)
)
pprint(output_items)
print(f"Report URL: {run.report_url}")
تفسير النتائج
كمثال بيانات واحد، يخرج جميع المقيمين المخطط التالي:
- العلامة: تسمية ثنائية "نجاح" أو "رسوب"، مشابهة لمخرجات اختبار الوحدة. استخدم هذه النتيجة لتسهيل المقارنات بين المقيمين.
- الدرجة: درجة من المقياس الطبيعي لكل مقيم. يستخدم بعض المقيمين معايير دقيقة الحبيبات، حيث يتم تقييمها على مقياس من 5 نقاط (مقيمو الجودة) أو مقياس من 7 نقاط (مقيمو سلامة المحتوى). وأخرى، مثل مقيمات التشابه النصي، تستخدم درجات F1، وهي عائمات بين 0 و1. أي "درجة" غير ثنائية يتم تحويلها إلى "نجاح" أو "رسوب" في حقل "التصنيف" بناء على "العتبة".
- العتبة: يتم تحويل أي درجات غير ثنائية إلى "نجاح" أو "فشل" بناء على عتبة افتراضية، يمكن للمستخدم تجاوزه في تجربة SDK.
- السبب: لتحسين الفهم، يقوم جميع مقيمين الحكم في نماذج اللغة الكبيرة أيضا بإخراج حقل استدلالي لشرح سبب منح درجة معينة.
- التفاصيل: (اختياري) بالنسبة لبعض المقيمين، مثل tool_call_accuracy، قد يكون هناك حقل "التفاصيل" أو علامات تحتوي على معلومات إضافية لمساعدة المستخدمين على تصحيح تطبيقاتهم.
مثال على مخرج (عنصر واحد)
{
"type": "azure_ai_evaluator",
"name": "Coherence",
"metric": "coherence",
"score": 4.0,
"label": "pass",
"reason": "The response is well-structured and logically organized, presenting information in a clear and coherent manner.",
"threshold": 3,
"passed": true
}
مثال على المخرجات (المجمع)
بالنسبة للنتائج المجمعة عبر عدة أمثلة بيانات (مجموعة بيانات)، يشكل متوسط معدل الأمثلة التي تحتوي على "نجاح" معدل النجاح لتلك المجموعة.
{
"eval_id": "eval_abc123",
"run_id": "run_xyz789",
"status": "completed",
"result_counts": {
"passed": 85,
"failed": 15,
"total": 100
},
"per_testing_criteria_results": [
{
"name": "coherence",
"passed": 92,
"failed": 8,
"pass_rate": 0.92
},
{
"name": "relevance",
"passed": 78,
"failed": 22,
"pass_rate": 0.78
}
]
}
استكشاف الأخطاء وإصلاحها
الوظيفة التي تعمل لفترة طويلة
قد تبقى وظيفة التقييم في حالة التشغيل لفترة طويلة. يحدث هذا عادة عندما لا يكون نشر نموذج Azure OpenAI لديه سعة كافية، مما يدفع الخدمة لإعادة محاولة الطلبات.
القرار:
- ألغ وظيفة التقييم الحالية باستخدام
client.evals.runs.cancel(run_id, eval_id=eval_id). - زد سعة النماذج في بوابة Azure.
- قم بتشغيل التقييم مرة أخرى.
أخطاء المصادقة
إذا تلقيت خطأ 401 Unauthorized أو 403 Forbidden تحقق، تحقق من ذلك:
-
DefaultAzureCredentialلديك مهيأ بشكل صحيح (شغلaz loginإذا كنت تستخدم Azure CLI). - حسابك لديه دور Azure مستخدم الذكاء الاصطناعي في مشروع Foundry.
- رابط نقطة نهاية المشروع صحيح ويشمل كلا من الحساب واسم المشروع.
أخطاء تنسيق البيانات
إذا فشل التقييم مع خطأ في مخطط أو تعيين بيانات:
- تحقق من أن ملف JSONL الخاص بك يحتوي على كائن JSON صالح واحد لكل سطر.
- تأكد من أن أسماء الحقول تتطابق
data_mappingتماما مع أسماء الحقول في ملف JSONL الخاص بك (حساس للحروف الحرفية). - تحقق من تطابق
item_schemaالخصائص مع الحقول في مجموعة بياناتك.
أخطاء حد المعدل
الإبداعات التي يتم تشغيلها في التقييم محدودة بالمعدل على مستوى المستأجر، والاشتراك، والمشروع. إذا تلقيت 429 Too Many Requests ردا:
- تحقق من
retry-afterالعنوان في الرد لمعرفة مدة الانتظار الموصى بها. - راجع هيئة الاستجابة لمعرفة تفاصيل حدود الأسعار.
- استخدم التراجع الأسي عند إعادة محاولة الطلبات الفاشلة.
إذا فشلت مهمة تقييم مع وجود 429 خطأ أثناء التنفيذ:
- قلل حجم مجموعة بيانات التقييم الخاصة بك أو قسمها إلى دفعات أصغر.
- زد حصة الرموز في الدقيقة (TPM) لنشر النموذج في بوابة Azure.
أخطاء أداة تقييم الوكلاء
إذا أعاد مقيم وكيل خطأ للأدوات غير المدعومة:
- تحقق من الأدوات المدعومة لتقييمي الوكلاء.
- كحل بديل، لف الأدوات غير المدعومة كأدوات وظيفة يحددها المستخدم حتى يتمكن المقيم من تقييمها.