Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.
Gere consultas de teste individuais, envie-as para um modelo ou agente de destino e avalie as respostas do destino.
Pré-requisitos
- Conclua os pré-requisitos de avaliação de nuvem e a configuração do cliente.
- Uma implantação de modelo que dá suporte à API de Respostas para geração de consulta.
- Um modelo ou agente alvo a ser avaliado.
Os exemplos usam o cliente SDK configurado em Configurar o cliente SDK.
Gerar consultas sintéticas
Use o tipo de fonte de dados azure_ai_synthetic_data_gen_preview para gerar consultas de teste sintéticas, enviá-las para um modelo implantado ou agente do Foundry e avaliar as respostas. Use esse cenário quando você não tiver um conjunto de dados de teste. O serviço gera consultas com base em um prompt que você fornece (e/ou a partir das instruções do agente), executa-as no seu destino e avalia as respostas.
Importante
Antes de começar, conclua a configuração do cliente.
Como funciona a avaliação de dados sintéticos
- O serviço gera consultas sintéticas com base no seu
prompte nos arquivos de dados de semente opcionais. - Cada consulta é enviada para o destino especificado (modelo ou agente) para gerar uma resposta.
- Os avaliadores pontuam cada resposta usando a consulta e a resposta geradas.
- As consultas geradas são armazenadas como um conjunto de dados em seu projeto para reutilização.
Parâmetros
| Parâmetro | Obrigatório | Description |
|---|---|---|
samples_count |
Sim | Número máximo de consultas de teste sintéticas a serem geradas. |
model_deployment_name |
Sim | Implantação do modelo para uso na geração de consultas sintéticas. Há suporte apenas para modelos com funcionalidade de API de Respostas. Para obter disponibilidade, consulte a disponibilidade da região da API de Respostas. O roteador de modelos não é compatível aqui; ele só pode ser usado como alvo de avaliação. |
prompt |
Não | Instruções que descrevem o tipo de consultas a serem geradas. Opcional quando o alvo do agente já tiver instruções configuradas. |
output_dataset_name |
Não | Nome do conjunto de dados de saída em que as consultas geradas são armazenadas. Se você não fornecer um nome, o serviço gerará um automaticamente. |
sources |
Não | Arquivos de dados iniciais (organizados por ID de arquivo) para melhorar a relevância das consultas geradas. Atualmente, há suporte apenas para um arquivo. |
Configurar avaliadores e mapeamentos de dados
O gerador de dados sintéticos produz consultas no {{item.query}} campo. O alvo gera respostas que estão disponíveis em {{sample.output_text}}. Mapeie estes campos para 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
Gere consultas sintéticas e avalie 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,
)
Opcionalmente, você pode adicionar um prompt do sistema para moldar o comportamento do modelo de destino. Quando você usa input_messages com a geração de dados sintéticos, inclua apenas system mensagens de função – o serviço fornece as consultas geradas como mensagens de usuário automaticamente.
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."
}
}
]
},
}
Alvo do agente
Gere consultas sintéticas e avalie um agente do 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 sondar a conclusão e interpretar os resultados, consulte Obter resultados de avaliação de nuvem. A resposta inclui uma output_dataset_id propriedade que contém a ID do conjunto de dados gerado, que você pode usar para recuperar ou reutilizar os dados sintéticos.
Para obter exemplos executáveis completos, consulte sample_synthetic_data_agent_evaluation.py e sample_synthetic_data_model_evaluation.py no GitHub.