Compartilhar via


Avaliação do agente de IA Mosaic (MLflow 2)

Importante

O Databricks recomenda o uso do MLflow 3 para avaliar e monitorar aplicativos GenAI. Esta página descreve a Avaliação do Agente do MLflow 2.

Este artigo fornece uma visão geral de como trabalhar com a Avaliação do Agente de IA do Mosaico, com base no MLflow 2.

Como faço para usar a Avaliação do 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 do LLM que fazem parte da Avaliação do Agente. Consulte blocos de anotações de exemplo para um bloco de anotações de início rápido contendo código semelhante que você pode executar em seu workspace do Azure Databricks.

Você pode copiar e colar o seguinte em seu notebook do Azure 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'])

Entradas e saídas da Avaliação do Agente

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 de verdade básica (correta).
  • Rastreamento de MLflow (trace): (opcional) O rastreamento MLflow do agente, do qual a Avaliação do Agente extrai saídas intermediárias, como o contexto recuperado ou as chamadas de ferramenta. Como alternativa, você pode fornecer essas saídas intermediárias diretamente.
  • Diretrizes (guidelines): (Opcional) Uma lista de diretrizes ou diretrizes nomeadas às quais a saída do modelo deve seguir.

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 agente.
    • Os avaliadores do LLM verificam diferentes aspectos da qualidade, como correção ou fundamentação, gerando 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 (MLflow 2).
    • 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 todas as linhas com falha, uma causa raiz é identificada. Cada causa raiz corresponde à avaliação de um juiz de 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 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 do seu agente em todas as linhas de entrada. Isso inclui métricas como 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 do MLflow para qualidade, custo e latência.

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

A Avaliação do Agente foi projetada para ser consistente entre seus ambientes de desenvolvimento (offline) e 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 de agente de alta qualidade.

A principal diferença entre o desenvolvimento e a produção é que, na produção, você não tem rótulos de verdade absoluta, enquanto estiver em desenvolvimento, você pode, opcionalmente, usar rótulos de verdade básica. O uso de rótulos de verdade absoluta permite que a Avaliação do Agente compute métricas de qualidade adicionais.

Desenvolvimento (offline)

No desenvolvimento, sua requests e suas expected_responses são provenientes 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 (MLflow 2).

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

Produção (online)

Para obter informações sobre o monitoramento em produção, consulte Monitor GenAI em produção. Esse recurso do MLflow 3 é compatível com experimentos do MLflow 2. Para habilitar o monitoramento no experimento do MLflow 2, use o SDK do MLflow 3, instalando mlflow>=3.1.

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

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 básica. Se o aplicativo envolver uma etapa de recuperação, como em fluxos de trabalho RAG, você poderá, opcionalmente, fornecer documentos de suporte nos quais você espera que a resposta seja baseada.

Execuções de avaliação

Para obter detalhes sobre como executar uma avaliação, consulte Executar uma avaliação e exibir os resultados (MLflow 2). A Avaliação de Agente dá suporte a duas opções para fornecer a saída da cadeia:

  • Você pode executar o aplicativo como parte da execução de 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 uma explicação de quando usar cada opção, veja Fornecer entradas para uma execução de avaliação.

Obter comentários humanos sobre a qualidade de um aplicativo de IA generativo

O aplicativo de revisão do Databricks facilita a coleta de feedback sobre a qualidade de um aplicativo de IA de revisores humanos. Para obter detalhes, consulte Use o aplicativo de revisão para revisões feitas por humanos de um aplicativo de IA de geração (MLflow 2).

Disponibilidade geográfica da Avaliação do Agente de IA do Mosaic

A Avaliação do Agente de IA do Mosaico é um Serviço Designado que usa o Geos para gerenciar a residência de dados ao processar o conteúdo do cliente. Para saber mais sobre a disponibilidade da Avaliação do Agente em diferentes regiões, consulte Serviços designados do Databricks.

Preços

Para obter mais informações sobre preços, consulte Preços da Avaliação do Agente de IA do Mosaic.

Informações sobre os modelos que alimentam os avaliadores de LLM

  • Os avaliadores LLM podem usar serviços de terceiros para avaliar os aplicativos GenAI, incluindo o Azure OpenAI operado pela Microsoft.
  • Para o Azure OpenAI, a Databricks optou por não usar o Monitoramento de Abuso, portanto, nenhum prompt ou resposta é armazenado com o Azure OpenAI.
  • Para os workspaces da União Europeia (UE), os avaliadores de LLM usam modelos hospedados na Europa. Todas as outras regiões usam modelos hospedados nos EUA.
  • Desabilitar recursos de IA potenciados por parceiros impede o juiz LLM de chamar modelos potencializados por parceiros. Você ainda pode usar juízes LLM fornecendo seu próprio modelo.
  • Os avaliadores de LLM ajudam os clientes a avaliar agentes/aplicativos de IA generativa, e as saídas de avaliador de LLM não devem ser usadas para treinar, melhorar ou ajustar um LLM.

Notebooks de exemplo

Os notebooks a seguir ilustram como usar a Avaliação do Agente de IA do Mosaic.

Notebook de início rápido de Avaliação do Agente de IA do Mosaic

Obter notebook

Notebook de métricas personalizadas, diretrizes e rótulos de especialistas em domínio da Avaliação do Agente

Obter notebook