Marcadores do Arize Phoenix
O Arize Phoenix é uma estrutura de observabilidade e avaliação de LLM de código aberto da Arize AI. MLflow integra-se com o Phoenix para que você possa usar os avaliadores do Phoenix como pontuadores para tarefas que incluem detecção de alucinações, avaliação de relevância e identificação de toxicidade.
Requisitos
Instale o pacote arize-phoenix-evals :
%pip install arize-phoenix-evals
Comece rápido
Para ligar diretamente para um marcador de pontos do Phoenix:
from mlflow.genai.scorers.phoenix import Hallucination
scorer = Hallucination(model="databricks:/databricks-gpt-5-mini")
feedback = scorer(
inputs="What is the capital of France?",
outputs="Paris is the capital of France.",
expectations={"context": "France is a country in Europe. Its capital is Paris."},
)
print(feedback.value) # "factual" or "hallucinated"
print(feedback.metadata["score"]) # Numeric score
Para chamar os avaliadores Phoenix usando mlflow.genai.evaluate():
import mlflow
from mlflow.genai.scorers.phoenix import Hallucination, Relevance
eval_dataset = [
{
"inputs": {"query": "What is MLflow?"},
"outputs": "MLflow is an open-source AI engineering platform for agents and LLMs.",
"expectations": {
"context": "MLflow is an ML platform for experiment tracking and model deployment."
},
},
{
"inputs": {"query": "How do I track experiments?"},
"outputs": "You can use mlflow.start_run() to begin tracking experiments.",
"expectations": {
"context": "MLflow provides APIs like mlflow.start_run() for experiment tracking."
},
},
]
results = mlflow.genai.evaluate(
data=eval_dataset,
scorers=[
Hallucination(model="databricks:/databricks-gpt-5-mini"),
Relevance(model="databricks:/databricks-gpt-5-mini"),
],
)
Marcadores Phoenix disponíveis
Marcador | O que avalia? |
|---|---|
O resultado contém informações fabricadas e ausentes do contexto? | |
O contexto obtido é relevante para a consulta de entrada? | |
O produto contém substâncias tóxicas ou nocivas? | |
A resposta está correta em relação ao material de referência? | |
O resumo está correto e completo? |
Criar um marcador por nome
Você pode criar um marcador dinamicamente usando get_scorer passando o nome dos métricas como uma string:
from mlflow.genai.scorers.phoenix import get_scorer
scorer = get_scorer(
metric_name="Hallucination",
model="databricks:/databricks-gpt-5-mini",
)
feedback = scorer(
inputs="What is MLflow?",
outputs="MLflow is a platform for ML workflows.",
expectations={"context": "MLflow is an ML platform."},
)