Construindo MLflow Conjunto de dados de avaliação
Este guia mostra as várias maneiras de criar um conjunto de dados de avaliação para testar sistematicamente e melhorar a qualidade do seu aplicativo GenAI. O senhor aprenderá várias abordagens para criar um conjunto de dados que possibilite uma avaliação consistente e repetível à medida que o aplicativo for sendo desenvolvido.
O conjunto de dados de avaliação ajuda o senhor:
- Corrija problemas conhecidos : adicione exemplos problemáticos da produção para testar repetidamente as correções
- Evite regressões : crie um conjunto dourado " " de exemplos que sempre devem funcionar corretamente
- Compare versões : teste diferentes prompts, modelos ou lógica do aplicativo com os mesmos dados
- Recurso específico de destino : criar um conjunto de dados especializado para segurança, conhecimento de domínio ou casos extremos
Comece com um único conjunto de dados bem selecionado dataset e depois expanda para vários conjuntos de dados à medida que suas necessidades de teste aumentarem.
O que você aprenderá:
- Criar um conjunto de dados a partir de traços de produção para testar cenários do mundo real
- Criar um conjunto de dados do zero para testes direcionados de recursos específicos
- Importar dados de avaliação existentes de CSV, JSON ou outros formatos
- Gere dados de teste sintéticos para expandir a cobertura
- Adicionar rótulo de verdade do feedback do especialista no domínio
Este guia mostra como usar o conjunto de dados de avaliação MLflow-gerenciar, que fornece histórico de versões e acompanhamento de linhagens. Para uma prototipagem rápida, o senhor também pode fornecer sua avaliação dataset como um dicionário Python ou um quadro de dados Pandas/Spark que segue o mesmo esquema do MLflow-gerenciar dataset. Para saber mais sobre o esquema do dataset de avaliação, consulte a página de referência do conjunto de dados de avaliação.
Pré-requisitos
-
Instale o site MLflow e o pacote necessário
Bashpip install --upgrade "mlflow[databricks]>=3.1.0"
-
Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.
-
Acesso a um esquema Unity Catalog com permissões
CREATE TABLE
para criar um conjunto de dados de avaliação.
Abordagens para criar seu conjunto de dados
MLflow oferece várias maneiras flexíveis de construir uma avaliação dataset adaptada às suas necessidades:
- Criar um dataset a partir de traces existentes: Aproveite os dados avançados já capturados em seus MLflow Traces.
- Importar um dataset ou criar um dataset do zero: Definir manualmente exemplos de entrada específicos e (opcionalmente) os resultados esperados.
- Semeando uma avaliação dataset com dados sintéticos: Gerar automaticamente diversas entradas.
Escolha o método ou a combinação de métodos que melhor se adapte à sua fonte de dados atual e às metas de avaliação.
Etapa 1: Criar um dataset
Independentemente do método que escolher, primeiro o senhor deve criar uma avaliação do MLflow-gerenciar dataset. Essa abordagem permite que o senhor acompanhe as mudanças no site dataset ao longo do tempo e vincule os resultados da avaliação individual a esse site dataset.
- 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(
uc_table_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
Pesquise programaticamente os rastros e adicione-os ao site dataset. Consulte a página de referência de rastreamentos de consulta para obter detalhes sobre como usar filtros em search_traces()
.
import mlflow
# 2. Search for traces
traces = mlflow.search_traces(
filter_string="attributes.status = 'OK'",
order_by=["attributes.timestamp_ms DESC"]
max_results=10
)
print(f"Found {len(traces)} successful traces")
# 3. Add the traces to the evaluation 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.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 cobrindo casos extremos. Para saber mais, visite a referência do conjunto de dados de avaliação synthesize.
Próximas etapas
Continue sua jornada com estas ações recomendadas e o tutorial.
-
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
Explore a documentação detalhada dos conceitos e recursos mencionados neste guia.
- Conjunto de dados de avaliação - Mergulhe fundo na estrutura e nos recursos do site dataset
- Evaluation Harness - Saiba como o site
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