Arnês de avaliação
O conjunto de avaliação serve como uma estrutura de teste para aplicativos GenAI. Em vez de executar manualmente seu aplicativo e verificar as saídas uma por uma, o harness fornece uma maneira estruturada de alimentar dados de teste, executar seu aplicativo e pontuar os resultados automaticamente. Isso facilita a comparação de versões, o acompanhamento de melhorias e o compartilhamento de resultados entre as equipes.
Com o MLflow, o conjunto de avaliação conecta testes offline com monitoramento de produção. Isso significa que a mesma lógica de avaliação que você usa no desenvolvimento também pode ser executada na produção, dando a você uma view consistente da qualidade em todo o ciclo de vida AI .
A função mlflow.genai.evaluate() testa sistematicamente a qualidade do aplicativo GenAI executando-o em dados de teste (conjunto de dados de avaliação e aplicando pontuadores).
Se você é novo em avaliação, comece com o tutorial: Avaliar e melhorar um aplicativo GenAI.
Quando usar
- Verificações noturnas ou semanais do seu aplicativo em relação a um conjunto de dados de avaliação selecionados
 - Validando alterações de prompt ou modelo entre versões de aplicativos
 - Antes de um lançamento ou PR para evitar regressões de qualidade
 
Process fluxo de trabalho
O conjunto de avaliação faz o seguinte:
- execute seu aplicativo em entradas de teste, capturando rastros.
 - Aplica pontuadores para avaliar a qualidade, criando feedback.
 - Armazena os resultados em uma execução de Avaliação.
 
Referência rápida
Para obter detalhes da API, consulte Parâmetros para mlflow.genai.evaluate() ou a documentação do MLflow.
A função mlflow.genai.evaluate() executa seu aplicativo GenAI em um dataset de avaliação usando pontuadores especificados e, opcionalmente, uma função de previsão ou ID de modelo, retornando um EvaluationResult.
def mlflow.genai.evaluate(
    data: Union[pd.DataFrame, List[Dict], mlflow.genai.datasets.EvaluationDataset],  # Test data.
    scorers: list[mlflow.genai.scorers.Scorer],  # Quality metrics, built-in or custom.
    predict_fn: Optional[Callable[..., Any]] = None,  # App wrapper. Used for direct evaluation only.
    model_id: Optional[str] = None,  # Optional version tracking.
) -> mlflow.models.evaluation.base.EvaluationResult:
Pré-requisitos
- 
Instale o site MLflow e o pacote necessário.
Bashpip install --upgrade "mlflow[databricks]>=3.1.0" openai "databricks-connect>=16.1" - 
Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.
 
(Opcional) Configurar paralelização
Por default MLflow usa o threadpool em segundo plano para acelerar o processo de avaliação. Para configurar o número de trabalhadores, defina a variável de ambiente MLFLOW_GENAI_EVAL_MAX_WORKERS.
export MLFLOW_GENAI_EVAL_MAX_WORKERS=10
Modos de avaliação
Há dois modos de avaliação:
- Avaliação direta (recomendado). O MLflow chama seu aplicativo diretamente para gerar rastros para avaliação.
 - Avaliação da folha de respostas. O cliente fornece resultados pré-calculados ou traços existentes para avaliação.
 
Avaliação direta (recomendada)
O MLflow chama seu aplicativo GenAI diretamente para gerar e avaliar rastros. Você pode passar o ponto de entrada do seu aplicativo encapsulado em uma função Python (predict_fn) ou, se seu aplicativo for usado como um endpoint Databricks servindo modelo, passe esse endpoint encapsulado em to_predict_fn.
Ao chamar seu aplicativo diretamente, esse modo permite que o senhor reutilize os avaliadores definidos para a avaliação off-line no monitoramento da produção, pois os traços resultantes serão idênticos.
Conforme mostrado no diagrama, os dados, seu aplicativo e os pontuadores selecionados são fornecidos como entradas para mlflow.genai.evaluate(), que executa o aplicativo e os pontuadores em paralelo e registra a saída como rastros e feedback.

Formatos de dados para avaliação direta
Para obter detalhes sobre o esquema, consulte a referência dataset de avaliação.
campo  | Tipo de dados  | Obrigatório  | Descrição  | 
|---|---|---|---|
  | 
  | Sim  | Dicionário passado para o seu   | 
  | 
  | Não  | Verdade básica opcional para marcadores  | 
Exemplo usando avaliação direta
O código a seguir mostra um exemplo de como executar a avaliação:
import mlflow
from mlflow.genai.scorers import RelevanceToQuery, Safety
# Your GenAI app with MLflow tracing
@mlflow.trace
def my_chatbot_app(question: str) -> dict:
    # Your app logic here
    if "MLflow" in question:
        response = "MLflow is an open-source platform for managing ML and GenAI workflows."
    else:
        response = "I can help you with MLflow questions."
    return {"response": response}
# Evaluate your app
results = mlflow.genai.evaluate(
    data=[
        {"inputs": {"question": "What is MLflow?"}},
        {"inputs": {"question": "How do I get started?"}}
    ],
    predict_fn=my_chatbot_app,
    scorers=[RelevanceToQuery(), Safety()]
)
Em seguida, é possível acessar os resultados na interface do usuário em “ view ” (Exportar resultados).

Avaliação da folha de respostas
Use este modo quando você não puder - ou não quiser - executar seu aplicativo GenAI diretamente durante a avaliação. Por exemplo, você já tem saídas (por exemplo, de sistemas externos, rastros históricos ou trabalho em lote) e deseja apenas pontuá-las. Você fornece as entradas e as saídas, e os pontuadores de execução e logs de execução de avaliação.
Se o senhor usar uma folha de respostas com traços diferentes dos do seu ambiente de produção, talvez seja necessário reescrever as funções do avaliador para usá-las no monitoramento da produção.
Conforme mostrado no diagrama, você fornece dados de avaliação e pontuadores selecionados como entradas para mlflow.genai.evaluate(). Os dados de avaliação podem consistir em rastros existentes ou em entradas e saídas pré-computadas. Se entradas e saídas de pré-cálculo forem fornecidas, mlflow.genai.evaluate() constrói rastros a partir das entradas e saídas. Para ambas as opções de entrada, mlflow.genai.evaluate() executa os marcadores nos traços e gera feedback dos marcadores.

Formatos de dados para avaliação da folha de respostas
Para obter detalhes sobre o esquema, consulte a referência dataset de avaliação.
Se entradas e saídas forem fornecidas
campo  | Tipo de dados  | Obrigatório  | Descrição  | 
|---|---|---|---|
  | 
  | Sim  | Entradas originais para seu aplicativo GenAI  | 
  | 
  | Sim  | Pré-computar os resultados de seu aplicativo  | 
  | 
  | Não  | Verdade básica opcional para marcadores  | 
Se forem fornecidos vestígios existentes
campo  | Tipo de dados  | Obrigatório  | Descrição  | 
|---|---|---|---|
  | 
  | Sim  | Objetos de rastreamento do MLflow com entradas/saídas  | 
  | 
  | Não  | Verdade básica opcional para marcadores  | 
Exemplo de uso de entradas e saídas
O código a seguir mostra um exemplo de como executar a avaliação:
import mlflow
from mlflow.genai.scorers import Safety, RelevanceToQuery
# Pre-computed results from your GenAI app
results_data = [
    {
        "inputs": {"question": "What is MLflow?"},
        "outputs": {"response": "MLflow is an open-source platform for managing machine learning workflows, including tracking experiments, packaging code, and deploying models."},
    },
    {
        "inputs": {"question": "How do I get started?"},
        "outputs": {"response": "To get started with MLflow, install it using 'pip install mlflow' and then run 'mlflow ui' to launch the web interface."},
    }
]
# Evaluate pre-computed outputs
evaluation = mlflow.genai.evaluate(
    data=results_data,
    scorers=[Safety(), RelevanceToQuery()]
)
Em seguida, é possível acessar os resultados na interface do usuário em “ view ” (Exportar resultados).

Exemplo de uso de traços existentes
O código a seguir demonstra como executar a avaliação utilizando traços existentes:
import mlflow
# Retrieve traces from production
traces = mlflow.search_traces(
    filter_string="trace.status = 'OK'",
)
# Evaluate problematic traces
evaluation = mlflow.genai.evaluate(
    data=traces,
    scorers=[Safety(), RelevanceToQuery()]
)
 Parâmetros para mlflow.genai.evaluate()
Esta seção descreve cada um dos parâmetros usados por mlflow.genai.evaluate().
def mlflow.genai.evaluate(
    data: Union[pd.DataFrame, List[Dict], mlflow.genai.datasets.EvaluationDataset],  # Test data.
    scorers: list[mlflow.genai.scorers.Scorer],  # Quality metrics, built-in or custom.
    predict_fn: Optional[Callable[..., Any]] = None,  # App wrapper. Used for direct evaluation only.
    model_id: Optional[str] = None,  # Optional version tracking.
) -> mlflow.models.evaluation.base.EvaluationResult:
data
A avaliação dataset deve estar em um dos seguintes formatos:
EvaluationDataset(recomendado).- Lista de dicionários, Pandas DataFrame ou Spark DataFrame.
 
Se o argumento de dados for fornecido como um DataFrame ou lista de dicionários, ele deverá seguir o esquema a seguir. Isso é consistente com o esquema usado pelo EvaluationDataset. Databricks Recomenda-se utilizar um EvaluationDataset, pois ele impõe a validação do esquema, além de acompanhar a linhagem de cada registro.
campo  | Tipo de dados  | Descrição  | Uso com avaliação direta  | Use com folha de respostas  | 
|---|---|---|---|---|
  | 
  | Um   | Obrigatório  | 
  | 
  | 
  | Um   | Não deve ser fornecido, gerado pelo MLflow a partir do Trace.  | 
  | 
  | 
  | Um   | Opcional  | Opcional  | 
  | 
  | O objeto de rastreamento da solicitação. Se o   | Não deve ser fornecido, gerado pelo MLflow a partir do Trace.  | 
  | 
scorers
Lista de métricas de qualidade a serem aplicadas. Você pode fornecer:
Consulte Marcadores para obter mais detalhes.
predict_fn
O ponto de entrada do aplicativo GenAI. Esse parâmetro só é usado com avaliação direta. predict_fn deve atender aos seguintes requisitos:
- Aceite a chave do dicionário 
inputsemdatacomo argumentos de palavra-chave. - Retorna um dicionário serializável em JSON.
 - Seja equipado com o MLflow Tracing.
 - Emita exatamente um rastreamento por chamada.
 
model_id
Identificador de modelo opcional para vincular os resultados à versão do seu aplicativo (por exemplo, "models:/my-app/1"). Consulte a versão acompanhamento para obter mais detalhes.
Próximos passos
- Avalie seu aplicativo - Guia passo a passo para realizar sua primeira avaliação.
 - logs Criar um conjunto de dados de avaliação - Crie dados de teste estruturados a partir de dados de produção ou do zero.
 - Defina avaliadores personalizados - Crie métricas adaptadas ao seu caso específico.