As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Avaliação de modelos
A avaliação compara seu agente com base em um conjunto imediato e relata métricas de recompensa, pass @k e trajetória. Use-o para comparar um modelo ajustado com sua base ou comparar um candidato antes da implantação.
Nota: Uso de trabalhos de avaliação JobCategory: AgentRFTEvaluation (não AgentRFT como usado em treinamento). Use esta categoria em CreateJob e DescribeJob solicite trabalhos de avaliação.
Preparando dados de avaliação
Os conjuntos de dados de avaliação usam o mesmo formato e esquema dos conjuntos de dados de treinamento. Consulte Formato de conjunto de dados imediato. A orientação abaixo é específica para cada avaliação.
-
Guarde os dados de avaliação dos conjuntos de dados de treinamento. Nunca avalie as instruções de treinamento, pois as pontuações exagerarão o desempenho. Reserve uma parte dos dados para um conjunto retido ou mantenha um conjunto de dados de avaliação separado. Mantenha o mesmo conjunto de avaliações em todas as iterações para que os resultados sejam comparáveis.
-
Combine o formato do prompt de treinamento. O agente deve analisar os prompts de avaliação da mesma forma que analisou os prompts de treinamento. Se você usou codificação ou criptografia durante o treinamento, use a estrutura idêntica aqui. Gerar ambos a partir do mesmo caminho de código evita desvios.
-
Cubra os comportamentos que lhe interessam. Exercite cada ferramenta e combinação de ferramentas que seu agente usa. Inclua solicitações que anteriormente causaram falhas para que as regressões surjam.
-
Proteja o conteúdo confidencial da mesma forma que no treinamento, pois o serviço passa as solicitações sem inspeção.
Lançamento de um trabalho de avaliação
Após a conclusão do treinamento, avalie seu modelo usando um dos métodos a seguir.
SageMaker Estúdio AI
-
Navegue até a página de detalhes do seu modelo personalizado (Modelos > Meus modelos > selecione seu modelo MTRL).
-
Escolha Avaliar para abrir a página de configuração da avaliação.
-
Selecione Multi-Turn RL como o tipo de avaliação.
-
Configure seu ambiente de agente — selecione seu tempo de AgentCore execução do Bedrock ou forneça o ARN do encaminhador Lambda.
-
Forneça seu conjunto de dados de avaliação (URI do S3 ou conjunto de dados registrado contendo instruções de avaliação retidas).
-
Escolha Enviar para iniciar o trabalho de avaliação.
SageMaker SDK AI para Python
MultiTurnRLEvaluatorEle fornece uma interface de alto nível para iniciar trabalhos de avaliação. Quando você é aprovado em um instrutor completo, o avaliador resolve automaticamente o ARN do pacote de modelos, a configuração do agente e o qualificador do agente.
Avalie um modelo ajustado
from sagemaker.train.evaluate import MultiTurnRLEvaluator from sagemaker.train.multi_turn_rl_trainer import MultiTurnRLTrainer # Attach to a completed training job trainer = MultiTurnRLTrainer.attach(job_name="my-mtrl-job-20260512082005") # Minimal evaluator — everything else inferred from trainer evaluator = MultiTurnRLEvaluator( model=trainer, dataset="s3://my-bucket/eval-prompts.parquet", s3_output_path="s3://my-bucket/eval-output/", ) execution = evaluator.evaluate() print(f"Evaluation started: {execution.arn}") # Wait for completion execution.wait() print(f"Status: {execution.status.overall_status}") print(f"S3 Output: {execution.s3_output_path}") print(f"MLflow: {execution.mlflow_url}")
Avalie um modelo básico (sem treinamento)
Ao avaliar um modelo básico diretamente, agent_config é necessário, pois não há treinador do qual herdar:
from sagemaker.train.evaluate import MultiTurnRLEvaluator # With Bedrock AgentCore evaluator_base = MultiTurnRLEvaluator( model="openai-reasoning-gpt-oss-20b", dataset="s3://my-bucket/eval-prompts.parquet", agent_config="arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent", s3_output_path="s3://my-bucket/eval-output/base/", mlflow_resource_arn="arn:aws:sagemaker:us-west-2:123456789012:mlflow-tracking-server/my-mlflow", role="arn:aws:iam::123456789012:role/SageMakerRole", accept_eula=True, ) execution = evaluator_base.evaluate() execution.wait()
Side-by-side comparação (básica versus ajustada)
Uma única evaluate() chamada que avalia o modelo básico e o modelo ajustado em um único pipeline:
comparison_evaluator = MultiTurnRLEvaluator( model=trainer, dataset="s3://my-bucket/eval-prompts.parquet", s3_output_path="s3://my-bucket/eval-output/comparison/", evaluate_base_model=True, ) execution = comparison_evaluator.evaluate() execution.wait() print(f"Status: {execution.status.overall_status}")
Monitore e recupere resultados
# Refresh status execution.refresh() print(f"Status: {execution.status.overall_status}") # Step-level detail for step in execution.status.step_details: print(f" {step.name}: {step.status}") if step.job_arn: print(f" Job ARN: {step.job_arn}") # MLflow URL print(f"MLflow: {execution.mlflow_url}")
AWS CLI e boto3
Você também pode criar trabalhos de avaliação diretamente usando a CreateJob API.
Crie um trabalho de avaliação (Bedrock AgentCore)
Para criar um trabalho de avaliação, chame a CreateJob API com JobCategory set toAgentRFTEvaluation. A instalação e configuração do agente seguem o mesmo processo dos trabalhos de treinamento.
Usando a AWS CLI
aws sagemaker create-job \ --job-category AgentRFTEvaluation \ --job-name "my-agent-rft-eval-job" \ --role-arn "arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole" \ --job-config-schema-version "1.0.0" \ --job-config-document '{ "AgentConfig": { "BedrockAgentCoreConfig": { "AgentRuntimeArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent" } }, "InputDataConfig": [{ "ChannelName": "evaluation", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://your-bucket-name/eval-prompts/" } } }], "OutputDataConfig": { "S3OutputPath": "s3://your-bucket-name/eval-output/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:123456789012:mlflow-app/my-rft-mlflow-app" } }, "EvaluationConfig": { "BaseModelArn": "arn:aws:sagemaker:us-west-2:aws:hub-content/SageMakerPublicHub/Model/openai-reasoning-gpt-oss-20b", "AcceptEula": true, "HyperParameters": {"batch": { "eval_group_size": 1 }, "eval_metrics_config": { "pass_k_values": [1, 2, 4, 8, 16, 32], "success_threshold": 1 }} } }' \ --region us-west-2
Usando o SDK SageMaker AI Python (boto3)
import json import boto3 sm = boto3.client("sagemaker") response = sm.create_job( JobName="my-agent-rft-eval-job", RoleArn="arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole", JobCategory="AgentRFTEvaluation", JobConfigSchemaVersion="1.0.0", JobConfigDocument=json.dumps({ "AgentConfig": { "BedrockAgentCoreConfig": { "AgentRuntimeArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent" } }, "InputDataConfig": [{ "ChannelName": "evaluation", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://your-bucket-name/eval-prompts/" } } }], "OutputDataConfig": { "S3OutputPath": "s3://your-bucket-name/eval-output/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:123456789012:mlflow-app/my-rft-mlflow-app" } }, "EvaluationConfig": { "BaseModelArn": "arn:aws:sagemaker:us-west-2:aws:hub-content/SageMakerPublicHub/Model/openai-reasoning-gpt-oss-20b", "AcceptEula": True, "HyperParameters": {"batch": { "eval_group_size": 1 }, "eval_metrics_config": { "pass_k_values": [1, 2, 4, 8, 16, 32], "success_threshold": 1 }} } }) ) print(f"Eval Job ARN: {response['JobArn']}")
Avaliando um modelo ajustado
Para avaliar um modelo produzido por um trabalho de treinamento, inclua ModelPackageConfig comInputModelPackageArn:
import json import boto3 sm = boto3.client("sagemaker") response = sm.create_job( JobName="my-agent-rft-eval-finetuned", RoleArn="arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole", JobCategory="AgentRFTEvaluation", JobConfigSchemaVersion="1.0.0", JobConfigDocument=json.dumps({ "AgentConfig": {...}, "InputDataConfig": [...], "OutputDataConfig": {...}, "ModelPackageConfig": { "InputModelPackageArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package/my-final-models/1" }, "EvaluationConfig": {...} }) ) print(f"Eval Job ARN: {response['JobArn']}")
Crie um trabalho de avaliação (agente personalizado com Lambda Forwarder)
Use a mesma abordagem da AgentCore avaliação Bedrock, mas especifique CustomAgentLambdaConfig em: AgentConfig
"AgentConfig": { "CustomAgentLambdaConfig": { "LambdaArn": "arn:aws:lambda:us-west-2:account-id:function:rft-agent-forwarder" } }
Hiperparâmetros de avaliação
| Categoria | Parâmetro | Tipo | Padrão | Description |
|---|---|---|---|---|
| lote | avaliar_tamanho_do_grupo | integer | 1 | Lançamentos por solicitação. Nota: Para calcular pass @k, defina eval_group_size >= k. |
| eval_metrics_config | pass_k_values | array | [1, 2, 4, 8, 16, 32] | Lista de valores k para calcular as métricas pass @k e pass^k. pass @k = probabilidade de que pelo menos 1 das k implementações amostradas seja bem-sucedida. pass^k = probabilidade de que todas as k implementações sejam bem-sucedidas. |
| eval_metrics_config | limiar de sucesso | flutuação | 1 | Um lançamento é “bem-sucedido” quando a recompensa é >= success_threshold. Observe que isso se aplica às métricas pass @k, pass^k, succeeded/failed count. |
| parâmetros eval_sampling_ | temperatura | flutuação | 0 | Temperatura de amostragem para implementações de avaliação. Observação: é recomendável aumentar esse valor além de 0 para as métricas pass @k e pass^k para evitar um comportamento determinístico. |
| parâmetros eval_sampling_ | sampling_top_p | flutuação | 1 | Corte de amostragem de núcleo para lançamentos de avaliação. |
| parâmetros eval_sampling_ | sampling_max_tokens | integer | 4096 | Máximo de tokens que o modelo pode gerar por turno durante os lançamentos de avaliação. |
| lançamento | timeout | flutuação | 600 | Tempo (segundos) após o qual uma implementação de avaliação é tratada como falha e pode ser repetida. |
| lançamento | simultaneidade máxima | int | 96 | Número máximo de lançamentos de avaliação que podem ser executados paralelamente. |
| lançamento | max_retries | int | 3 | Número de tentativas de repetição de implementações de avaliação malsucedidas antes de marcá-las como falhas permanentes. |
Monitoramento e avaliação
aws sagemaker describe-job \ --job-name "my-agent-rft-eval-job" \ --job-category AgentRFTEvaluation \ --region us-west-2
Interpretando os resultados da avaliação
Abra seu aplicativo MLflow para visualizar métricas registradas, distribuições de recompensas e visualizações de trajetória para a execução da avaliação. Veja abaixo a explicação sobre o que cada uma das métricas significa.
Métricas de recompensa (eval/reward/)
| Métrica | Description |
|---|---|
eval/reward/mean |
Pontuação média de recompensa em todos os lançamentos. |
eval/reward/min |
Pontuação mínima de recompensa em todos os lançamentos. |
eval/reward/max |
Pontuação máxima de recompensa em todos os lançamentos. |
eval/reward/std |
Desvio padrão das pontuações de recompensa em todos os lançamentos. |
eval/reward/zero_frac |
Fração de lançamentos com pontuação exata de 0 (falhas completas). |
eval/reward/pass_at_1 |
Probabilidade de que pelo menos 1 amostra em cada solicitação seja bem-sucedida. Essa é a principal métrica de sucesso. |
eval/reward/pass_power_1 |
Taxa de aprovação com ponderação de potência. |
eval/reward/succeeded_rollouts |
Número total de lançamentos que obtiveram uma recompensa positiva. |
eval/reward/failed_rollouts |
Número total de lançamentos que obtiveram pontuação 0. |
eval/reward/num_prompts |
Número de solicitações distintas avaliadas. |
eval/reward/rollouts_per_prompt |
Número de tentativas (amostras) geradas por solicitação. |
eval/reward/success_threshold |
O valor da recompensa necessário para considerar um lançamento como “bem-sucedido”. |
eval/reward/mean_within_groups |
Recompensa média por grupo de prompts (requer definir rollouts_per_prompt > 1). |
eval/reward/std_within_groups |
Desvio padrão da recompensa dentro de cada grupo de solicitações. |
eval/reward/min_within_groups |
Recompensa mínima em cada grupo de solicitações. |
eval/reward/max_within_groups |
Recompensa máxima dentro de cada grupo de solicitações. |
Métricas de token (eval/tokens/)
| Métrica | Description |
|---|---|
eval/tokens/prompt_mean |
Tamanho médio do prompt em tokens (inclui o prompt do sistema, as descrições das ferramentas e o contexto de vários turnos). |
eval/tokens/response_mean |
Duração média da resposta do modelo em tokens por turno. |
eval/tokens/response_min |
Resposta mais curta do modelo em tokens. |
eval/tokens/response_max |
Resposta de modelo mais longa em tokens. |
eval/tokens/response_std |
Desvio padrão dos comprimentos de resposta. A alta variação pode indicar um comportamento inconsistente do agente. |
Métricas de turnos (eval/turns/)
| Métrica | Description |
|---|---|
eval/turns/mean |
Número médio de turnos por lançamento. Valores altos podem indicar que o agente está fazendo um loop ou tentando novamente em excesso. |
eval/turns/min |
Menos turnos em qualquer lançamento. |
eval/turns/max |
A maioria dos turnos em qualquer lançamento. Valores muito altos sugerem que o agente ficou preso sem resolver a tarefa. |
Registrar métricas de probabilidade (eval/logprob/)
| Métrica | Description |
|---|---|
eval/logprob/nz_mean |
Probabilidade logarítmica média de tokens diferentes de zero (sem preenchimento). Valores próximos a 0 indicam alta confiança do modelo. |
eval/logprob/nz_min |
Símbolo de probabilidade logarítmica mais baixa (previsão menos confiável). |
eval/logprob/nz_max |
Token de maior probabilidade logarítmica (previsão mais confiável). |
eval/logprob/nz_std |
Desvio padrão de probabilidades logarítmicas diferentes de zero. Valores baixos significam confiança consistentemente alta. |
eval/logprob/zero_frac |
Fração de tokens com probabilidade logarítmica exatamente zero (probabilidade 1,0), normalmente fichas de preenchimento ou forçadas. |
eval/logprob/zero_count |
Contagem total de tokens zero-logprob. |
eval/logprob/zero_per_group |
Média de tokens zero-logprob por grupo de prompts. |
Métricas de tempo (timing_s/)
| Métrica | Description |
|---|---|
timing_s/eval |
Tempo total do relógio de parede para a avaliação em segundos. Divida por eval/reward/num_prompts para ver o tempo médio por solicitação. |
Como diagnosticar padrões comuns
| Padrão | Causa provável |
|---|---|
pass_at_1 = 0, alto turns/mean |
O agente está em loop sem resolver tarefas. Verifique o uso da ferramenta e os padrões de ação nas trajetórias. |
pass_at_1 = 0, baixo tokens/response_mean |
Agente que produz respostas muito curtas (possivelmente vazias ou malformadas). Verifique o formato imediato e a compatibilidade do modelo. |
Alto turns/max com baixo turns/min |
O agente está mostrando um comportamento inconsistente em todas as solicitações. Algumas tarefas podem ser muito mais difíceis ou o agente pode estar falhando em interações específicas da ferramenta. |
Alta confiança (logprob/nz_meanperto de 0), mas baixa recompensa |
O modelo está produzindo com confiança saídas erradas. Pode ser necessário mais diversidade de dados de treinamento ou refinamento do sinal de recompensa. |
zero_frac = 1.0em recompensa |
Falha completa. Verifique a implantação do agente, a conectividade da ferramenta e se o formato do conjunto de dados de avaliação está correto. |
Para obter resultados brutos, revise os artefatos gravados no S3OutputPath especificado emOutputDataConfig.
Limita as & cotas para avaliação
Use cotas AWS de serviço para solicitar um aumento de limite no número máximo de trabalhos de avaliação simultâneos.
| Quota | Padrão |
|---|---|
| rft-evaluation-job: máximo de trabalhos simultâneos | 1 |