Pular para o conteúdo principal

O que é o Mosaic AI Agent Evaluation?

info

Visualização

Esse recurso está em Public Preview.

Este artigo apresenta uma visão geral de como trabalhar com o Mosaic AI Agent Evaluation. O Agent Evaluation ajuda os desenvolvedores a avaliar a qualidade, o custo e a latência dos aplicativos AI agênticos, incluindo aplicativos e cadeias RAG. A avaliação do agente foi projetada para identificar problemas de qualidade e determinar a causa raiz desses problemas. Os recursos da Avaliação de agentes são unificados nas fases de desenvolvimento, preparação e produção do ciclo de vida do site MLOps, e todas as métricas e dados de avaliação são registrados no site MLflow execução.

O Agent Evaluation integra técnicas de avaliação avançadas e baseadas em pesquisas em um SDK e uma interface de usuário fáceis de usar, integrados ao lakehouse, ao MLflow e a outros componentes da Databricks Data Intelligence Platform. Desenvolvida em colaboração com a Mosaic AI research, essa tecnologia proprietária oferece uma abordagem abrangente para analisar e melhorar o desempenho dos agentes.

Diagrama LLMops mostrando a avaliação

Os aplicativos Agentic AI são complexos e envolvem muitos componentes diferentes. A avaliação do desempenho desses aplicativos não é tão simples quanto a avaliação do desempenho dos modelos tradicionais de ML. As métricas qualitativas e quantitativas usadas para avaliar a qualidade são inerentemente mais complexas. A avaliação do agente inclui juízes proprietários LLM do e métricas de agente para avaliar a qualidade da recuperação e da solicitação, bem como métricas gerais de desempenho, como latência e custo de tokens.

Como faço para usar a Avaliação de Agentes?

O código a seguir mostra como chamar e testar a Avaliação do Agente em saídas geradas anteriormente. Ele retorna um dataframe com pontuações de avaliação calculadas pelos juízes do LLM que fazem parte da Avaliação do Agente.

O senhor pode copiar e colar o seguinte em seu Databricks Notebook existente:

Python
%pip install mlflow databricks-agents
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}

result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

Como alternativa, o senhor pode importar e executar o seguinte Notebook em seu Databricks workspace:

Mosaic AI Exemplo de notebook de avaliação de agente

Open notebook in new tab

Entradas e saídas de avaliação de agentes

O diagrama a seguir mostra uma visão geral das entradas aceitas pela Avaliação do Agente e das saídas correspondentes produzidas pela Avaliação do Agente.

agente\ _eval\ _data\ _flows

Entradas

Para obter detalhes sobre a entrada esperada para a avaliação do agente, incluindo nomes de campo e tipos de dados, consulte o esquema de entrada. Alguns dos campos são os seguintes:

  • Consulta do usuário (request): entrada para o agente (pergunta ou consulta do usuário). Por exemplo, “O que é RAG?”
  • Resposta do agente (response): Resposta gerada pelo agente. Por exemplo, “A geração aumentada de recuperação é...”.
  • Resposta esperada (expected_response): (Opcional) Uma resposta verdadeira (correta).
  • Rastreamento de MLflow (trace): (Opcional) O rastreamento de MLflow do agente, do qual a Avaliação de agentes extrai resultados intermediários, como o contexto recuperado ou chamadas de ferramentas. Como alternativa, você pode fornecer essas saídas intermediárias diretamente.
  • Diretrizes (guidelines): (Opcional) Uma lista de diretrizes ou diretrizes nomeadas que se espera que a saída do modelo siga.

Saídas

Com base nessas entradas, a Avaliação do Agente produz dois tipos de saídas:

  1. Resultados da avaliação (por linha): para cada linha fornecida como entrada, a Avaliação do Agente produz uma linha de saída correspondente que contém uma avaliação detalhada da qualidade, do custo e da latência do seu agente.

    • Os juízes do LLM verificam diferentes aspectos da qualidade, como correção ou fundamentação, emitindo uma pontuação de sim/não e uma justificativa por escrito para essa pontuação. Para obter detalhes, consulte Como a qualidade, o custo e a latência são avaliados pela avaliação do agente.

    • As avaliações dos juízes do LLM são combinadas para produzir uma pontuação geral que indica se a linha "passa" (é de alta qualidade) ou "falha" (tem um problema de qualidade).

      • Para qualquer linha com falha, uma causa raiz é identificada. Cada causa raiz corresponde a uma avaliação específica de um juiz do LLM, permitindo que o senhor use a lógica do juiz para identificar possíveis correções.
    • O custo e a latência são extraídos do rastreamento do MLflow. Para obter detalhes, consulte Como o custo e a latência são avaliados.

  2. métricas (pontuações agregadas): Pontuações agregadas que resumem a qualidade, o custo e a latência de seu agente em todas as linhas de entrada. Isso inclui métricas como a porcentagem de respostas corretas, a contagem média de tokens, a latência média e muito mais. Para obter detalhes, consulte Como o custo e a latência são avaliados e Como as métricas são agregadas no nível de uma execução do MLflow para qualidade, custo e latência.

Desenvolvimento (avaliação off-line) e produção (monitoramento on-line)

A avaliação de agentes foi projetada para ser consistente entre seus ambientes de desenvolvimento (offline) e de produção (on-line). Esse design possibilita uma transição suave do desenvolvimento para a produção, permitindo que o senhor itere, avalie, implante e monitore rapidamente aplicativos agênticos de alta qualidade.

A principal diferença entre o desenvolvimento e a produção é que, na produção, o senhor não tem o rótulo ground-truth, enquanto no desenvolvimento, opcionalmente, pode usar o rótulo ground-truth. O uso do rótulo ground-truth permite que o Agent Evaluation compute métricas adicionais de qualidade.

Desenvolvimento (offline)

agente\ _eval\ _overview\ _dev

Em desenvolvimento, seu requests e expected_responses vêm de um conjunto de avaliação . Um conjunto de avaliação é uma coleção de entradas representativas que seu agente deve ser capaz de lidar com precisão. Para obter mais informações sobre conjuntos de avaliação, consulte Conjuntos de avaliação.

Para obter response e trace, o Agent Evaluation pode chamar o código do seu agente para gerar essas saídas para cada linha no conjunto de avaliação. Como alternativa, você mesmo pode gerar essas saídas e passá-las para a Avaliação do Agente. Para obter mais informações, consulte Como fornecer informações para uma execução de avaliação.

Produção (online)

agente\ _eval\ _overview\ _prod

Na produção, todas as entradas para a Avaliação de agentes vêm dos logs de produção.

Se o senhor usar o Mosaic AI Agent Framework para implantar seu aplicativo AI, o Agent Evaluation poderá ser configurado para coletar automaticamente essas entradas dos agentes implantados pelo Monitor e atualizar continuamente uma tabela de monitoramento. Para obter mais detalhes, consulte Como monitorar seu aplicativo gen AI.

Se o agente for implantado fora do Databricks, o usuário poderá fazer ETL dos logs para o esquema de entrada necessário e configurar um painel de monitoramento de forma semelhante.

Estabeleça uma referência de qualidade com um conjunto de avaliação

Para medir a qualidade de um aplicativo AI em desenvolvimento (off-line), o senhor precisa definir um conjunto de avaliação, ou seja, um conjunto de perguntas representativas e respostas opcionais de verdade. Se a solicitação envolver uma etapa de recuperação, como no RAG fluxo de trabalho, o senhor poderá, opcionalmente, fornecer documentos de apoio nos quais espera que a resposta se baseie.

Avaliação execução

Para obter detalhes sobre como executar uma avaliação, consulte executar uma avaliação e view os resultados. A avaliação do agente oferece suporte a duas opções para fornecer saída da cadeia:

  • O senhor pode executar o aplicativo como parte da execução da avaliação. O aplicativo gera resultados para cada entrada no conjunto de avaliação.
  • Você pode fornecer a saída de uma execução anterior do aplicativo.

Para obter detalhes e explicações sobre quando usar cada opção, consulte Fornecer entradas para uma execução de avaliação.

Obtenha feedback humano sobre a qualidade de um aplicativo generativo AI

O aplicativo de avaliação Databricks facilita a obtenção de feedback sobre a qualidade de um aplicativo AI de avaliadores humanos. Para obter detalhes, consulte Usar o aplicativo de avaliação para avaliações humanas de um aplicativo gen AI.

Geo disponibilidade do site Agent Evaluation Mosaic AI

Mosaic AI O Agent Evaluation é um serviço designado que usa o site Geos para gerenciar a residência de dados ao processar o conteúdo do cliente. Para saber mais sobre a disponibilidade do Agent Evaluation em diferentes áreas geográficas, consulte Databricks Designated service.

preços

Para obter informações sobre preços, consulte Mosaic AI Agent Evaluation preços.

informações sobre os modelos que alimentam os juízes do LLM

  • Os juízes do LLM podem utilizar serviços de terceiros para avaliar suas aplicações GenAI, incluindo o Azure OpenAI operado pela Microsoft.
  • Para o Azure OpenAI, a Databricks optou por não utilizar o Abuse Monitoring, portanto nenhum prompt ou resposta é armazenado com o Azure OpenAI.
  • Para os espaços de trabalho da União Europeia (UE), os juízes do LLM utilizam modelos hospedados na UE. Todas as outras regiões utilizam modelos hospedados nos EUA.
  • AI A desativação do recurso assistido por parceiros impede que o LLM juiz do chame os modelos alimentados por parceiros.
  • Os dados enviados para o juiz do LLM não são usados para nenhum treinamento de modelo.
  • Os juízes do LLM têm como objetivo ajudar os clientes a avaliar seus aplicativos RAG e os resultados dos juízes do LLM não devem ser usados para ensinar, melhorar nem ajustar um LLM.