

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Évaluer les modèles hébergés sur SageMaker Inference
<a name="nova-eval-on-sagemaker-inference"></a>

Ce guide explique comment évaluer vos modèles Amazon Nova personnalisés déployés sur des points de terminaison d' SageMaker inférence à l'aide d'[Inspect AI](https://github.com/UKGovernmentBEIS/inspect_ai), un framework d'évaluation open source.

**Note**  
Pour une présentation pratique, consultez le bloc-notes de [démarrage rapide SageMaker Inspect AI](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb).

## Présentation de
<a name="nova-eval-sagemaker-overview"></a>

Vous pouvez évaluer vos modèles Amazon Nova personnalisés déployés sur des SageMaker terminaux à l'aide de benchmarks standardisés élaborés par la communauté des chercheurs en intelligence artificielle. Cette approche vous permet de :
+ Évaluez des modèles Amazon Nova personnalisés (affinés, distillés ou autrement adaptés) à grande échelle
+ Exécutez des évaluations par inférence parallèle sur plusieurs instances de point de terminaison
+ Comparez les performances des modèles à l'aide de benchmarks tels que MMLU, TruthfulQA et HumanEval
+ Intégrez à votre SageMaker infrastructure existante

## Modèles pris en charge
<a name="nova-eval-sagemaker-supported-models"></a>

Le fournisseur SageMaker d'inférence travaille avec :
+ Modèles Amazon Nova (Nova Micro, Nova Lite, Nova Lite 2)
+ Modèles déployés via des serveurs d'inférence compatibles vLLM ou OpenAI
+ Tout point de terminaison compatible avec le format d'API OpenAI Chat Completions

## Conditions préalables
<a name="nova-eval-sagemaker-prerequisites"></a>

Avant de commencer, assurez-vous de disposer des éléments suivants :
+ Et Compte AWS avec les autorisations nécessaires pour créer et invoquer des points de SageMaker terminaison
+ AWS informations d'identification AWS CLI configurées via des variables d'environnement ou un rôle IAM
+ Python 3.9 ou supérieur

**Autorisations IAM requises**

Votre utilisateur ou rôle IAM a besoin des autorisations suivantes :

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

## Étape 1 : Déployer un SageMaker point de terminaison
<a name="nova-eval-sagemaker-step1"></a>

Avant d'exécuter des évaluations, vous avez besoin d'un point de terminaison d' SageMaker inférence exécutant votre modèle.

Pour obtenir des instructions sur la création d'un point de terminaison d' SageMaker inférence avec les modèles Amazon Nova, consultez[Démarrage](nova-sagemaker-inference-getting-started.md).

Une fois que votre terminal est en `InService` état, notez le nom du point de terminaison à utiliser dans les commandes d'évaluation.

## Étape 2 : Installation des dépendances d'évaluation
<a name="nova-eval-sagemaker-step2"></a>

Créez un environnement virtuel Python et installez les packages requis.

```
# 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
```

## Étape 3 : Configuration des AWS informations d'identification
<a name="nova-eval-sagemaker-step3"></a>

Choisissez l'une des méthodes d'authentification suivantes :

**Option 1 : AWS CLI (recommandée)**

```
aws configure
```

Entrez votre ID de clé AWS d'accès, votre clé d'accès secrète et votre région par défaut lorsque vous y êtes invité.

**Option 2 : variables d'environnement**

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

**Option 3 : rôle IAM**

Si l'instance est exécutée sur Amazon EC2 ou sur SageMaker des ordinateurs portables, le rôle IAM de l'instance est automatiquement utilisé.

**Vérifier les informations d'identification**

```
import boto3

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

## Étape 4 : Installation du SageMaker fournisseur
<a name="nova-eval-sagemaker-step4"></a>

Le SageMaker fournisseur permet à Inspect AI de communiquer avec vos SageMaker terminaux. Le processus d'installation du fournisseur est rationalisé dans le [bloc-notes de démarrage rapide](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb).

## Étape 5 : Téléchargez les benchmarks d'évaluation
<a name="nova-eval-sagemaker-step5"></a>

Clonez le référentiel Inspect Evals pour accéder aux benchmarks standard :

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

Ce référentiel inclut des benchmarks tels que :
+ MMLU et MMLU-Pro (connaissances et raisonnement)
+ TruthfulQA (véracité)
+ HumanEval (génération de code)
+ GSM8K (raisonnement mathématique)

## Étape 6 : Exécuter les évaluations
<a name="nova-eval-sagemaker-step6"></a>

Exécutez une évaluation à l'aide de votre SageMaker point de terminaison :

```
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
```

**Principaux paramètres**


| Paramètre | Par défaut | Description | 
| --- | --- | --- | 
| --max-connections | 10 | Nombre de requêtes parallèles adressées au point de terminaison. Echelle en fonction du nombre d'instances (par exemple, 10 instances × 25 = 250). | 
| --max-retries | 3 | Réessayez en cas d'échec des demandes. Utilisez 50-100 pour les évaluations de grande envergure. | 
| -M region\$1name | us-east-1 | AWS région dans laquelle votre terminal est déployé. | 
| -M read\$1timeout | 600 | Délai d'expiration de la demande en secondes. | 
| -M connect\$1timeout | 60 | Délai d'expiration de la connexion en secondes. | 

**Recommandations de réglage**

Pour un point de terminaison multi-instance :

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

Un réglage `--max-connections` trop élevé risque de submerger le terminal et de provoquer un ralentissement. Si elle est trop basse, la capacité est sous-utilisée.

## Étape 7 : Afficher les résultats
<a name="nova-eval-sagemaker-step7"></a>

Lancez le visualiseur Inspect AI pour analyser les résultats de l'évaluation :

```
inspect view
```

Le visualiseur affiche :
+ Scores et indicateurs globaux
+ Résultats par échantillon avec réponses du modèle
+ Analyse des erreurs et modèles de défaillance

## Gestion des points de terminaison
<a name="nova-eval-sagemaker-managing-endpoints"></a>

**Mettre à jour un terminal**

Pour mettre à jour un point de terminaison existant avec un nouveau modèle ou une nouvelle configuration :

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

**Supprimer un point de terminaison**

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

## Intégration de benchmarks personnalisés
<a name="nova-eval-sagemaker-custom-benchmarks"></a>

Vous pouvez ajouter de nouveaux points de référence à Inspect AI à l'aide du flux de travail suivant :

1. Étudier le format de l'ensemble de données de référence et les mesures d'évaluation

1. Passez en revue les implémentations similaires dans `inspect_evals/`

1. Créez un fichier de tâches qui convertit les enregistrements de jeux de données en échantillons Inspect AI

1. Implémenter des solveurs et des évaluateurs appropriés

1. Validez avec un petit essai

Exemple de structure de tâches :

```
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()
    )
```

## Résolution des problèmes
<a name="nova-eval-sagemaker-troubleshooting"></a>

**Problèmes courants**

**Limitation ou temporisation des terminaux**
+ Réduire `--max-connections`
+ Augmenter `--max-retries`
+ Vérifiez les CloudWatch indicateurs des terminaux pour détecter les problèmes de capacité

**Erreurs d'authentification**
+ Vérifiez que les AWS informations d'identification sont correctement configurées
+ Vérifiez que les autorisations IAM incluent `sagemaker:InvokeEndpoint`

**Erreurs de modèle**
+ Vérifiez que le terminal est en `InService` état
+ Vérifiez que le modèle supporte le format d'API OpenAI Chat Completions

## Ressources connexes
<a name="nova-eval-sagemaker-related-resources"></a>
+ [Inspectez la documentation de l'IA](https://inspect.ai-safety-institute.org.uk/)
+ [Inspecter le référentiel Evals](https://github.com/UKGovernmentBEIS/inspect_evals)
+ [SageMaker Manuel du développeur](https://docs.aws.amazon.com//sagemaker/latest/dg/whatis.html)
+ [Déployer des modèles à des fins d'inférence](https://docs.aws.amazon.com//sagemaker/latest/dg/deploy-model.html)
+ [Configuration du AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/cli-chap-configure.html)