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}")

a etapa 2: Adicione registros ao seu dataset

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

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.

Pesquise programaticamente por rastros e adicione-os ao dataset usando search_traces(). Utilize filtros para identificar rastros por sucesso, falha, uso em produção ou outras propriedades. Consulte Rastreamentos de pesquisa programaticamente.

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

Selecione os traços para o conjunto de dados de avaliação.

Antes de adicionar rastreamentos ao seu dataset, identifique quais rastreamentos representam casos de teste importantes para suas necessidades de avaliação. Você pode usar análises quantitativas e qualitativas para selecionar traços representativos.

Seleção quantitativa de traços

Utilize a interface de usuário ou o SDK do MLflow para filtrar e analisar rastreamentos com base em características mensuráveis:

  • Na interface do MLflow : filtre por tags (ex.: tag.quality_score < 0.7), pesquise entradas/saídas específicas, classifique por latência ou uso de tokens.
  • Programaticamente : consulte rastreamentos para realizar análises avançadas.
Python
import mlflow
import pandas as pd

# Search for traces with potential quality issues
traces_df = mlflow.search_traces(
filter_string="tag.quality_score < 0.7",
max_results=100,
extract_fields=["span.end_time", "span.inputs.messages", "span.outputs.choices", "span.attributes.usage.total_tokens"]
)

# Analyze patterns
# For example, check if quality issues correlate with token usage
correlation = traces_df["span.attributes.usage.total_tokens"].corr(traces_df["tag.quality_score"])
print(f"Correlation between token usage and quality: {correlation}")

Para obter a sintaxe completa da consulta de rastreamento e exemplos, consulte Pesquisar rastreamentos programaticamente.

Seleção qualitativa de traços

Analise os rastros individuais para identificar padrões que exijam julgamento humano:

  • Analise os fatores que levaram a resultados de baixa qualidade.
  • Procure padrões em como seu aplicativo lidou com casos extremos.
  • Identificar contexto ausente ou raciocínio falho
  • Compare traços de alta e baixa qualidade para entender os fatores de diferenciação.

Após identificar os rastros representativos, adicione-os ao seu dataset usando os métodos de busca e merge descritos acima.

dica

Enriqueça seus rastreamentos com resultados esperados ou indicadores de qualidade para permitir a comparação com a realidade. Veja a seção sobre como coletar feedback de especialistas da área para adicionar rótulos humanos.

Atualizar conjunto de dados existente

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

Utilize a interface do usuário 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 .

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