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.
Se estiver usando uma avaliaçãoDatabricks account , o senhor tem permissões CREATE TABLE no esquema Unity Catalog workspace.default
.
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