Partilhar via


O que é o Mosaic AI Agent Evaluation?

Importante

Esta funcionalidade está em Pré-visualização Pública.

Este artigo fornece uma visão geral de como trabalhar com o Mosaic AI Agent Evaluation. Avaliação de Agentes ajuda os desenvolvedores a avaliar a qualidade, o custo e a latência de aplicações de inteligência artificial agêntica, incluindo aplicações e processos RAG. A Avaliação do Agente foi projetada para identificar problemas de qualidade e determinar a causa raiz desses problemas. As capacidades do Agent Evaluation são unificadas nas fases de desenvolvimento, testes e produção do ciclo de vida do MLOps, e todas as métricas e dados de avaliação são registados nos MLflow Runs.

O Agent Evaluation integra técnicas avançadas de avaliação apoiadas por pesquisa em um SDK e UI fáceis de usar, integrados com seu lakehouse, MLflow e outros componentes da Databricks Data Intelligence Platform. Desenvolvida em colaboração com a pesquisa de IA da Mosaic, esta tecnologia proprietária oferece uma abordagem abrangente para analisar e melhorar o desempenho dos agentes.

Diagrama LLMOps mostrando avaliação

As aplicações de IA agentic são complexas e envolvem muitos componentes diferentes. Avaliar o desempenho desses aplicativos não é tão simples quanto avaliar o desempenho dos modelos tradicionais de ML. As métricas qualitativas e quantitativas que são usadas para avaliar a qualidade são inerentemente mais complexas. A Avaliação de Agentes inclui juízes LLM proprietários 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 por token.

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

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 por juízes LLM que fazem parte da Avaliação de Agente.

Você pode copiar e colar o seguinte em seu bloco de anotações Databricks existente:

%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, você pode importar e executar o seguinte bloco de anotações em seu espaço de trabalho Databricks:

Caderno de exemplo da Avaliação de Agentes da Mosaic AI

Obter caderno

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 as saídas correspondentes produzidas pela Avaliação do Agente.

agent_eval_data_flows

Entradas

Para obter detalhes da 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 de verdade (correta).
  • MLflow trace (trace): (Opcional) O rastreamento do MLflow do agente, do qual a Avaliação do Agente extrai saídas intermediárias, como o contexto recuperado ou chamadas de ferramenta. 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 respeite.

Saídas

Com base nessas entradas, a Avaliação de Agentes 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, custo e latência do seu agente.
    • Os juízes do LLM verificam diferentes aspetos da qualidade, como correção ou fundamentação, emissão de uma pontuação sim/não e justificativa escrita 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 LLM são combinadas para produzir uma pontuação geral que indica se essa linha "passa" (é de alta qualidade) ou "falha" (tem um problema de qualidade).
      • Para quaisquer linhas com falha, uma causa raiz é identificada. Cada causa raiz corresponde à avaliação de um juiz LLM específico, permitindo que você use a lógica do juiz para identificar possíveis correções.
    • O custo e a latência são extraídos do traço 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 do seu agente em todas as linhas de entrada. Isso inclui métricas como a porcentagem de respostas corretas, contagem média de tokens, 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 de MLflow para qualidade, custo e latência.

Desenvolvimento (avaliação offline) e produção (monitorização online)

A Avaliação de Agentes foi projetada para ser consistente entre seus ambientes de desenvolvimento (offline) e de produção (online). Esse design permite uma transição suave do desenvolvimento para a produção, permitindo que você itere, avalie, implante e monitore rapidamente aplicativos agenticos de alta qualidade.

A principal diferença entre desenvolvimento e produção é que, na produção, você não tem rótulos de verdade-base, enquanto no desenvolvimento, você pode, opcionalmente, usar rótulos de verdade-base. O uso de rótulos verdadeiros permite que a Avaliação de Agentes possa calcular métricas de qualidade adicionais.

Desenvolvimento (offline)

agent_eval_overview_dev

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

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

Produção (online)

agent_eval_overview_prod

Na produção, todos os dados para a Avaliação de Agentes vêm dos seus registos de produção.

Se você usar o Mosaic AI Agent Framework para implantar seu aplicativo de IA, a Avaliação do Agente poderá ser configurada para coletar automaticamente essas entradas dos agentes implantados do Monitor e atualizar continuamente uma tabela de monitoramento. Para obter mais detalhes, consulte Como monitorar seu aplicativo de IA de geração.

Se implantar o seu agente fora do Azure Databricks, pode fazer ETL aos seus registos para o esquema de entrada necessário e configurar um painel de monitorização de forma semelhante.

Estabelecer um referencial de qualidade com um conjunto de avaliações

Para medir a qualidade de um aplicativo de IA em desenvolvimento (offline), você precisa definir um conjunto de avaliação, ou seja, um conjunto de perguntas representativas e respostas opcionais de verdade-base. Se o aplicativo envolver uma etapa de recuperação, como em fluxos de trabalho RAG, você pode, opcionalmente, fornecer documentos de suporte nos quais espera que a resposta se baseie.

Testes de avaliação

Para obter detalhes sobre como executar uma avaliação, consulte Executar uma avaliação e exibir os resultados. A Avaliação do Agente suporta duas opções para fornecer saída da cadeia:

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

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

Obter feedback humano sobre a qualidade de uma aplicação de IA generativa

O aplicativo de revisão Databricks facilita a coleta de feedback sobre a qualidade de um aplicativo de IA de revisores humanos. Para obter detalhes, consulte Usar o aplicativo de revisão para avaliações humanas de um aplicativo de IA de geração.

Disponibilidade Geográfica da Avaliação do Agente Mosaic AI

O Mosaic AI Agent Evaluation é um Serviço Designado que usa Geos para gerir a residência de dados ao processar conteúdos dos clientes. Para saber mais sobre a disponibilidade da Avaliação do Agente em diferentes áreas geográficas, consulte Serviços designados do Databricks.

Preços

Para obter informações sobre preços, consulte Preços de avaliação do Mosaic AI Agent.

Informações sobre os modelos que capacitam os juízes LLM

  • Os juízes LLM podem usar serviços de terceiros para avaliar seus aplicativos GenAI, incluindo o Azure OpenAI operado pela Microsoft.
  • Para o Azure OpenAI, o Databricks optou por não participar do Monitoramento de Abuso, portanto, nenhum prompt ou resposta é armazenado com o Azure OpenAI.
  • Para os espaços de trabalho da União Europeia (UE), os juízes LLM utilizam modelos alojados na UE. Todas as outras regiões usam modelos hospedados nos EUA.
  • A desativação dos recursos de assistência de IA do Azure impede que o LLM judge acione modelos alimentados por IA do Azure.
  • Os dados enviados ao juiz LLM não são usados para nenhum treino de modelos.
  • Os juízes LLM destinam-se a ajudar os clientes a avaliar seus aplicativos RAG, e os resultados dos juízes LLM não devem ser usados para treinar, melhorar ou ajustar um LLM.