Construindo o conjunto de dados de avaliação MLflow
Para testar e aprimorar sistematicamente um aplicativo GenAI, você usa um dataset de avaliação. Um dataset de avaliação é um conjunto selecionado de exemplos de entradas — rotuladas (com saídas esperadas conhecidas) ou não rotuladas (sem respostas verdadeiras). Os conjuntos de dados de avaliação ajudam você a melhorar o desempenho do seu aplicativo das seguintes maneiras:
- Melhore a qualidade testando as correções em exemplos problemáticos conhecidos da produção.
- Evitar regressões. Crie um "conjunto de ouro" de exemplos que devem sempre funcionar corretamente.
- Comparar versões de aplicativos. Teste diferentes prompts, modelos ou lógicas de aplicativos com os mesmos dados.
- Direcione o recurso específico. Criar conjuntos de dados especializados para segurança, conhecimento do domínio ou casos extremos.
- Validar o aplicativo em diferentes ambientes como parte do LLMOps.
Os conjuntos de dados de avaliação MLflow são armazenados no Unity Catalog, que oferece controle de versão, linhagem, compartilhamento e governança integrados.
Requisitos
Para criar um dataset de avaliação, você deve ter permissões CREATE TABLE em um esquema Unity Catalog .
Como construir um datasetde avaliação
Existem 3 maneiras de criar um dataset de avaliação:
- Criando um dataset a partir de rastreamentos existentes: Se você já capturou rastreamentos de um aplicativo GenAI, pode usá-los para criar um dataset de avaliação baseado em cenários do mundo real.
- Importar um dataset ou criar um dataset do zero: Utilize um dataset existente ou crie um dataset de avaliação do zero. Isso é útil para prototipagem rápida ou para testes direcionados de recursos específicos.
- Como iniciar um dataset de avaliação com dados sintéticos: Databricks pode gerar automaticamente um conjunto de avaliação representativo a partir de seus documentos, permitindo que você avalie rapidamente seu agente com boa cobertura de casos de teste.
Esta página descreve como criar um dataset de avaliação MLflow . Você também pode usar outros tipos de conjuntos de dados, como DataFrames Pandas ou uma lista de dicionários, para começar rapidamente. Veja exemplos de avaliação do MLflow para GenAI .
Etapa 1: Criar um dataset
O primeiro passo é criar um dataset de avaliação MLflow-gerenciar. O conjunto de dados de avaliação MLflow-gerenciar rastreia mudanças ao longo do tempo e mantém links para os resultados de avaliação individuais.
- Using the UI
- Using the SDK
Siga a gravação abaixo para usar a interface do usuário para criar uma avaliação dataset

Crie uma avaliação dataset programaticamente, buscando traços e adicionando-os ao site dataset.
import mlflow
import mlflow.genai.datasets
import time
from databricks.connect import DatabricksSession
# 0. If you are using a local development environment, connect to Serverless Spark which powers MLflow's evaluation dataset service
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
# 1. Create an evaluation dataset
# Replace with a Unity Catalog schema where you have CREATE TABLE permission
uc_schema = "workspace.default"
# This table will be created in the above UC schema
evaluation_dataset_table_name = "email_generation_eval"
eval_dataset = mlflow.genai.datasets.create_dataset(
name=f"{uc_schema}.{evaluation_dataset_table_name}",
)
print(f"Created evaluation dataset: {uc_schema}.{evaluation_dataset_table_name}")
Etapa 2: Adicione registros ao seu dataset
Abordagem 1: criar a partir de traços existentes
Uma das maneiras mais eficazes de criar uma avaliação relevante dataset é selecionar exemplos diretamente das interações históricas do seu aplicativo capturadas por MLflow Tracing. O senhor pode criar um conjunto de dados a partir de traços usando a UI de monitoramento MLflow ou o SDK.
- Using the UI
- Using the SDK
Siga a gravação abaixo para usar a interface do usuário para adicionar traços de produção existentes ao dataset

Realizar buscas programáticas por rastros e adicioná-los ao dataset. Consulte a página de referência de rastreamento de consultas para obter detalhes sobre como usar filtros em search_traces(). Você pode usar filtros para identificar rastreamentos por sucesso, falha, uso em produção ou outras propriedades.
import mlflow
# 2. Search for traces
traces = mlflow.search_traces(
filter_string="attributes.status = 'OK'",
order_by=["attributes.timestamp_ms DESC"],
tags.environment = 'production',
max_results=10
)
print(f"Found {len(traces)} successful traces")
# 3. Add the traces to the evaluation dataset
eval_dataset = eval_dataset.merge_records(traces)
print(f"Added {len(traces)} records to evaluation dataset")
# Preview the dataset
df = eval_dataset.to_df()
print(f"\nDataset preview:")
print(f"Total records: {len(df)}")
print("\nSample record:")
sample = df.iloc[0]
print(f"Inputs: {sample['inputs']}")
Abordagem 2: Criar a partir do rótulo do especialista em domínio
Aproveite o feedback de especialistas de domínio capturado em MLflow rótulo Sessions para enriquecer seu conjunto de dados de avaliação com rótulo de verdade. Antes de executar essas etapas, siga o guia de coleta de feedback de especialista em domínio para criar uma sessão de rótulo.
import mlflow.genai.labeling as labeling
# Get a labeling sessions
all_sessions = labeling.get_labeling_sessions()
print(f"Found {len(all_sessions)} sessions")
for session in all_sessions:
print(f"- {session.name} (ID: {session.labeling_session_id})")
print(f" Assigned users: {session.assigned_users}")
# Sync from the labeling session to the dataset
all_sessions[0].sync(dataset_name=f"{uc_schema}.{evaluation_dataset_table_name}")
Abordagem 3: Crie do zero ou importe o existente
O senhor pode importar um site existente dataset ou selecionar exemplos do zero. Seus dados devem corresponder (ou ser transformados para corresponder) ao esquema de avaliação dataset.
# Define comprehensive test cases
evaluation_examples = [
{
"inputs": {"question": "What is MLflow?"},
"expected": {
"expected_response": "MLflow is an open source platform for managing the end-to-end machine learning lifecycle.",
"expected_facts": [
"open source platform",
"manages ML lifecycle",
"experiment tracking",
"model deployment"
]
},
},
]
eval_dataset = eval_dataset.merge_records(evaluation_examples)
Abordagem 4: Semeie usando dados sintéticos
A geração de dados sintéticos pode expandir seus esforços de teste, criando rapidamente diversas entradas e abrangendo casos extremos. Consulte Sintetizar conjuntos de avaliação.
o passo 3: Atualizar o conjunto de dados existente
import mlflow.genai.datasets
import pandas as pd
# Load existing dataset
dataset = mlflow.genai.datasets.get_dataset(name="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ções
- Chaves de gerenciamento de clientes (CMK) não são suportadas.
- Máximo de 2.000 linhas por dataset de avaliação.
- Máximo de 20 expectativas por registro dataset .
Caso precise que alguma dessas limitações seja flexibilizada para o seu caso específico, entre em contato com seu representante da Databricks.
Próximas etapas
- Avalie seu aplicativo - Use o recém-criado dataset para avaliação
- Crie pontuadores personalizados - Crie marcadores para avaliar com base na verdade
Guia de referência
- Conjunto de dados de avaliação - Análise detalhada da estrutura e das capacidades dataset
- Ferramenta de avaliação - Aprenda como
mlflow.genai.evaluate()usa seu conjunto de dados - Modelo de dados de rastreamento - Entenda os rastreamentos como uma fonte para o conjunto de dados de avaliação
- Avaliadores - Aplica cada avaliador para avaliar a qualidade dos resultados da execução do novo aplicativo em relação ao datasetde avaliação.