Pular para o conteúdo principal

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 :

Python
%pip install arize-phoenix-evals

Comece rápido

Para ligar diretamente para um marcador de pontos do Phoenix:

Python
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():

Python
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?

Hallucination

O resultado contém informações fabricadas e ausentes do contexto?

Relevance

O contexto obtido é relevante para a consulta de entrada?

Toxicity

O produto contém substâncias tóxicas ou nocivas?

QA

A resposta está correta em relação ao material de referência?

Summarization

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:

Python
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."},
)