Use traços para avaliar e melhorar a qualidade
Os rastreamentos não são apenas para depuração - eles contêm informações valiosas que podem gerar melhorias sistemáticas de qualidade em seus aplicativos GenAI. Este guia mostra como analisar rastreamentos para identificar problemas de qualidade, criar um conjunto de dados de avaliação a partir de dados de rastreamento, implementar melhorias direcionadas e medir o impacto de suas alterações.
Analisando traços para identificar problemas de qualidade
Os rastreamentos fornecem percepções detalhadas sobre como o aplicativo processa as solicitações dos usuários. Ao analisar esses traços, você pode identificar padrões de problemas de qualidade:
Análise quantitativa
-
Use a interface do usuário do MLflow para filtrar e agrupar traços com características semelhantes:
- Filtrar por tags específicas (por exemplo,
tag.issue_type = "hallucination"
) - Pesquise traços contendo entradas ou saídas específicas
- Classificar por metadados, como latência ou uso de tokens
- Filtrar por tags específicas (por exemplo,
-
Consulte os rastros de forma programática para realizar análises mais avançadas:
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}")
Análise qualitativa
-
Analise os traços individuais que representam os modos de falha comuns:
- Examine as entradas que resultaram em saídas de baixa qualidade
- Procure padrões na forma como o aplicativo lidou com esses casos
- Identifique o contexto ausente ou o raciocínio incorreto
-
Compare traços de alta qualidade com traços de baixa qualidade :
- O que difere na forma como seu aplicativo processa essas diferentes entradas?
- Existem tipos específicos de consultas que consistentemente levam a problemas de qualidade?
Criação de um conjunto de dados de avaliação a partir de dados de rastreamento
Depois de identificar os traços representativos, o senhor pode organizá-los em um conjunto de dados de avaliação para testes sistemáticos:
- Exportar traços para o site dataset :
import mlflow
import pandas as pd
# Query traces that represent important test cases
traces_df = mlflow.search_traces(
filter_string="trace.timestamp > '2023-07-01'",
max_results=500,
extract_fields=["span.inputs.messages", "span.outputs.choices"]
)
# Prepare dataset format
eval_data = []
for _, row in traces_df.iterrows():
# Extract user query from messages
messages = row["span.inputs.messages"]
user_query = next((msg["content"] for msg in messages if msg["role"] == "user"), None)
# Extract model response
response = row["span.outputs.choices"][0]["message"]["content"] if row["span.outputs.choices"] else None
if user_query and response:
eval_data.append({"input": user_query, "output": response})
# Create evaluation dataset
eval_df = pd.DataFrame(eval_data)
eval_df.to_csv("evaluation_dataset.csv", index=False)
-
Adicione a verdade básica ou os resultados esperados :
- Para cada rastreamento, adicione a saída correta ou esperada
- Inclua indicadores de qualidade ou aspectos específicos para avaliar
- Considere a possibilidade de utilizar especialistas no domínio para revisar e anotar os dataset
-
Registre o dataset com MLflow :
import mlflow
# Log the evaluation dataset
with mlflow.start_run() as run:
mlflow.log_artifact("evaluation_dataset.csv", "evaluation_datasets")
Implementando melhorias direcionadas
Com os problemas identificados e o conjunto de dados de avaliação em mãos, o senhor pode fazer melhorias direcionadas:
Prompt engenharia
-
Refine as solicitações do sistema para lidar com padrões de falha específicos:
- Adicione diretrizes mais explícitas para lidar com casos extremos
- Inclua exemplos que demonstrem como lidar com entradas problemáticas
- Ajuste o tom ou o estilo para melhor atender às expectativas do usuário
-
Adicione grades de proteção para evitar problemas comuns de qualidade:
- Implemente etapas de validação na lógica do seu aplicativo
- Adicione pós-processamento para verificar as saídas antes de apresentá-las aos usuários
Melhorias na arquitetura de aplicativos
-
Melhore os mecanismos de recuperação se documentos relevantes não estiverem sendo encontrados:
- Examine os intervalos de recuperação em rastreamentos para ver o que está sendo recuperado
- Melhore os modelos de incorporação ou os algoritmos de recuperação
- Considere estratégias de fragmentação se os segmentos do documento estiverem abaixo do ideal
-
Adicione etapas de raciocínio a processos de decisão complexos:
- Dividir tarefas complexas em vários intervalos
- Implemente a cadeia de pensamento ou outras técnicas de raciocínio
- Adicione etapas de verificação para saídas críticas
Medindo melhorias de qualidade
Depois de implementar as mudanças, use o MLflow para medir seu impacto:
- execução de avaliações sistemáticas usando sua curadoria dataset:
import mlflow
from mlflow.evaluators import evaluate
# Compare the original and improved models on your dataset
results = mlflow.evaluate(
data="evaluation_dataset.csv",
model=improved_model, # Your improved model/application
baseline_model=original_model, # The original version for comparison
evaluators=["mlflow_model"],
evaluator_config={
"custom_metrics": [
# Define your quality metrics here
]
}
)
# View the results
print(results.metrics)
- Monitorar os traços de produção após a implantação de melhorias:
- Configurar painéis de controle para acompanhar as métricas de qualidade ao longo do tempo
- Monitore regressões ou comportamentos inesperados
- Colete continuamente novos traços para identificar problemas emergentes
Próximas etapas
Continue sua jornada com estas ações recomendadas e o tutorial.
- Colete feedback do usuário - Adicione feedback estruturado de qualidade aos rastreamentos
- Criar conjunto de dados de avaliação - Criar conjuntos de testes abrangentes a partir de traços de produção
- Configure o monitoramento da produção - Acompanhe as métricas de qualidade em tempo real
Guia de referência
Explore a documentação detalhada dos conceitos e recursos mencionados neste guia.
- Consultar traços via SDK - Aprenda técnicas de análise de traços programáticos
- Conceitos de avaliação - Compreenda os pontuadores, os juízes e a metodologia de avaliação
- Modelo de dados de rastreamento - Explore a estrutura e os atributos do rastreamento
A melhoria da qualidade é um processo iterativo. Comece com seus problemas de qualidade mais críticos, implemente melhorias direcionadas, meça seu impacto e repita.