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 .
  • Um dataset de avaliação está anexado a um experimento MLflow . Se você ainda não tem um experimento, consulte Criar um experimento do MLflow para criar um.

fonte de dados para conjunto de dados de avaliação

Você pode usar qualquer uma das seguintes opções para criar um dataset de avaliação:

  • Vestígios existentes. Se você já capturou rastros de um aplicativo GenAI, pode usá-los para criar um dataset de avaliação baseado em cenários do mundo real.
  • Um dataset existente ou exemplos inseridos diretamente. Essa opção é útil para prototipagem rápida ou para testes direcionados de recursos específicos.
  • Dados sintéticos. O Databricks pode gerar automaticamente um conjunto de avaliação representativo a partir de seus documentos, permitindo que você avalie rapidamente seu agente com uma 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. Veja exemplos de avaliação do MLflow para GenAI .

Crie um dataset usando a interface do usuário.

Siga estes passos para usar a interface do usuário para criar um dataset a partir de rastreamentos existentes.

  1. Clique em Experimentos na barra lateral para exibir a página de Experimentos.

  2. Na tabela, clique no nome do seu experimento para abri-lo.

  3. Na barra lateral esquerda, clique em Vestígios .

    tab Rastros" na barra lateral

  4. Use as caixas de seleção à esquerda da lista de rastreamento para selecionar os rastreamentos que deseja exportar para seu dataset. Para selecionar todos os rastreamentos, clique na caixa ao lado de ID do rastreamento .

    Selecionando traços para datasetde avaliação

  5. Ações de clique. No menu suspenso, selecione Adicionar ao datasetde avaliação .

  6. A caixa de diálogo " Adicionar traços ao datasetde avaliação" é exibida.

    Caso existam conjuntos de dados de avaliação para este experimento, eles aparecerão na caixa de diálogo.

    1. Clique em Exportar ao lado do dataset ao qual deseja adicionar esses registros.
    2. Após os rastros serem exportados, o botão muda para Exportado . Clique em Concluído .

    Caso não exista dataset de avaliação para o experimento:

    1. Clique em Criar novo dataset .
    2. Na caixa de diálogo Criar conjunto de dados , clique em Selecionar esquema e selecione o esquema que conterá o dataset.
    3. Clique em Confirmar .
    4. No campo Nome da tabela da caixa de diálogo Criar datasetde avaliação , insira um nome para o dataset de avaliação e clique em Criar conjunto de dados .
    5. A caixa de diálogo "Adicionar traços ao datasetde avaliação" é exibida, mostrando o dataset que você acabou de criar. Clique em Exportar ao lado do dataset.
    6. Após os rastros serem exportados, o botão muda para Exportado . Clique em Concluído .

Crie um dataset usando o SDK

Siga estes passos para usar o SDK para criar um dataset.

o passo 1. Criar o dataset

Python
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

Esta seção descreve várias opções para adicionar registros ao dataset de avaliação.

Opção 1: Criar a partir de rastreamentos 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.

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.

Python
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']}")

Opção 2: Criar a partir de um especialista de 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}")

Opção 3: Criar do zero ou importar um modelo 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)

Opção 4: Inicialização 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.

Atualizar conjunto de dados existente

Você pode usar a interface do usuário ou o SDK para atualizar um dataset de avaliação.

Atualize usando a interface do usuário.

Siga estes passos para adicionar registros a um dataset de avaliação existente.

  1. Abra a página dataset no workspace Databricks :

    1. No workspace Databricks , navegue até o seu experimento.
    2. Na barra lateral à esquerda, clique em conjunto de dados .
    3. Clique no nome do dataset na lista.

    tab conjunto de dados na barra lateral

  2. Clique em Adicionar registro . Uma nova linha aparece com conteúdo genérico.

  3. Edite a nova linha diretamente para inserir os dados e as expectativas para o novo registro. Opcionalmente, defina quaisquer tags para o novo registro.

  4. Clique em Salvar alterações .

Atualize usando o SDK

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

Mais informações