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.
Avalie respostas pré-computadas em dados JSONL ou CSV definindo um esquema, mapeando campos para avaliadores e iniciando uma execução de avaliação na cloud.
Pré-requisitos
- Complete os pré-requisitos de avaliação cloud e a configuração do cliente.
- Um conjunto de dados JSONL ou CSV com os campos exigidos pelos teus avaliadores.
Os exemplos utilizam o cliente SDK configurado em Configurar o cliente SDK.
Preparar dados de entrada
A maioria dos cenários de avaliação requer dados de entrada. Pode fornecer dados de duas formas:
Tip
Se não tiveres um conjunto de dados selecionado à mão, podes iniciar um. Utilize Gerar um conjunto de dados de avaliação sintético quando estiver em pré-lançamento ou tiver pouco tráfego, ou Converter rastreios do agente em conjuntos de dados de avaliação para construir um conjunto de dados a partir de tráfego real de produção.
Carregar um conjunto de dados (recomendado)
Carregue um ficheiro JSONL ou CSV para criar um conjunto de dados versionado no seu projeto Foundry. Os conjuntos de dados suportam versionamento e reutilização em múltiplas execuções de avaliação. Use esta abordagem para testes de produção e fluxos de trabalho CI/CD.
Prepare um ficheiro JSONL com um objeto JSON por linha contendo os campos de que os seus avaliadores precisam:
{"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."}
Ou prepare um ficheiro CSV com cabeçalhos de coluna que correspondam aos campos do avaliador:
query,response,ground_truth
What is machine learning?,Machine learning is a subset of AI.,Machine learning is a type of AI that learns from data.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,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
Fornecer dados em linha
Para uma experimentação rápida com pequenos conjuntos de dados pré-computados, forneça os dados diretamente no pedido de avaliação usando file_content.
source = SourceFileContent(
type="file_content",
content=[
SourceFileContentContent(
item={
"query": "How can I safely de-escalate a tense situation?",
"response": "Encourage calm communication, seek help if needed, and avoid harm.",
"ground_truth": "Encourage calm communication, seek help if needed, and avoid harm.",
}
),
SourceFileContentContent(
item={
"query": "What is the largest city in France?",
"response": "Paris",
"ground_truth": "Paris",
}
),
],
)
Passe source como campo "source" na configuração da sua fonte de dados ao iniciar uma execução. As secções seguintes do conjunto de dados utilizam file_id por predefinição.
Suporte a tipos de fonte por formato de conjunto de dados
Ambos os formatos de conjuntos de dados suportam origens de ficheiro e em linha.
| Formato do conjunto de dados | file_id |
file_content |
|---|---|---|
Conjunto de dados (jsonl) |
Sim | Sim |
CSV (csv) |
Sim | Sim |
Avaliar um conjunto de dados JSONL
Avalie respostas pré-computadas num ficheiro JSONL usando o jsonl tipo de fonte de dados. Este cenário é útil quando já tem resultados do modelo e quer avaliar a sua qualidade.
Tip
Antes de começar, complete a configuração do cliente e prepare os dados de entrada.
Defina o esquema de dados e os avaliadores
Especifique o esquema que corresponde aos seus campos JSONL e selecione os avaliadores (critérios de teste) a executar. Utilize data_mapping para associar entradas do avaliador a campos no seu conjunto de dados, utilizando a sintaxe {{item.field}}. Inclua as entradas exigidas por cada avaliador, mesmo quando o seu conjunto de dados utiliza nomes de campos padrão como query, response, e ground_truth. Para as entradas exigidas por avaliador, veja avaliadores incorporados.
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 = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
]
Criar avaliação e executar
Crie a avaliação e depois inicie uma execução com o seu conjunto de dados carregado. A execução executa cada avaliador em todas as linhas do conjunto de dados.
# Create the evaluation
eval_object = openai_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 = openai_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,
),
),
)
Para um exemplo completo executável, veja sample_evaluations_builtin_with_dataset_id.py em GitHub. Para verificar periodicamente a conclusão e interpretar os resultados, consulte Obter os resultados da avaliação na nuvem.
Avaliar um conjunto de dados CSV
Avalie respostas pré-computadas num ficheiro CSV usando o tipo de csv fonte de dados. Este cenário funciona da mesma forma que a avaliação de conjuntos de dados , mas aceita ficheiros CSV em vez de JSONL. Usa CSV quando os teus dados já estiverem em formato de folha de cálculo ou tabular.
Tip
Antes de começar, complete a configuração do cliente e prepare os dados de entrada.
Preparar um ficheiro CSV
Crie um ficheiro CSV com cabeçalhos de coluna que correspondam aos campos que os seus avaliadores precisam. Cada linha representa um caso de teste.
query,response,context,ground_truth
What is cloud computing?,Cloud computing delivers computing services over the internet.,Cloud computing is a technology for on-demand resource delivery.,Cloud computing is the delivery of computing services including servers storage and databases over the internet.
What is machine learning?,Machine learning is a subset of AI that learns from data.,Machine learning is a branch of artificial intelligence.,Machine learning is a type of AI that enables computers to learn from data without being explicitly programmed.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,Neural networks are used in deep learning.,Neural networks are a set of algorithms modeled after the human brain designed to recognize patterns.
Carregar e executar
Carrega o ficheiro CSV como um conjunto de dados. Depois, crie uma avaliação usando o csv tipo de fonte de dados. A definição do esquema e a configuração do avaliador são as mesmas das avaliações JSONL. A única diferença é o "type": "csv" na fonte de dados.
# Upload the CSV file
data_id = project_client.datasets.upload_file(
name="eval-csv-data",
version="1",
file_path="./evaluation_data.csv",
).id
# Define the schema matching your CSV columns
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
"response": {"type": "string"},
"context": {"type": "string"},
"ground_truth": {"type": "string"},
},
"required": [],
},
include_sample_schema=True,
)
# Define evaluators that use the standard CSV columns
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": "{{item.response}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
]
# Create the evaluation
eval_object = openai_client.evals.create(
name="CSV evaluation with built-in evaluators",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
# Create a run using the CSV data source type
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="csv-evaluation-run",
data_source={
"type": "csv",
"source": {
"type": "file_id",
"id": data_id,
},
},
)
Passos seguintes
- Para verificar periodicamente a conclusão e interpretar os resultados, consulte Obter os resultados da avaliação na nuvem.
- Para um exemplo completo executável, veja sample_evaluations_builtin_with_csv.py sobre GitHub.
- Para um exemplo completo de conjunto de dados .NET, veja Sample2_EvaluationsWithDatasetId.md no GitHub.