Esquema de entrada de avaliação do agente

Prévia

Esse recurso está em Pré-lançamento público.

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

  • Durante o desenvolvimento, a avaliação ocorre off-line 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 de agentes vêm das tabelas de inferência ou dos logs de produção.

O esquema de entrada é idêntico para avaliações on-line e off-line.

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 se referem à forma como a entrada é fornecida para a chamada mlflow.evaluate(). Para obter detalhes, consulte Como fornecer informações para uma execução de avaliação.

Coluna

Tipo de dados

Descrição

Aplicativo passado como argumento de entrada

Saídas geradas fornecidas anteriormente

request_id

string

Identificador único da solicitação.

Opcional

Opcional

solicitação

Consulte Esquema para solicitação.

Entrada para o aplicativo para avaliar a pergunta ou consulta do usuário. Por exemplo, {'messages': [{"role": "user", "content": "What is RAG"}]} ou “O que é RAG?”. Quando request é fornecido como uma cadeia de caracteres, ele será transformado em messages antes de ser transmitido ao seu agente.

Obrigatório

Obrigatório

resposta

string

Resposta gerada pelo aplicativo que está sendo avaliado.

Gerado pela avaliação do agente

Opcional. Se não for fornecido, será derivado do Trace. É necessário response ou trace.

fatos esperados

matriz de cadeias de caracteres

Uma lista de fatos que são esperados na saída do modelo. Consulte as diretrizes de expected_facts.

Opcional

Opcional

expected_response

string

Resposta verdadeira (correta) para a solicitação de entrada. Consulte as diretrizes de 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 um passo 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 houver vários passos de recuperação no aplicativo, este será o resultado da recuperação do último passo (cronologicamente no rastreamento). Esquema de matriz

Gerado pela avaliação do agente

Opcional. Se não for fornecido, será derivado do rastreamento fornecido.

trace

Cadeia de caracteres JSON do MLflow Trace

MLflow Trace da execução do aplicativo na solicitação correspondente.

Gerado pela avaliação do agente

Opcional. É necessário response ou trace.

expected_facts diretrizes

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

Incluir apenas os fatos necessários e omitir 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 uma das opções expected_facts e expected_response. Se você especificar ambos, um erro será relatado. A Databricks recomenda o uso do site expected_facts, pois é uma diretriz mais específica que ajuda o Agent Evaluation a julgar com mais eficiência a qualidade das respostas geradas.

expected_response diretrizes

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

Assim como expected_facts, expected_response deve conter somente 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 necessárias na resposta permite que a Avaliação de agentes forneça um sinal mais robusto sobre a qualidade do resultado.

Você pode especificar no máximo uma das opções expected_facts e expected_response. Se você especificar ambos, um erro será relatado. A Databricks recomenda o uso do site expected_facts, pois é uma diretriz mais específica que ajuda o Agent Evaluation 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 bate-papo do OpenAI. O esquema de conclusão de bate-papo do OpenAI deve ter uma matriz de objetos como parâmetro messages. O campo messages pode codificar a conversa completa.

  • Se o agente for compatível com o esquema de conclusão de bate-papo da OpenAI, o senhor poderá passar uma cadeia de caracteres simples. Esse formato suporta apenas conversas em um único turno. O site strings simples é convertido para o formato messages com "role": "user" antes de ser transmitido ao seu agente. Por exemplo, uma cadeia de caracteres simples "What is MLflow?" é convertida em {"messages": [{"role": "user", "content": "What is MLflow?"}]} antes de ser transmitida ao seu agente.

  • SplitChatMessagesRequest. Um campo de cadeias de caracteres query para a solicitação mais recente e um campo opcional history que codifica os turnos anteriores da conversa.

Para aplicativos de bate-papo com várias voltas, use a segunda ou terceira opção acima.

O exemplo a seguir mostra todas as três opções na mesma coluna request da avaliação dataset:

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 é apresentado na tabela a seguir:

Coluna

Tipo de dados

Descrição

Aplicativo passado como argumento de entrada

Saídas geradas fornecidas anteriormente

conteúdo

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 veio a parte.

Obrigatório

Obrigatório

computar métricas

As colunas da tabela a seguir indicam os dados incluídos na entrada e indica que as métricas são compatíveis 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 de agentes.

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