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