

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à.

# Valuta i modelli ospitati su SageMaker Inference
<a name="nova-eval-on-sagemaker-inference"></a>

Questa guida spiega come valutare i tuoi modelli Amazon Nova personalizzati distribuiti su endpoint di SageMaker inferenza utilizzando [Inspect AI](https://github.com/UKGovernmentBEIS/inspect_ai), un framework di valutazione open source.

**Nota**  
[Per una guida pratica, consulta il notebook Quickstart di Inspect AI. SageMaker ](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb)

## Panoramica di
<a name="nova-eval-sagemaker-overview"></a>

Puoi valutare i tuoi modelli Amazon Nova personalizzati distribuiti sugli SageMaker endpoint utilizzando benchmark standardizzati della comunità di ricerca sull'intelligenza artificiale. Questo approccio ti consente di:
+ Valuta modelli Amazon Nova personalizzati (ottimizzati, distillati o adattati in altro modo) su larga scala
+ Esegui valutazioni con inferenza parallela su più istanze di endpoint
+ Confronta le prestazioni dei modelli utilizzando benchmark come MMLU, TruthfulQA e HumanEval
+  SageMaker Effettua l'integrazione con la tua infrastruttura esistente

## Modelli supportati
<a name="nova-eval-sagemaker-supported-models"></a>

Il provider di SageMaker inferenza funziona con:
+ Modelli Amazon Nova (Nova Micro, Nova Lite, Nova Lite 2)
+ Modelli distribuiti tramite server di inferenza compatibili con VLLM o OpenAI
+ Qualsiasi endpoint che supporti il formato API OpenAI Chat Completions

## Prerequisiti
<a name="nova-eval-sagemaker-prerequisites"></a>

Prima di iniziare, assicurati di disporre dei seguenti elementi:
+ E Account AWS con le autorizzazioni per creare e richiamare endpoint SageMaker 
+ AWS credenziali configurate tramite variabili di ambiente AWS CLI o ruolo IAM
+ Python 3.9 o versioni successive

**Autorizzazioni IAM richieste**

Il tuo utente o ruolo IAM necessita delle seguenti autorizzazioni:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:InvokeEndpoint",
        "sagemaker:DescribeEndpoint"
      ],
      "Resource": "arn:aws:sagemaker:*:*:endpoint/*"
    }
  ]
}
```

## Fase 1: Implementazione di un endpoint SageMaker
<a name="nova-eval-sagemaker-step1"></a>

Prima di eseguire le valutazioni, è necessario un endpoint di SageMaker inferenza che esegua il modello.

Per istruzioni sulla creazione di un endpoint di SageMaker inferenza con i modelli Amazon Nova, consulta. [Nozioni di base](nova-sagemaker-inference-getting-started.md)

Una volta che l'endpoint è in `InService` stato, annota il nome dell'endpoint da utilizzare nei comandi di valutazione.

## Fase 2: Installare le dipendenze di valutazione
<a name="nova-eval-sagemaker-step2"></a>

Crea un ambiente virtuale Python e installa i pacchetti richiesti.

```
# Create virtual environment
python3.12 -m venv venv
source venv/bin/activate

# Install uv for faster package installation
pip install uv

# Install Inspect AI and evaluation benchmarks
uv pip install inspect-ai inspect-evals

# Install AWS dependencies
uv pip install aioboto3 boto3 botocore openai
```

## Fase 3: Configurare le credenziali AWS
<a name="nova-eval-sagemaker-step3"></a>

Scegli uno dei seguenti metodi di autenticazione:

**Opzione 1: AWS CLI (consigliata)**

```
aws configure
```

Inserisci AWS l'ID della chiave di accesso, la chiave di accesso segreta e la regione predefinita quando richiesto.

**Opzione 2: variabili di ambiente**

```
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-west-2
```

**Opzione 3: ruolo IAM**

Se è in esecuzione su Amazon EC2 o SageMaker notebook, il ruolo IAM dell'istanza viene utilizzato automaticamente.

**Verifica le credenziali**

```
import boto3

sts = boto3.client('sts')
identity = sts.get_caller_identity()
print(f"Account: {identity['Account']}")
print(f"User/Role: {identity['Arn']}")
```

## Fase 4: Installare il provider SageMaker
<a name="nova-eval-sagemaker-step4"></a>

Il SageMaker provider consente a Inspect AI di comunicare con gli SageMaker endpoint. [Il processo di installazione del provider è semplificato nel notebook quickstart.](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb)

## Fase 5: Scarica i benchmark di valutazione
<a name="nova-eval-sagemaker-step5"></a>

Clona il repository Inspect Evals per accedere ai benchmark standard:

```
git clone https://github.com/UKGovernmentBEIS/inspect_evals.git
```

Questo repository include benchmark come:
+ MMLU e MMLU-Pro (conoscenza e ragionamento)
+ TruthfulQA (veridicità)
+ HumanEval (generazione di codice)
+ GSM8K (ragionamento matematico)

## Fase 6: Eseguire le valutazioni
<a name="nova-eval-sagemaker-step6"></a>

Esegui una valutazione utilizzando il tuo SageMaker endpoint:

```
cd inspect_evals/src/inspect_evals/

inspect eval mmlu_pro/mmlu_pro.py \
  --model sagemaker/my-nova-endpoint \
  -M region_name=us-west-2 \
  --max-connections 256 \
  --max-retries 100 \
  --display plain
```

**Parametri chiave**


| Parametro | Predefinita | Description | 
| --- | --- | --- | 
| --max-connections | 10 | Numero di richieste parallele all'endpoint. Scala in base al numero di istanze (ad esempio, 10 istanze × 25 = 250). | 
| --max-retries | 3 | Riprova per richieste non riuscite. Usa 50-100 per valutazioni di grandi dimensioni. | 
| -M region\$1name | us-east-1 | AWS regione in cui è distribuito l'endpoint. | 
| -M read\$1timeout | 600 | Timeout della richiesta in secondi. | 
| -M connect\$1timeout | 60 | Timeout della connessione in secondi. | 

**Consigli di ottimizzazione**

Per un endpoint a più istanze:

```
# 10-instance endpoint example
--max-connections 250   # ~25 connections per instance
--max-retries 100       # Handle transient errors
```

Un'impostazione `--max-connections` troppo alta potrebbe sovraccaricare l'endpoint e causare un rallentamento. Impostarlo su un valore troppo basso comporta un sottoutilizzo della capacità.

## Fase 7: Visualizza i risultati
<a name="nova-eval-sagemaker-step7"></a>

Avvia il visualizzatore Inspect AI per analizzare i risultati della valutazione:

```
inspect view
```

Il visualizzatore mostra:
+ Punteggi e metriche complessivi
+ Risultati per campione con risposte del modello
+ Analisi degli errori e modelli di guasto

## Gestione degli endpoint
<a name="nova-eval-sagemaker-managing-endpoints"></a>

**Aggiornare un endpoint**

Per aggiornare un endpoint esistente con un nuovo modello o configurazione:

```
import boto3

sagemaker = boto3.client('sagemaker', region_name=REGION)

# Create new model and endpoint configuration
# Then update the endpoint
sagemaker.update_endpoint(
    EndpointName=EXISTING_ENDPOINT_NAME,
    EndpointConfigName=NEW_ENDPOINT_CONFIG_NAME
)
```

**Eliminare un endpoint**

```
sagemaker.delete_endpoint(EndpointName=ENDPOINT_NAME)
```

## Introduzione di benchmark personalizzati
<a name="nova-eval-sagemaker-custom-benchmarks"></a>

Puoi aggiungere nuovi benchmark a Inspect AI utilizzando il seguente flusso di lavoro:

1. Studia il formato del set di dati e le metriche di valutazione del benchmark

1. Rivedi implementazioni simili in `inspect_evals/`

1. Crea un file di attività che converta i record del set di dati in esempi di Inspect AI

1. Implementa risolutori e punteggi appropriati

1. Esegui la convalida con una piccola esecuzione di test

Esempio di struttura delle attività:

```
from inspect_ai import Task, task
from inspect_ai.dataset import hf_dataset
from inspect_ai.scorer import choice
from inspect_ai.solver import multiple_choice

@task
def my_benchmark():
    return Task(
        dataset=hf_dataset("dataset_name", split="test"),
        solver=multiple_choice(),
        scorer=choice()
    )
```

## Risoluzione dei problemi
<a name="nova-eval-sagemaker-troubleshooting"></a>

**Problemi comuni**

**Limitazione o timeout degli endpoint**
+ Ridurre `--max-connections`
+ Aumentare `--max-retries`
+ Controlla le CloudWatch metriche degli endpoint per problemi di capacità

**Errori di autenticazione**
+ Verifica che AWS le credenziali siano configurate correttamente
+ Verifica che le autorizzazioni IAM includano `sagemaker:InvokeEndpoint`

**Errori del modello**
+ Verifica che l'endpoint sia in `InService` stato
+ Verifica che il modello supporti il formato API OpenAI Chat Completions

## Risorse correlate
<a name="nova-eval-sagemaker-related-resources"></a>
+ [Ispeziona la documentazione AI](https://inspect.ai-safety-institute.org.uk/)
+ [Ispeziona il repository Evals](https://github.com/UKGovernmentBEIS/inspect_evals)
+ [SageMaker Guida per gli sviluppatori](https://docs.aws.amazon.com//sagemaker/latest/dg/whatis.html)
+ [Implementa modelli per l'inferenza](https://docs.aws.amazon.com//sagemaker/latest/dg/deploy-model.html)
+ [Configurazione di AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/cli-chap-configure.html)