Depois de desenvolver um agente, pode usar o serviço de avaliação de IA gen para avaliar a capacidade do agente de concluir tarefas e alcançar objetivos para um determinado exemplo de utilização.
Defina as métricas de avaliação
Comece com uma lista de métricas vazia (ou seja, metrics = []
) e adicione-lhe as métricas relevantes. Para incluir métricas adicionais:
Resposta final
A avaliação da resposta final segue o mesmo processo que a avaliação baseada em modelos. Para ver detalhes, consulte o artigo Defina as métricas de avaliação.
Correspondência exata
metrics.append("trajectory_exact_match")
Se a trajetória prevista for idêntica à trajetória de referência, com as
mesmas chamadas de ferramentas na mesma ordem, a métrica trajectory_exact_match
devolve uma pontuação de 1
. Caso contrário, devolve 0
.
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Correspondência na ordem
metrics.append("trajectory_in_order_match")
Se a trajetória prevista contiver todas as chamadas de ferramentas da trajetória de referência pela mesma ordem e também puder ter chamadas de ferramentas adicionais, a métrica trajectory_in_order_match
devolve uma pontuação de 1
; caso contrário, 0
.
Parâmetros de entrada:
predicted_trajectory
: a trajetória prevista usada pelo agente para alcançar a resposta final.reference_trajectory
: A trajetória prevista esperada para o agente satisfazer a consulta.
Correspondência em qualquer ordem
metrics.append("trajectory_any_order_match")
Se a trajetória prevista contiver todas as chamadas de ferramentas da trajetória de referência, mas a ordem não for importante e puder conter chamadas de ferramentas adicionais, a métrica trajectory_any_order_match
devolve uma pontuação de 1
. Caso contrário, devolve 0
.
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Precisão
metrics.append("trajectory_precision")
A métrica trajectory_precision
mede quantas das chamadas de ferramentas na trajetória prevista são realmente relevantes ou corretas de acordo com a trajetória de referência. É um valor float
no intervalo de [0, 1]
: quanto mais alta for a classificação, mais precisa é a trajetória prevista.
A precisão é calculada da seguinte forma: conte quantas ações na trajetória prevista também aparecem na trajetória de referência. Divida essa contagem pelo número total de ações na trajetória prevista.
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Recordar
metrics.append("trajectory_recall")
A métrica trajectory_recall
mede quantas das chamadas de ferramentas essenciais
da trajetória de referência são realmente captadas na trajetória
prevista. É um valor float
no intervalo de [0, 1]
: quanto mais elevada for a pontuação, melhor é a capacidade de memorização da trajetória prevista.
A taxa de recordação é calculada da seguinte forma: conte quantas ações na trajetória de referência também aparecem na trajetória prevista. Divida essa contagem pelo número total de ações na trajetória de referência.
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Utilização de uma única ferramenta
from vertexai.preview.evaluation import metrics
metrics.append(metrics.TrajectorySingleToolUse(tool_name='tool_name'))
A métrica trajectory_single_tool_use
verifica se uma ferramenta específica que é especificada na especificação da métrica é usada na trajetória prevista. Não verifica a ordem das chamadas de ferramentas nem quantas vezes a ferramenta é usada, apenas se está presente ou não. É um valor de 0
se a ferramenta estiver ausente e 1
, caso contrário.
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.
Personalizado
Pode definir uma métrica personalizada da seguinte forma:
from vertexai.preview.evaluation import metrics
def word_count(instance):
response = instance["response"]
score = len(response.split(" "))
return {"word_count": score}
metrics.append(
metrics.CustomMetric(name="word_count", metric_function=word_count)
)
As duas métricas de desempenho seguintes estão sempre incluídas nos resultados. Não
tem de especificá-los em EvalTask
:
latency
(float
): tempo (em segundos) que o agente demorou a responder.failure
(bool
):0
se a invocação do agente tiver sido bem-sucedida,1
caso contrário.
Prepare o conjunto de dados de avaliação
Para preparar o conjunto de dados para a resposta final ou a avaliação da trajetória:
Resposta final
O esquema de dados para a avaliação da resposta final é semelhante ao da avaliação da resposta do modelo.
Correspondência exata
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Correspondência na ordem
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a trajetória prevista usada pelo agente para alcançar a resposta final.reference_trajectory
: A trajetória prevista esperada para o agente satisfazer a consulta.
Correspondência em qualquer ordem
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Precisão
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Recordar
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.reference_trajectory
: a utilização esperada da ferramenta para satisfazer a consulta.
Utilização de uma única ferramenta
O conjunto de dados de avaliação tem de fornecer as seguintes entradas:
Parâmetros de entrada:
predicted_trajectory
: a lista de chamadas de ferramentas usadas pelo agente para alcançar a resposta final.
Para fins ilustrativos, segue-se um exemplo de um conjunto de dados de avaliação.
import pandas as pd
eval_dataset = pd.DataFrame({
"predicted_trajectory": [
[ # example 1
{
"tool_name": "set_device_info",
"tool_input": {"device_id": "device_3", "updates": {"status": "OFF"}}
},
],
[ # example 2
{
"tool_name": "get_user_preferences",
"tool_input": {"user_id": "user_z"},
}, {
"tool_name": "set_temperature",
"tool_input": {"location": "Living Room", "temperature": 23},
},
]
],
"reference_trajectory": [
[ # example 1
{
"tool_name": "set_device_info",
"tool_input": {"device_id": "device_2", "updates": {"status": "OFF"}},
},
],
[ # example 2
{
"tool_name": "get_user_preferences",
"tool_input": {"user_id": "user_y"},
}, {
"tool_name": "set_temperature",
"tool_input": {"location": "Living Room", "temperature": 23},
},
],
],
})
Exemplos de conjuntos de dados
Disponibilizámos os seguintes conjuntos de dados de exemplo para demonstrar como pode avaliar agentes:
"on-device"
: conjunto de dados de avaliação para um assistente doméstico no dispositivo. O agente ajuda com consultas como "Programa o ar condicionado no quarto para que esteja ligado entre as 23:00 e as 08:00 e desligado no resto do tempo"."customer-support"
: conjunto de dados de avaliação para um agente do apoio técnico ao cliente. O agente ajuda com consultas como "Podes cancelar todas as encomendas pendentes e encaminhar todos os pedidos de apoio técnico abertos?""content-creation"
: conjunto de dados de avaliação para um agente de criação de conteúdo de marketing. O agente ajuda com consultas como "Reprograma a campanha X para ser uma campanha única no site de redes sociais Y com um orçamento 50% inferior, apenas a 25 de dezembro de 2024".
Para importar os conjuntos de dados de exemplo:
Instale e inicialize a CLI
gcloud
.Transfira o conjunto de dados de avaliação.
No dispositivo
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/on-device/eval_dataset.json .
Apoio ao cliente
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/customer-support/eval_dataset.json .
Criação de conteúdo
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/content-creation/eval_dataset.json .
Carregue os exemplos do conjunto de dados
import json eval_dataset = json.loads(open('eval_dataset.json').read())
Gere resultados da avaliação
Para gerar resultados da avaliação, execute o seguinte código:
from vertexai.preview.evaluation import EvalTask
eval_task = EvalTask(dataset=eval_dataset, metrics=metrics)
eval_result = eval_task.evaluate(runnable=agent)
Veja e interprete os resultados
Os resultados da avaliação são apresentados da seguinte forma:
Os resultados da avaliação contêm as seguintes informações:
Métricas de resposta final
Métricas por linha:
response
: resposta final gerada pelo agente.latency_in_seconds
: tempo necessário (em segundos) para gerar a resposta.failure
: indica se foi gerada ou não uma resposta válida.score
: uma pontuação calculada para a resposta especificada na especificação da métrica.explanation
: a explicação da pontuação especificada na especificação da métrica.
Métricas de resumo:
mean
: pontuação média de todas as instâncias.standard deviation
: desvio padrão para todas as classificações.
Métricas de trajetória
Métricas por linha:
predicted_trajectory
: sequência de chamadas de ferramentas seguidas pelo agente para alcançar a resposta final.reference_trajectory
: sequência de chamadas de ferramentas esperadas.score
: uma pontuação calculada para a trajetória prevista e a trajetória de referência especificadas na especificação da métrica.latency_in_seconds
: tempo necessário (em segundos) para gerar a resposta.failure
: indica se foi gerada ou não uma resposta válida.
Métricas de resumo:
mean
: pontuação média de todas as instâncias.standard deviation
: desvio padrão para todas as classificações.
O que se segue?
Experimente os seguintes blocos de notas: