

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Valutazione del modello
<a name="model-customize-mtrl-evaluation"></a>

 Evaluation confronta l'agente in base a un set di prompt e riporta le metriche relative a reward, pass @k e traiectory. Usalo per confrontare un modello perfezionato con quello di base o per confrontare un candidato prima dell'implementazione. 

 **Nota:** utilizzo di lavori di valutazione `JobCategory: AgentRFTEvaluation` (diverso da `AgentRFT` quello utilizzato nella formazione). Utilizza questa categoria per `DescribeJob` le chiamate `CreateJob` e i lavori di valutazione. 

## Preparazione dei dati di valutazione
<a name="model-customize-mtrl-evaluation-preparing-data"></a>

 I set di dati di valutazione utilizzano lo stesso formato e lo stesso schema dei set di dati di addestramento. Per informazioni, consulta [Formato rapido del set di dati](model-customize-mtrl-assets.md#model-customize-mtrl-assets-prompt-dataset-format). La guida riportata di seguito è specifica per eval. 

1. **Estrai i dati di valutazione dai set di dati di formazione.** Non fate mai valutazioni in base alle istruzioni di allenamento, poiché i punteggi sovrastimerebbero le prestazioni. Riserva una parte dei dati per un set esaurito o mantieni un set di dati di valutazione separato. Mantieni lo stesso set di valutazione tra le iterazioni in modo che i risultati siano confrontabili.

1. **Corrisponde al formato del prompt di allenamento.** L'agente deve analizzare i prompt eval nello stesso modo in cui ha analizzato i prompt di addestramento. Se hai usato la codifica o la crittografia durante l'addestramento, usa la stessa struttura qui. La generazione di entrambe dallo stesso percorso di codice evita la deriva.

1. **Descrivi i comportamenti che ti interessano.** Esercita ogni strumento e combinazione di strumenti utilizzati dal tuo agente. Includi i prompt che in precedenza causavano guasti in modo che le regressioni emergano.

1. **Proteggete i contenuti sensibili allo stesso modo dei corsi di formazione, in quanto** il servizio trasmette le istruzioni senza ispezioni.

## Avvio di un lavoro di valutazione
<a name="model-customize-mtrl-evaluation-launching"></a>

Al termine della formazione, valutate il modello utilizzando uno dei seguenti metodi.

### SageMaker AI Studio
<a name="model-customize-mtrl-evaluation-launching-studio"></a>
+ Vai alla pagina dei dettagli del tuo modello personalizzato (**Modelli > I** **miei modelli** > seleziona il tuo modello MTRL).
+ Scegli **Evaluate** per aprire la pagina di configurazione della valutazione.
+ Seleziona **Multi-Turn RL** come tipo di valutazione.
+ Configura l'ambiente del tuo agente: seleziona il tuo AgentCore runtime Bedrock o fornisci l'ARN del tuo spedizioniere Lambda.
+ Fornisci il tuo set di dati di valutazione (URI S3 o set di dati registrato contenente richieste di valutazione esaurite).
+ **Scegli Invia per iniziare il processo di valutazione.**

### SageMaker SDK per AI per Python
<a name="model-customize-mtrl-evaluation-launching-sdk"></a>

`MultiTurnRLEvaluator`Fornisce un'interfaccia di alto livello per l'avvio di lavori di valutazione. Quando superate un corso di formazione completo, lo strumento di valutazione risolve automaticamente l'ARN del pacchetto modello, la configurazione dell'agente e il qualificatore dell'agente.

**Valuta un modello ottimizzato**

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

**Valuta un modello base (nessuna formazione)**

Quando si valuta direttamente un modello base, `agent_config` è necessario poiché non esiste un trainer da cui ereditare:

```
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 confronto (base vs ottimizzato)**

Una singola `evaluate()` chiamata che valuta sia il modello base che il modello ottimizzato in un'unica 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}")
```

**Monitora e recupera i risultati**

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

Puoi anche creare lavori di valutazione direttamente utilizzando l'API. `CreateJob`

**Crea un lavoro di valutazione (Bedrock AgentCore)**

 Per creare un lavoro di valutazione, chiama l'`CreateJob`API con `JobCategory` set to`AgentRFTEvaluation`. L'installazione e la configurazione dell'agente seguono lo stesso processo dei lavori di formazione. 

**Utilizzo della 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
```

**Utilizzo di SageMaker AI Python SDK (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']}")
```

**Valutazione di un modello ottimizzato**

 Per valutare un modello prodotto da un lavoro di formazione, includi: `ModelPackageConfig` `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']}")
```

**Creare un processo di valutazione (agente personalizzato con Lambda Forwarder)**

 Utilizzate lo stesso approccio della AgentCore valutazione di Bedrock ma specificate in: `CustomAgentLambdaConfig` `AgentConfig` 

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

## Iperparametri di valutazione
<a name="model-customize-mtrl-evaluation-hyperparameters"></a>


| Categoria | Parametro | Tipo | Predefinita | Description | 
| --- | --- | --- | --- | --- | 
| batch | eval\_group\_size | intero | 1 | Implementazioni per prompt. Nota: per calcolare pass @k, imposta eval\_group\_size >= k. | 
| eval\_metrics\_config | pass\_k\_values | array | [1, 2, 4, 8, 16, 32] | Elenco di valori k per il calcolo delle metriche pass @k e pass^k. pass @k = probabilità che almeno 1 delle k implementazioni campionate abbia successo. pass^k = probabilità che tutte le k implementazioni abbiano successo. | 
| eval\_metrics\_config | soglia di successo | virgola mobile | 1 | Un rollout è «riuscito» quando reward >= success\_threshold. Nota che questo vale per le metriche pass @k, pass^k, count. succeeded/failed  | 
| eval\_sampling\_params | temperature | virgola mobile | 0 | Temperatura di campionamento per le implementazioni di valutazione. Nota: si consiglia di aumentare questo valore oltre 0 per le metriche pass @k e pass^k per evitare comportamenti deterministici. | 
| eval\_sampling\_params | campionamento\_top\_p | virgola mobile | 1 | Interruzione del campionamento del nucleo per le implementazioni di valutazione. | 
| eval\_sampling\_params | sampling\_max\_tokens | intero | 4096 | Numero massimo di token che il modello può generare per turno durante i rollout di valutazione. | 
| rollout | timeout | virgola mobile | 600 | Tempo (secondi) dopo il quale l'implementazione di una valutazione viene considerata fallita e può essere ritentata. | 
| implementazione | max\_concurrency | int | 96 | Numero massimo di implementazioni di valutazione che possono essere eseguite in parallelo. | 
| implementazione | max\_retries | int | 3 | Numero di tentativi di implementazione della valutazione non riusciti prima di contrassegnarli come definitivamente falliti. | 

## Monitoraggio e valutazione
<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
```

## Interpretazione dei risultati della valutazione
<a name="model-customize-mtrl-evaluation-results"></a>

 Apri l'app MLFlow per visualizzare le metriche registrate, le distribuzioni delle ricompense e le visualizzazioni delle traiettorie per l'esecuzione della valutazione. Vedi sotto per una spiegazione del significato di ciascuna metrica. 

### `Metriche sui premi (/) eval/reward`
<a name="model-customize-mtrl-evaluation-results-reward"></a>


| Metrica | Description | 
| --- | --- | 
| eval/reward/mean | Punteggio medio di ricompensa in tutte le implementazioni. | 
| eval/reward/min | Punteggio di ricompensa minimo per tutte le implementazioni. | 
| eval/reward/max | Punteggio massimo di ricompensa in tutte le implementazioni. | 
| eval/reward/std | Deviazione standard dei punteggi dei premi in tutte le implementazioni. | 
| eval/reward/zero\_frac | Frazione di implementazioni che ha ottenuto esattamente 0 (fallimenti completi). | 
| eval/reward/pass\_at\_1 | Probabilità che almeno 1 campione su 1 per prompt abbia successo. Questa è la metrica di successo principale. | 
| eval/reward/pass\_power\_1 | Frequenza di superamento con ponderazione della potenza. | 
| eval/reward/succeeded\_rollouts | Numero totale di implementazioni che hanno ottenuto una ricompensa positiva. | 
| eval/reward/failed\_rollouts | Numero totale di implementazioni che hanno ottenuto 0. | 
| eval/reward/num\_prompts | Numero di prompt distinti valutati. | 
| eval/reward/rollouts\_per\_prompt | Numero di tentativi (campioni) generati per prompt. | 
| eval/reward/success\_threshold | Il valore della ricompensa richiesto per considerare un'implementazione «riuscita». | 
| eval/reward/mean\_within\_groups | Ricompensa media per gruppo di prompt (richiede l'impostazione di rollouts\_per\_prompt > 1). | 
| eval/reward/std\_within\_groups | Deviazione standard della ricompensa all'interno di ciascun gruppo di prompt. | 
| eval/reward/min\_within\_groups | Ricompensa minima all'interno di ogni gruppo di prompt. | 
| eval/reward/max\_within\_groups | Ricompensa massima all'interno di ogni gruppo di prompt. | 

### `Metriche dei token (/) eval/tokens`
<a name="model-customize-mtrl-evaluation-results-token"></a>


| Metrica | Description | 
| --- | --- | 
| eval/tokens/prompt\_mean | Lunghezza media dei prompt in token (include prompt di sistema, descrizioni degli strumenti e contesto a turni multipli). | 
| eval/tokens/response\_mean | Lunghezza media della risposta del modello in token per turno. | 
| eval/tokens/response\_min | Risposta più breve del modello in token. | 
| eval/tokens/response\_max | Risposta più lunga del modello in token. | 
| eval/tokens/response\_std | Deviazione standard delle lunghezze di risposta. Una varianza elevata può indicare un comportamento incoerente dell'agente. | 

### `Trasforma le metriche (/) eval/turns`
<a name="model-customize-mtrl-evaluation-results-turn"></a>


| Metrica | Description | 
| --- | --- | 
| eval/turns/mean | Numero medio di turni per implementazione. I valori elevati possono indicare che l'agente sta ripetendo un ciclo continuo o sta riprovando eccessivamente. | 
| eval/turns/min | Minor numero di turni in qualsiasi rollout. | 
| eval/turns/max | La maggior parte dei turni in ogni rollout. Valori molto alti suggeriscono che l'agente sia rimasto bloccato senza risolvere il problema. | 

### Metriche di probabilità di log (`eval/logprob/`)
<a name="model-customize-mtrl-evaluation-results-logprob"></a>


| Metrica | Description | 
| --- | --- | 
| eval/logprob/nz\_mean | Probabilità logaritmica media di token diversi da zero (senza padding). Valori vicini a 0 indicano un'elevata affidabilità del modello. | 
| eval/logprob/nz\_min | Token con la probabilità logaritmica più bassa (previsione meno affidabile). | 
| eval/logprob/nz\_max | Token con la più alta probabilità logaritmica (previsione più affidabile). | 
| eval/logprob/nz\_std | Deviazione standard di probabilità logaritmiche diverse da zero. Valori bassi significano confidenza costantemente elevata. | 
| eval/logprob/zero\_frac | Frazione di token con probabilità logaritmica esattamente pari a zero (probabilità 1,0), tipicamente token con imbottitura o token forzati. | 
| eval/logprob/zero\_count | Numero totale di token zero-logprob. | 
| eval/logprob/zero\_per\_group | Token zero-logprob medi per gruppo di prompt. | 

### Metriche temporali (`timing_s/`)
<a name="model-customize-mtrl-evaluation-results-timing"></a>


| Metrica | Description | 
| --- | --- | 
| timing\_s/eval | Tempo totale dell'orologio da parete per la valutazione in secondi. Dividi eval/reward/num\_prompts per il tempo medio per richiesta. | 

### Come diagnosticare schemi comuni
<a name="model-customize-mtrl-evaluation-results-diagnose"></a>


| Pattern | Causa probabile | 
| --- | --- | 
| pass\_at\_1 = 0, alto turns/mean | L'agente esegue il loop senza risolvere i compiti. Controlla l'utilizzo degli utensili e i modelli di azione nelle traiettorie. | 
| pass\_at\_1 = 0, basso tokens/response\_mean | Agente che produce risposte molto brevi (probabilmente vuote o malformate). Verifica il formato del prompt e la compatibilità del modello. | 
| Alto turns/max con basso turns/min | L'agente mostra un comportamento incoerente tra i prompt. Alcune attività potrebbero essere molto più difficili o l'agente potrebbe non riuscire a eseguire interazioni con strumenti specifici. | 
| Alta confidenza (logprob/nz\_meanprossima allo 0) ma bassa ricompensa | Il modello produce con sicurezza risultati errati. Potrebbe essere necessaria una maggiore diversità dei dati di addestramento o un perfezionamento del segnale di ricompensa. | 
| zero\_frac = 1.0in ricompensa | Fallimento completo. Verificate la distribuzione degli agenti, la connettività degli strumenti e che il formato del set di dati di valutazione sia corretto. | 

 Per risultati non elaborati, esamina gli artefatti scritti nel `S3OutputPath` modo specificato in. `OutputDataConfig` 

## Limiti, &amp; quote per la valutazione
<a name="model-customize-mtrl-evaluation-limits"></a>

 Utilizza le quote di AWS servizio per richiedere un aumento del limite del numero massimo di lavori di valutazione simultanei. 


| Quota | Predefinita | 
| --- | --- | 
| numero massimo di lavori simultanei di rft-evaluation-job | 1 | 