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 |
||
---|---|---|---|---|
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, |
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 |
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 |
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 campomessages
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 caracteresquery
para a solicitação mais recente e um campo opcionalhistory
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 |
|
|
|
|
---|---|---|---|---|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
✓ |
|
|
✓ |
✓ |
||
|
✓ |
✓ |
||
|
✓ |
✓ |