Conjunto de dados de avaliação
Dados de teste selecionados para avaliação sistemática do aplicativo GenAI. Inclui entradas, informações básicas opcionais (expectativas) e metadados.
Duas maneiras de fornecer dados de avaliação
O senhor pode fornecer dados de avaliação para o chicote de avaliação do MLflow de duas maneiras:
1. MLflow Conjunto de dados de avaliação (recomendado)
Conjunto de dados criado para fins específicos armazenado em Unity Catalog com:
- Controle de versão : Acompanhe as alterações do site dataset ao longo do tempo
- Linhagem : Vincule os registros do dataset às suas entradas (rastreamentos de origem) e acompanhe seu uso (execução de avaliação e versões de aplicativos)
- Colaboração : Compartilhe o conjunto de dados entre as equipes
- Integração : Fluxo de trabalho contínuo com MLflow UI e APIs
- Governança : Segurança do Unity Catalog e controles de acesso
- Conversão de traços : Converta facilmente os traços de produção em registros de avaliação dataset usando a interface do usuário ou SDK
- Visualização : Inspecione e edite o conteúdo do site dataset diretamente na UI do site MLflow
Quando usar : Fluxo de trabalho de avaliação da produção, testes de regressão e quando o senhor precisar de recursos de gerenciamento do dataset.
2. Conjunto de dados arbitrário (prototipagem rápida)
Use estruturas de dados existentes, como:
- Lista de dicionários
- Pandas DataFrame
- DataFrame do Spark
Quando usar : experimentos rápidos, prototipagem ou quando você já tem dados de avaliação nesses formatos.
Esquema do conjunto de dados de avaliação
O conjunto de dados de avaliação segue uma estrutura consistente, independentemente de você utilizar a abstração do conjunto de dados de avaliação do MLflow ou passar os dados diretamente para o mlflow.genai.evaluate()
.
Campos principais
Os campos a seguir são usados na abstração do conjunto de dados de avaliação ou se o senhor passar os dados diretamente.
Coluna | Tipo de dados | Descrição | Obrigatório |
---|---|---|---|
|
| Entradas para o seu aplicativo (por exemplo, pergunta do usuário, contexto), armazenadas como um JSON-seralizável | Sim |
|
| O rótulo da verdade fundamental, armazenado como um JSON-seralizable | Opcional |
expectations
chave reservada
expectations
tem várias chaves reservadas que são usadas pelos avaliadores LLM pré-construídos: guidelines
, expected_facts
e expected_response
.
campo | Usado por | Descrição |
---|---|---|
|
| Lista de fatos que devem aparecer |
|
| Saída esperada exata ou similar |
|
| Regras de linguagem natural a serem seguidas |
|
| Documentos que devem ser recuperados |
Campos adicionais
Os campos a seguir são usados pela abstração do conjunto de dados de avaliação para rastrear a linhagem e o histórico de versões.
Coluna | Tipo de dados | Descrição | Obrigatório |
---|---|---|---|
| string | O identificador exclusivo do registro. | Definido automaticamente se não for fornecido. |
| carimbo de data/hora | A hora em que o registro foi criado. | Definido automaticamente ao inserir ou atualizar. |
| string | O usuário que criou o registro. | Definido automaticamente ao inserir ou atualizar. |
| carimbo de data/hora | A hora em que o registro foi atualizado pela última vez. | Definido automaticamente ao inserir ou atualizar. |
| string | O usuário que atualizou o registro pela última vez. | Definido automaticamente ao inserir ou atualizar. |
| struct | A fonte do registro dataset (consulte abaixo). | Opcional |
| dict [str, Qualquer] | tags de valor-chave para o registro dataset. | Opcional |
Campo de origem
O campo source
rastreia de onde veio um registro dataset. Cada registro pode ter somente um tipo de fonte:
1. Fonte humana - Registro criado manualmente por uma pessoa
{
"source": {
"human": {
"user_name": "jane.doe@company.com"
}
}
}
user_name
(str): O usuário que criou o registro
2. Fonte do documento - Registro sintetizado a partir de um documento
{
"source": {
"document": {
"doc_uri": "s3://bucket/docs/product-manual.pdf",
"content": "The first 500 chars of the document..." # Optional
}
}
}
doc_uri
(str): URI/caminho para o documento de origemcontent
(str, opcional): trecho ou conteúdo completo do documento
3. Fonte de rastreamento - Registro criado a partir de um rastreamento de produção
{
"source": {
"trace": {
"trace_id": "tr-abc123def456"
}
}
}
trace_id
(str): O identificador exclusivo do rastreamento de origem
MLflow Conjunto de dados de avaliação UI
MLflow Conjunto de dados de avaliação reference SDK
O SDK do conjunto de dados de avaliação fornece acesso programático para criar, gerenciar e usar conjuntos de dados para avaliação do aplicativo GenAI. Para obter detalhes, consulte a referência da API: mlflow.genai.datasets
. Alguns dos métodos e classes mais frequentemente utilizados são os seguintes:
mlflow.genai.datasets.create_dataset
mlflow.genai.datasets.get_dataset
mlflow.genai.datasets.delete_dataset
EvaluationDataset
. Esta classe fornece métodos para interagir e modificar conjuntos de dados de avaliação.
Padrões comuns
Criar conjunto de dados a partir de traços de produção
import mlflow
import mlflow.genai.datasets
import pandas as pd
# By default, search_traces() searches the current active experiment.
# To search a different experiment, set it explicitly:
mlflow.set_experiment(experiment_id=<YOUR_EXPERIMENT_ID>)
# Search for production traces with good feedback
traces = mlflow.search_traces(
filter_string="""
tags.environment = 'production'
AND attributes.feedback_score > 0.8
"""
)
dataset = mlflow.genai.datasets.create_dataset(
uc_table_name="catalog.schema.production_golden_set"
)
dataset = dataset.merge_records(traces)
Atualizar o conjunto de dados existente
import mlflow.genai.datasets
import pandas as pd
# Load existing dataset
dataset = mlflow.genai.datasets.get_dataset("catalog.schema.eval_dataset")
# Add new test cases
new_cases = [
{
"inputs": {"question": "What are MLflow models?"},
"expectations": {
"expected_facts": ["model packaging", "deployment", "registry"],
"min_response_length": 100
}
}
]
# Merge new cases
dataset = dataset.merge_records(new_cases)
Limitação
A chave de gerenciamento do cliente (CMK) não é compatível.
Próximas etapas
Guia de instruções
- Criar conjunto de dados de avaliação - Criação passo a passo do site dataset
- Avalie seu aplicativo - Use o conjunto de dados para avaliação
Conceitos
- Evaluation Harness - Como o conjunto de dados é usado
- Evaluation execution - Resultados da avaliação dataset
- Scorers - métricas aplicadas ao conjunto de dados