O que é o Mosaic AI Agent Evaluation?

Prévia

Este recurso está em Prévia pública.

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 o Agent Evaluation 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 site existente Databricks Notebook:

%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."
        }],
      },
      # Primitive string format
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
      "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, o senhor pode importar e executar o seguinte Notebook em seu Databricks workspace:

Mosaic AI Exemplo de avaliação de agente Notebook

Abra o bloco de anotações em outra guia

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.

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

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 de rótulos de verdade permite que a Avaliação de agentes compute métricas adicionais de qualidade.

Desenvolvimento (offline)

agent_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)

agent_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 o aplicativo AI, o Agent Evaluation poderá ser configurado 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 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 recuperação de passo, como no RAG fluxo de trabalho, o senhor poderá, opcionalmente, fornecer documentos de apoio nos quais espera que a resposta se baseie.

Para obter detalhes sobre os conjuntos de avaliação, incluindo dependências de métricas e práticas recomendadas, consulte Conjuntos de avaliação. Para o esquema necessário, consulte Esquema de entrada da 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 ver os resultados. A Avaliação de agentes 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 utilizar cada opção, consulte Como fornecer informações para uma execução de avaliação.

Receber feedback humano sobre a qualidade de um aplicativo GenAI

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

Geo disponibilidade do Assistant recurso

O Mosaic AI Agent Evaluation é 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 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.

Limitação

A Avaliação de agentes não está disponível no espaço de trabalho habilitado para HIPAA.

Informação sobre os modelos que capacitam 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 usam modelos hospedados na UE. Todas as outras regiões usam modelos hospedados nos EUA.

  • Desativar o recurso assistivo do parceiroAI impede que o juiz do LLM chame os modelos do parceiro.

  • Os dados enviados para o juiz LLM não são utilizados 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 treinar, melhorar nem ajustar um LLM.