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. A Avaliação de Agentes ajuda os desenvolvedores a avaliar a qualidade, o custo e a latência de aplicativos de IA agentica, 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 do Agent Evaluation são unificados nas fases de desenvolvimento, preparação e produção do ciclo de vida do MLOps, e todas as métricas e dados de avaliação são registrados no 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 de 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": [
        "What is Spark?",
        "How do I convert a Spark DataFrame to Pandas?",
    ],
    "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.",
    ]
}

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
)

# 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 do Mosaic AI Agent Evaluation

Obter o bloco de notas

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 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.

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 rastreamento 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 de verdade-base permite que a Avaliação de Agentes calcule métricas de qualidade adicionais.

Desenvolvimento (offline)

agent_eval_overview_dev

Em desenvolvimento, o 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, 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 essas saídas 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)

agent_eval_overview_prod

Na produção, todos os insumos para a Avaliação de Agentes vêm de seus logs 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 das tabelas de inferência aprimoradas pelo Agente e atualizar continuamente um painel de monitoramento. Para obter mais detalhes, consulte Como monitorar a qualidade do seu agente no tráfego de produção.

Se você implantar seu agente fora do Azure Databricks, poderá ETL seus logs para o esquema de entrada necessário e, da mesma forma, configurar um painel de monitoramento.

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.

Para obter detalhes sobre conjuntos de avaliação, incluindo dependências métricas e práticas recomendadas, consulte Conjuntos de avaliação. Para obter o esquema necessário, consulte Esquema de entrada de avaliação do agente.

Execuções de avaliação

Para obter detalhes sobre como executar uma avaliação, consulte Como executar uma avaliação e visualizar 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 Como fornecer entrada para uma execução de avaliação.

Obtenha feedback humano sobre a qualidade de um aplicativo GenAI

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 Obter feedback sobre a qualidade de um aplicativo agentic.

Disponibilidade geográfica dos recursos do Assistente

O Mosaic AI Agent Evaluation é um serviço designado que usa Geos para gerenciar a residência de dados ao processar conteúdo do cliente. 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.

Limitação

A Avaliação do Agente não está disponível em espaços de trabalho habilitados para HIPAA.

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 alimentados por IA do Azure impede que o juiz LLM chame modelos com tecnologia de IA do Azure.
  • Os dados enviados ao juiz LLM não são usados para nenhum modelo de treinamento.
  • 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.