

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
<a name="model-customize-mtrl-evaluation"></a>

 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
<a name="model-customize-mtrl-evaluation-preparing-data"></a>

 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](model-customize-mtrl-assets.md#model-customize-mtrl-assets-prompt-dataset-format). 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.

1. **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.

1. **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.

1. **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
<a name="model-customize-mtrl-evaluation-launching"></a>

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

### SageMaker Estudio AI
<a name="model-customize-mtrl-evaluation-launching-studio"></a>
+ 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
<a name="model-customize-mtrl-evaluation-launching-sdk"></a>

`MultiTurnRLEvaluator`Proporciona 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
<a name="model-customize-mtrl-evaluation-launching-agentcore"></a>

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
<a name="model-customize-mtrl-evaluation-hyperparameters"></a>


| 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
<a name="model-customize-mtrl-evaluation-monitoring"></a>

```
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
<a name="model-customize-mtrl-evaluation-results"></a>

 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/`)
<a name="model-customize-mtrl-evaluation-results-reward"></a>


| 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/`)
<a name="model-customize-mtrl-evaluation-results-token"></a>


| 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/`)
<a name="model-customize-mtrl-evaluation-results-turn"></a>


| 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/`)
<a name="model-customize-mtrl-evaluation-results-logprob"></a>


| 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/)`
<a name="model-customize-mtrl-evaluation-results-timing"></a>


| 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
<a name="model-customize-mtrl-evaluation-results-diagnose"></a>


| 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 en`OutputDataConfig`. 

## Limita &amp; las cuotas de evaluación
<a name="model-customize-mtrl-evaluation-limits"></a>

 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 | 