Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Os itens assinalados com (pré-visualização) neste artigo estão atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para trabalhos em produção. Certas funcionalidades podem não ser suportadas ou podem ter capacidades limitadas. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.
Gerar consultas individuais de teste, enviá-las para um modelo ou agente alvo e avaliar as respostas alvo.
Pré-requisitos
- Complete os pré-requisitos de avaliação cloud e a configuração do cliente.
- Um modelo de implementação que suporta a API Responses para geração de consultas.
- Um modelo ou agente alvo para avaliar.
Os exemplos utilizam o cliente SDK configurado em Configurar o cliente SDK.
Gerar consultas sintéticas
Use o azure_ai_synthetic_data_gen_preview tipo de fonte de dados para gerar consultas de teste sintéticas, envie-as para um modelo implementado ou agente Foundry e avalie as respostas. Use este cenário quando não tiver um conjunto de dados de teste. O serviço gera consultas com base num prompt que fornece (e/ou nas instruções do agente), executa-as contra o seu alvo e avalia as respostas.
Importante
Antes de começar, complete a configuração do cliente.
Como funciona a avaliação de dados sintéticos
- O serviço gera consultas sintéticas baseadas no seu
prompte em ficheiros de dados iniciais opcionais. - Cada consulta é enviada ao alvo especificado (modelo ou agente) para gerar uma resposta.
- Os avaliadores avaliam cada resposta usando a consulta e resposta geradas.
- As consultas geradas são armazenadas como um conjunto de dados no seu projeto para reutilização.
Parameters
| Parâmetro | Obrigatório | Description |
|---|---|---|
samples_count |
Sim | Número máximo de consultas de teste sintéticas a gerar. |
model_deployment_name |
Sim | Implementação de modelos para gerar consultas sintéticas. Apenas modelos com capacidade Responses API são suportados. Para disponibilidade, consulte Disponibilidade de regiões da API de Respostas. O router modelo não é suportado aqui; só pode ser usado como alvo de avaliação. |
prompt |
Não | Instruções que descrevem o tipo de consultas a gerar. Opcional quando o agente alvo tem instruções configuradas. |
output_dataset_name |
Não | Nome para o conjunto de dados de saída onde as consultas geradas são armazenadas. Se não fornecer um nome, o serviço gera um automaticamente. |
sources |
Não | Ficheiros de dados iniciais (por ID de ficheiro) para melhorar a relevância das consultas geradas. Atualmente, apenas um ficheiro é suportado. |
Configurar avaliadores e mapeamentos de dados
O gerador de dados sintéticos produz consultas no campo {{item.query}}. O alvo gera respostas disponíveis em {{sample.output_text}}. Mapeie estes campos para os seus avaliadores:
from azure.ai.projects.models import TestingCriterionAzureAIEvaluator
data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Criar avaliação e executar
Alvo do modelo
Gerar consultas sintéticas e avaliar um modelo:
eval_object = openai_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 = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-data-evaluation",
data_source=data_source,
)
Pode, opcionalmente, adicionar um prompt do sistema para moldar o comportamento do modelo-alvo. Quando usar input_messages com geração de dados sintéticos, inclua apenas system mensagens de função – o serviço fornece automaticamente as consultas geradas como mensagens de utilizador.
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."
}
}
]
},
}
Agente alvo
Gerar consultas sintéticas e avaliar um agente de 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 = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-agent-evaluation",
data_source=data_source,
)
Para verificar periodicamente a conclusão e interpretar os resultados, consulte Obter os resultados da avaliação na nuvem. A resposta inclui uma output_dataset_id propriedade que contém o ID do conjunto de dados gerado, que pode usar para recuperar ou reutilizar os dados sintéticos.
Para exemplos completos executáveis, veja sample_synthetic_data_agent_evaluation.py e sample_synthetic_data_model_evaluation.py sobre GitHub.