Compartilhar via


Esquema de entrada de Avaliação do Agente

Importante

Esse recurso está em uma versão prévia.

Este artigo explica o esquema de entrada exigido pela Avaliação do Agente para avaliar a qualidade, o custo e a latência do aplicativo.

  • Durante o desenvolvimento, a avaliação ocorre offline e um conjunto de avaliação é uma entrada necessária para a Avaliação do agente.
  • Quando um aplicativo está em produção, todas as entradas para a Avaliação do Agente vêm de suas tabelas de inferência ou logs de produção.

O esquema de entrada é idêntico para avaliações online e offline.

Para obter informações gerais sobre conjuntos de avaliação, consulte Conjuntos de avaliação.

Esquema de entrada de avaliação

A tabela a seguir mostra o esquema de entrada da Avaliação do Agente. As duas últimas colunas da tabela referem-se a como a entrada é fornecida para a mlflow.evaluate() chamada. Consulte Como fornecer entrada para uma execução de avaliação para obter detalhes.

Coluna Tipo de dados Descrição Aplicativo passado como argumento de entrada Saídas geradas anteriormente fornecidas
request_id string Identificador exclusivo da solicitação. Opcional Opcional
solicitação Confira Esquema para solicitação. Dados fornecidos para o aplicativo avaliar, como a pergunta ou consulta do usuário. Por exemplo, {'messages': [{"role": "user", "content": "What is RAG"}]} ou "O que é RAG?". Quando request for fornecido como uma cadeia de caracteres, ele será transformado em messages antes de ser passado para o agente. Obrigatório Obrigatório
response string Resposta gerada pelo aplicativo que está sendo avaliado. Gerado pela Avaliação do Agente Opcional. Se não for fornecido, derivada do Rastreamento. response ou trace é necessário.
expected_facts matriz de cadeias de caracteres Uma lista de fatos esperados na saída do modelo. Consulte expected_facts diretrizes. Opcional Opcional
expected_response string Resposta de verdade básica (correta) para a solicitação de entrada. Consulte diretrizes expected_response. Opcional Opcional
expected_retrieved_context matriz Matriz de objetos que contêm o contexto recuperado esperado para a solicitação (se o aplicativo incluir uma etapa de recuperação). Esquema de matriz Opcional Opcional
retrieved_context matriz Resultados de recuperação gerados pelo recuperador no aplicativo que está sendo avaliado. Se o aplicativo tiver múltiplas etapas de recuperação, estes são os resultados de recuperação da última etapa (em ordem cronológica no rastreamento). Esquema de matriz Gerado pela Avaliação do Agente Opcional. Se não for fornecido, derivada do rastreamento fornecido.
rastreamento Cadeia de caracteres JSON do Rastreamento do MLflow MLflow Trace da execução do aplicativo na solicitação correspondente. Gerado pela Avaliação do Agente Opcional. response ou trace é necessário.

expected_facts diretrizes

O expected_facts campo especifica a lista de fatos que devem aparecer em qualquer resposta de modelo correta para a solicitação de entrada específica. Ou seja, uma resposta modelo é considerada correta se contiver esses fatos, independentemente de como a resposta é formulada.

Incluir apenas os fatos necessários e deixar de fora os fatos que não são estritamente exigidos na resposta permite que a Avaliação do Agente forneça um sinal mais robusto sobre a qualidade da saída.

Você pode especificar no máximo um de expected_facts e expected_response. Se você especificar ambos, um erro será relatado. A Databricks recomenda o uso expected_factsdo , pois é uma diretriz mais específica que ajuda a Avaliação do Agente a julgar com mais eficiência a qualidade das respostas geradas.

expected_response diretrizes

O expected_response campo contém uma resposta totalmente formada que representa uma referência para respostas corretas do modelo. Ou seja, uma resposta de modelo é considerada correta se corresponder ao conteúdo da informação em expected_response. Por outro lado, expected_facts lista apenas os fatos que devem aparecer em uma resposta correta e não é uma resposta de referência totalmente formada.

Semelhante a expected_facts, expected_response deve conter apenas o conjunto mínimo de fatos necessários para uma resposta correta. Incluir apenas as informações necessárias e deixar de fora as informações que não são estritamente exigidas na resposta permite que a Avaliação do Agente forneça um sinal mais robusto sobre a qualidade da saída.

Você pode especificar no máximo um de expected_facts e expected_response. Se você especificar ambos, um erro será relatado. A Databricks recomenda o uso expected_factsdo , pois é uma diretriz mais específica que ajuda a Avaliação do Agente a julgar com mais eficiência a qualidade das respostas geradas.

Esquema para solicitação

O esquema de solicitação pode ser um dos seguintes:

  • O esquema de conclusão de chat do OpenAI. O esquema de conclusão de bate-papo OpenAI deve ter uma matriz de objetos como messages parâmetro. O messages campo pode codificar a conversa completa.
  • Se o agente der suporte ao esquema de conclusão de chat do OpenAI, você poderá passar uma string simples. Esse formato dá suporte apenas a conversas de uma única rodada. As strings simples são convertidas para o formato com "role": "user" antes de serem passadas para o messages agente. Por exemplo, uma string "What is MLflow?" simples é convertida antes {"messages": [{"role": "user", "content": "What is MLflow?"}]} de ser passada para o agente.
  • SplitChatMessagesRequest. Um campo de cadeia de caracteres de query para a solicitação mais recente e um campo history opcional que codifica as rodadas anteriores da conversa.

Para aplicativos de chat com várias rodadas, use a segunda ou a terceira opção acima.

O exemplo a seguir mostra todas as três opções na mesma coluna request do conjunto de dados de avaliação:

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Esquema para matrizes na entrada de avaliação

O esquema das matrizes expected_retrieved_context e retrieved_context é mostrado na tabela a seguir:

Coluna Tipo de dados Descrição Aplicativo fornecido como argumento de entrada Saídas geradas anteriormente fornecidas
content string Conteúdo do contexto recuperado. Cadeia de caracteres em qualquer formato, como HTML, texto sem formatação ou Markdown. Opcional Opcional
doc_uri string Identificador exclusivo (URI) do documento pai de onde a parte veio. Obrigatório Obrigatório

Métricas calculadas

As colunas na tabela a seguir indicam os dados incluídos na entrada e indicam que a métrica é suportada quando esses dados são fornecidos.

Para obter detalhes sobre o que essas métricas medem, consulte Como a qualidade, o custo e a latência são avaliados pela Avaliação do agente.

Métricas calculadas request request e expected_response request, expected_response, e expected_retrieved_context request e expected_retrieved_context
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall