Pular para o conteúdo principal

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:

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.

Siga a gravação abaixo para usar a interface do usuário para criar uma avaliação dataset

Crie uma avaliação dataset utilizando a interface do usuário.

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.

Siga a gravação abaixo para usar a interface do usuário para adicionar traços de produção existentes ao dataset

trace

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.

Python
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.

Python
# 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

Python
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

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

Guia de referência