View a markdown version of this page

Evaluación de modelos - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Evaluación de modelos

La evaluación compara a su agente con un conjunto rápido e informa de las métricas de recompensa, pase @k y trayectoria. Utilícela para comparar un modelo ajustado con su base o para comparar un candidato antes del despliegue.

Nota: Se utilizan trabajos de evaluación JobCategory: AgentRFTEvaluation (no AgentRFT como se utilizan en la formación). Utilice esta categoría en los trabajos de evaluación CreateJob y DescribeJob convocatorias.

Preparación de los datos de evaluación

Los conjuntos de datos de evaluación utilizan el mismo formato y esquema que los conjuntos de datos de entrenamiento. Consulte Formato de conjunto de datos rápido. La siguiente guía es específica para la evaluación.

  1. Guarde los datos de evaluación de los conjuntos de datos de entrenamiento. Nunca evalúes siguiendo las instrucciones de entrenamiento, ya que las puntuaciones exagerarán el rendimiento. Reserva una parte de los datos para un conjunto retenido o mantén un conjunto de datos de evaluación independiente. Mantén el mismo conjunto de evaluación en todas las iteraciones para que los resultados sean comparables.

  2. Haga coincidir el formato del mensaje de entrenamiento. El agente debe analizar las solicitudes de evaluación de la misma manera que analizó las solicitudes de entrenamiento. Si utilizó la codificación o el cifrado durante el entrenamiento, utilice la misma estructura en este caso. Al generar ambos desde la misma ruta de código, se evitan desviaciones.

  3. Cubra los comportamientos que le interesan. Utilice cada herramienta y combinación de herramientas que utilice su agente. Incluya las indicaciones que anteriormente causaron errores para que aparezcan las regresiones.

  4. Proteja el contenido confidencial de la misma forma que en la formación, ya que el servicio transmite las instrucciones sin necesidad de inspeccionarlas.

Lanzar un trabajo de evaluación

Una vez finalizado el entrenamiento, evalúe el modelo mediante uno de los siguientes métodos.

SageMaker Estudio AI

  • Navegue hasta la página de detalles de su modelo personalizado (Modelos > Mis modelos > seleccione su modelo MTRL).

  • Elija Evaluar para abrir la página de configuración de la evaluación.

  • Seleccione Multi-Turn RL como tipo de evaluación.

  • Configure su entorno de agentes: seleccione su entorno de AgentCore ejecución de Bedrock o proporcione el ARN de su reenviador Lambda.

  • Proporcione su conjunto de datos de evaluación (un URI de S3 o un conjunto de datos registrado que contenga instrucciones de evaluación ocultas).

  • Seleccione Enviar para iniciar el trabajo de evaluación.

SageMaker SDK de Python para IA

MultiTurnRLEvaluatorProporciona una interfaz de alto nivel para lanzar trabajos de evaluación. Al superar a un entrenador completo, el evaluador resuelve automáticamente el ARN del paquete modelo, la configuración del agente y el calificador del agente.

Evalúe un 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}")

Evalúe un modelo base (sin formación)

Al evaluar un modelo base directamente, agent_config es obligatorio, ya que no hay ningún entrenador del que heredar:

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 comparación (base versus ajustado)

Una sola evaluate() llamada que evalúa tanto el modelo base como el modelo ajustado en una sola canalización:

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}")

Supervise y recupere los 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 y boto3

También puede crear trabajos de evaluación directamente mediante la CreateJob API.

Cree un trabajo de evaluación (Bedrock AgentCore)

Para crear un trabajo de evaluación, llama a la CreateJob API con JobCategory set en. AgentRFTEvaluation La instalación y la configuración del agente siguen el mismo proceso que los trabajos de formación.

Uso de 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

Uso del SDK de Python para SageMaker IA (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']}")

Evaluación de un modelo ajustado

Para evaluar un modelo producido por un trabajo de formación, inclúyalo ModelPackageConfig junto con: InputModelPackageArn

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']}")

Crear un trabajo de evaluación (agente personalizado con Lambda Forwarder)

Utilice el mismo enfoque que la AgentCore evaluación de Bedrock, pero CustomAgentLambdaConfig especifíquelo en: AgentConfig

"AgentConfig": { "CustomAgentLambdaConfig": { "LambdaArn": "arn:aws:lambda:us-west-2:account-id:function:rft-agent-forwarder" } }

Hiperparámetros de evaluación

Categoría Parámetro Tipo Predeterminado Description (Descripción)
batch eval_group_size entero 1 Implementaciones por solicitud. 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 las métricas pass @k y pass^k. pass @k = probabilidad de que al menos 1 de las k implementaciones muestreadas tenga éxito. pass^k = probabilidad de que todas las k implementaciones se realicen correctamente.
eval_metrics_config umbral de éxito float 1 Un lanzamiento se considera «exitoso» cuando la recompensa es >= success_threshold. Ten en cuenta que esto se aplica a las métricas pass @k, pass^k y count. succeeded/failed
eval_sampling_params temperature float 0 Temperatura de muestreo para los despliegues de evaluación. Nota: se recomienda aumentar este valor más allá de 0 en las métricas pass @k y pass^k para evitar comportamientos deterministas.
eval_sampling_params sampling_top_p float 1 Límite de muestreo de núcleos para los despliegues de evaluación.
eval_sampling_params sampling_max_tokens entero 4096 El número máximo de fichas que el modelo puede generar por turno durante la implementación de la evaluación.
despliegue timeout float 600 Tiempo (segundos) tras el cual la implementación de una evaluación se considera fallida y se puede volver a intentar.
despliegue max_concurrency int 96 Número máximo de implementaciones de evaluación que se pueden ejecutar en paralelo.
despliegue max_retries int 3 Número de reintentos en las implementaciones de evaluación fallidas antes de marcarlas como fallidas permanentemente.

Supervisión de la evaluación

aws sagemaker describe-job \ --job-name "my-agent-rft-eval-job" \ --job-category AgentRFTEvaluation \ --region us-west-2

Interpretar los resultados de la evaluación

Abra su aplicación MLflow para ver las métricas registradas, las distribuciones de recompensas y las visualizaciones de la trayectoria de la evaluación. Consulte a continuación una explicación sobre el significado de cada una de las métricas.

Métricas de recompensas (eval/reward/)

Métrica Description (Descripción)
eval/reward/mean Puntuación media de recompensas en todos los lanzamientos.
eval/reward/min Puntuación mínima de recompensa en todos los lanzamientos.
eval/reward/max Puntuación máxima de recompensa en todos los lanzamientos.
eval/reward/std Desviación estándar de las puntuaciones de las recompensas en todos los lanzamientos.
eval/reward/zero_frac Fracción de lanzamientos que obtuvo una puntuación exacta de 0 (errores totales).
eval/reward/pass_at_1 Probabilidad de que al menos 1 de cada muestra por solicitud tenga éxito. Esta es la principal métrica de éxito.
eval/reward/pass_power_1 Tasa de aprobación con ponderación de potencia.
eval/reward/succeeded_rollouts Número total de lanzamientos que obtuvieron una recompensa positiva.
eval/reward/failed_rollouts Número total de lanzamientos que obtuvieron una puntuación de 0.
eval/reward/num_prompts Número de solicitudes distintas evaluadas.
eval/reward/rollouts_per_prompt Número de intentos (muestras) generados por solicitud.
eval/reward/success_threshold El valor de la recompensa necesario para considerar una implementación como «exitosa».
eval/reward/mean_within_groups Recompensa media por grupo de mensajes (es necesario establecer rollouts_per_prompt > 1).
eval/reward/std_within_groups Desviación estándar de la recompensa dentro de cada grupo de solicitudes.
eval/reward/min_within_groups Recompensa mínima dentro de cada grupo de solicitudes.
eval/reward/max_within_groups Recompensa máxima dentro de cada grupo de mensajes.

Métricas simbólicas (eval/tokens/)

Métrica Description (Descripción)
eval/tokens/prompt_mean Longitud media de las solicitudes en fichas (incluye las solicitudes del sistema, las descripciones de las herramientas y el contexto de varios turnos).
eval/tokens/response_mean Longitud media de respuesta del modelo en fichas por turno.
eval/tokens/response_min La respuesta más corta del modelo en fichas.
eval/tokens/response_max La respuesta del modelo más larga en fichas.
eval/tokens/response_std Desviación estándar de las longitudes de respuesta. Una varianza alta puede indicar un comportamiento incoherente del agente.

Gire las métricas (eval/turns/)

Métrica Description (Descripción)
eval/turns/mean Número medio de turnos por lanzamiento. Los valores altos pueden indicar que el agente está haciendo bucles o reintentándolo en exceso.
eval/turns/min El menor número de turnos en cualquier lanzamiento.
eval/turns/max La mayoría de los turnos en cualquier lanzamiento. Los valores muy altos sugieren que el agente se quedó atascado sin resolver la tarea.

Métricas de probabilidad logarítmica (eval/logprob/)

Métrica Description (Descripción)
eval/logprob/nz_mean Probabilidad logarítmica media de los tokens distintos de cero (sin relleno). Los valores cercanos a 0 indican una alta confianza en el modelo.
eval/logprob/nz_min Símbolo de probabilidad logarítmica más baja (predicción menos fiable).
eval/logprob/nz_max Símbolo de probabilidad logarítmica más alta (predicción más fiable).
eval/logprob/nz_std Desviación estándar de probabilidades logarítmicas distintas de cero. Los valores bajos significan una confianza alta y constante.
eval/logprob/zero_frac Fracción de fichas con una probabilidad logarítmica exactamente nula (probabilidad de 1,0), normalmente fichas de relleno o forzadas.
eval/logprob/zero_count Recuento total de fichas con cero probabilidades de registro.
eval/logprob/zero_per_group Promedio de fichas sin registro de registro por grupo de solicitudes.

Métricas de temporización (timing_s/)

Métrica Description (Descripción)
timing_s/eval Tiempo total de evaluación realizado por un reloj de pared en segundos. Divida entre eval/reward/num_prompts para obtener el tiempo promedio por solicitud.

Cómo diagnosticar patrones comunes

Patrón Causa probable
pass_at_1 = 0, alta turns/mean El agente está haciendo bucles sin resolver las tareas. Compruebe el uso de las herramientas y los patrones de acción en las trayectorias.
pass_at_1 = 0, bajo tokens/response_mean Agente que produce respuestas muy breves (posiblemente vacías o mal formadas). Compruebe la compatibilidad del formato y el modelo del mensaje.
Alto turns/max con bajo turns/min El agente muestra un comportamiento incoherente en todas las indicaciones. Algunas tareas pueden resultar mucho más complicadas o el agente puede estar fallando en determinadas interacciones entre herramientas.
Confianza alta (logprob/nz_meancercana a 0) pero recompensa baja El modelo produce resultados incorrectos con seguridad. Es posible que necesite una mayor diversidad de datos de entrenamiento o un refinamiento de la señal de recompensa.
zero_frac = 1.0en recompensa Fracaso total. Compruebe la implementación del agente, la conectividad de las herramientas y que el formato del conjunto de datos de evaluación sea correcto.

Para obtener resultados sin procesar, revise los artefactos escritos según lo S3OutputPath especificado enOutputDataConfig.

Limita & las cuotas de evaluación

Utilice las cuotas de AWS servicio para solicitar un aumento del límite del número máximo de trabajos de evaluación simultáneos.

Cuota Predeterminado
rft-evaluation-job: número máximo de trabajos simultáneos 1