Juízes de relevância de resposta e contexto
MLflow fornece dois juízes LLM integrados para avaliar a relevância em seus aplicativos GenAI. Esses juízes ajudam a diagnosticar problemas de qualidade: se o contexto não for relevante, a geração do passo não poderá produzir uma resposta útil.
RelevanceToQuery: avalia se a resposta do seu aplicativo aborda diretamente a entrada do usuárioRetrievalRelevance: avalia se cada documento retornado pelo (s) recuperador (es) do seu aplicativo é relevante
Por default, esses juízes usam um LLM hospedado Databricks , projetado para realizar avaliações de qualidade do GenAI. Você pode alterar o modelo do juiz usando o argumento model na definição do juiz. O modelo deve ser especificado no formato <provider>:/<model-name>, onde <provider> é um provedor de modelo compatível com LiteLLM. Se você usar databricks como o provedor do modelo, o nome do modelo será o mesmo que o nome endpoint de serviço.
Pré-requisitos para executar os exemplos
-
Instale o site MLflow e o pacote necessário
Bashpip install --upgrade "mlflow[databricks]>=3.4.0" openai "databricks-connect>=16.1" -
Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.
Uso com mlflow.evaluate()
1. Juiz RelevanceToQuery
Esse pontuador avalia se a resposta do seu aplicativo aborda diretamente a entrada do usuário sem se desviar para tópicos não relacionados.
Requisitos:
- Requisitos de rastreamento :
inputseoutputsdevem estar na extensão raiz do Trace
from mlflow.genai.scorers import RelevanceToQuery
eval_dataset = [
{
"inputs": {"query": "What is the capital of France?"},
"outputs": {
"response": "Paris is the capital of France. It's known for the Eiffel Tower and is a major European city."
},
},
{
"inputs": {"query": "What is the capital of France?"},
"outputs": {
"response": "France is a beautiful country with great wine and cuisine."
},
}
]
# Run evaluation with RelevanceToQuery scorer
eval_results = mlflow.genai.evaluate(
data=eval_dataset,
scorers=[
RelevanceToQuery(
model="databricks:/databricks-gpt-oss-120b", # Optional. Defaults to custom Databricks model.
)
],
)
2. Juiz de Relevância de Recuperação
Esse marcador avalia se cada documento retornado pelo (s) recuperador (es) do seu aplicativo é relevante para a solicitação de entrada.
Requisitos:
- Requisitos do rastreamento : O rastreamento do MLflow deve conter pelo menos um intervalo com
span_typedefinido comoRETRIEVER
import mlflow
from mlflow.genai.scorers import RetrievalRelevance
from mlflow.entities import Document
from typing import List
# Define a retriever function with proper span type
@mlflow.trace(span_type="RETRIEVER")
def retrieve_docs(query: str) -> List[Document]:
# Simulated retrieval - in practice, this would query a vector database
if "capital" in query.lower() and "france" in query.lower():
return [
Document(
id="doc_1",
page_content="Paris is the capital of France.",
metadata={"source": "geography.txt"}
),
Document(
id="doc_2",
page_content="The Eiffel Tower is located in Paris.",
metadata={"source": "landmarks.txt"}
)
]
else:
return [
Document(
id="doc_3",
page_content="Python is a programming language.",
metadata={"source": "tech.txt"}
)
]
# Define your app that uses the retriever
@mlflow.trace
def rag_app(query: str):
docs = retrieve_docs(query)
# In practice, you would pass these docs to an LLM
return {"response": f"Found {len(docs)} relevant documents."}
# Create evaluation dataset
eval_dataset = [
{
"inputs": {"query": "What is the capital of France?"}
},
{
"inputs": {"query": "How do I use Python?"}
}
]
# Run evaluation with RetrievalRelevance scorer
eval_results = mlflow.genai.evaluate(
data=eval_dataset,
predict_fn=rag_app,
scorers=[
RetrievalRelevance(
model="databricks:/databricks-gpt-oss-120b", # Optional. Defaults to custom Databricks model.
)
]
)
Personalização
Você pode personalizar esses juízes fornecendo diferentes modelos de juízes:
from mlflow.genai.scorers import RelevanceToQuery, RetrievalRelevance
# Use different judge models
relevance_judge = RelevanceToQuery(
model="databricks:/databricks-gpt-5-mini" # Or any LiteLLM-compatible model
)
retrieval_judge = RetrievalRelevance(
model="databricks:/databricks-claude-opus-4-1"
)
# Use in evaluation
eval_results = mlflow.genai.evaluate(
data=eval_dataset,
predict_fn=rag_app,
scorers=[relevance_judge, retrieval_judge]
)
Interpretando resultados
O juiz retorna um objeto Feedback com:
value: " sim " se o contexto for relevante, " não " se nãorationale: Explicação do motivo pelo qual o contexto foi considerado relevante ou irrelevante
Próximas etapas
- Explore outros juízes integrados - Saiba mais sobre juízes de aterramento, segurança e correção
- Crie juízes personalizados - Crie juízes especializados para seu caso de uso
- Avalie as inscrições do RAG - Aplique juízes de relevância em uma avaliação abrangente do RAG