View a markdown version of this page

Évaluez avec le SDK Inspect AI - Amazon Nova

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.

Évaluez avec le SDK Inspect AI

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, un framework d'évaluation open source.

Note

Pour des présentations pratiques, consultez les exemples de blocs-notes SageMaker Inspect AI.

Vue d’ensemble

Vous pouvez évaluer vos modèles Amazon Nova personnalisés déployés sur les SageMaker terminaux à l'aide de benchmarks standardisés élaborés par la communauté des chercheurs en IA. Cette approche vous permet de :

  • Évaluez des modèles Amazon Nova personnalisés (affinés, distillés ou adaptés) à grande échelle

  • Exécutez des évaluations par inférence parallèle sur plusieurs instances de terminaux

  • 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

Le fournisseur SageMaker d'inférence fonctionne avec :

  • Modèles Amazon Nova (Nova Micro, Nova Lite, Nova Lite 2)

  • Modèles déployés via vLLM ou OpenAI-compatible des serveurs d'inférence

  • Tout point de terminaison prenant en charge le format d'API OpenAI Chat Completions

Conditions préalables

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Et Compte AWS avec des autorisations pour créer et invoquer SageMaker des points de terminaison

  • AWS informations d'identification configurées via AWS CLI, variables d'environnement ou 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éploiement d'un SageMaker terminal

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, consultezDémarrage.

Une fois que votre terminal est en InService état, notez son nom à utiliser dans les commandes d'évaluation.

Étape 2 : installer les dépendances d'évaluation

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 AWS informations d’identification

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 blocs-notes, le rôle IAM de l'instance est utilisé automatiquement.

Vérifiez 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 : Téléchargez les benchmarks d'évaluation

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 5 : Exécuter des évaluations

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

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

Paramètres clés

Paramètre Par défaut Description
--max-connections 10 Nombre de requêtes parallèles adressées au terminal. Échelle en fonction du nombre d'instances (par exemple, 10 instances × 25 = 250).
--max-retries 3 Réessayez pour les demandes qui ont échoué. Utilisez 50-100 pour les évaluations de grande envergure.
-M region_name us-east-1 AWS région dans laquelle votre terminal est déployé.
-M read_timeout 600 Délai d'expiration de la demande en secondes.
-M connect_timeout 60 Délai de 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é peut surcharger le terminal et provoquer un ralentissement. Une valeur trop faible entraîne une sous-utilisation de la capacité.

Étape 6 : Afficher les résultats

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

inspect view

Le visualiseur affiche :

  • Scores et indicateurs globaux

  • Per-sample résultats avec réponses du modèle

  • Analyse des erreurs et modèles de défaillance

Gestion des terminaux

Mettre à jour un terminal

Pour mettre à jour un terminal 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

Vous pouvez ajouter de nouveaux benchmarks à Inspect AI à l'aide du flux de travail suivant :

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

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

  3. Créez un fichier de tâches qui convertit les enregistrements de l'ensemble de données en échantillons Inspect AI

  4. Mettre en œuvre des solveurs et des marqueurs appropriés

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

Problèmes courants

Limitation ou temporisation des terminaux

  • Réduire --max-connections

  • Augmentation --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 prend en charge le format d'API OpenAI Chat Completions