

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 Inspect AI Container
<a name="nova-eval-inspect-ai-container"></a>

Le conteneur SageMaker Inspect AI exécute des évaluations du modèle LLM sur SageMaker Training Jobs. Le conteneur utilise [ Inspect AI ](https://inspect.ai-safety-institute.org.uk/) pour fournir un processus d'évaluation standardisé pour les modèles déployés pour SageMaker déduire des points de terminaison ou Amazon Bedrock, y compris les modèles Amazon Nova 1.0 (Micro, Lite, Pro) et 2.0 (Lite 2).

Les approches [ d'évaluation précédentes ](https://docs.aws.amazon.com/nova/latest/nova2-userguide/nova-model-evaluation.html) (basées sur [ lighteval](https://github.com/huggingface/lighteval)) associaient étroitement l'inférence hors ligne et la logique d'évaluation, ce qui limitait la flexibilité quant à la manière dont les modèles pouvaient être servis et testés. Le conteneur Inspect AI dissocie complètement la logique d'évaluation de l'inférence.

## Vue d’ensemble
<a name="nova-eval-container-overview"></a>

Les principaux avantages sont les suivants :
+ **Apportez vos propres critères de référence ** : rédigez des tâches d'évaluation au format Inspect AI, puis intégrez des tâches d'évaluation spécifiques à un domaine sans dépendre d'une équipe centralisée pour les intégrer.
+ **Évaluez à l'aide de différentes options d'inférence ** : fonctionne avec SageMaker Inference (point de terminaison existant ou création à la volée), Amazon Bedrock et d'autres backends d'inférence entrants.
+ **Réalisez des itérations plus rapidement ** : passez du développement de benchmarks à l'évaluation de la production sans modifier l'infrastructure. L'intégration d'une nouvelle référence, qui prenait auparavant plusieurs jours, se fait en quelques minutes.
+ **Exécutez à grande échelle ** : regroupez plusieurs benchmarks en une seule tâche, associez des benchmarks standard de la bibliothèque inspect-evals à vos propres tâches personnalisées dans la même tâche.
+ **Un point d'entrée pour toutes les techniques d'entraînement ** : que votre modèle ait été affiné avec SFT (SMTJ, SMHP), CPT (SMHP) ou RFT (SMTJ, SMHP), le conteneur l'évalue via la même interface. L'évaluation des points de contrôle à mi-entraînement enregistrés à des étapes spécifiques est également prise en charge (par exemple, étape 500, étape 1000) en pointant `model_s3_uri` sur le chemin du point de contrôle.

### Comment ça marche
<a name="nova-eval-container-how-it-works"></a>

Vous fournissez deux entrées au conteneur :

1. Un fichier de configuration YAML (recette) qui définit le fournisseur d'inférence, les benchmarks et les paramètres d'évaluation

1. Fichiers de référence (scripts Python avec le `@task` décorateur) chargés sur Amazon S3

Le conteneur gère la gestion des terminaux, l'exécution des évaluations et la collecte des résultats. Une fois la tâche d'entraînement terminée, les résultats sont écrits dans l'emplacement de sortie S3 que vous avez spécifié.

## Image de conteneur
<a name="nova-eval-container-images"></a>

Le tableau suivant répertorie les URI des images de conteneurs Inspect AI par AWS région.


| Région | URI de l'image de conteneur | 
| --- | --- | 
| us-east-1 | 763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest | 
| us-west-2 | 763104351884.dkr.ecr.us-west-2.amazonaws.com/sagemaker-inspect-ai:latest | 
| eu-west-2 | 763104351884.dkr.ecr.eu-west-2.amazonaws.com/sagemaker-inspect-ai:latest | 

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

Avant de commencer, assurez-vous de disposer des ressources et des accès suivants.


| Exigence | Description | 
| --- | --- | 
| AWS compte avec SageMaker accès | Un actif Compte AWS autorisé à créer des emplois SageMaker de formation | 
| compartiment S3 | Un compartiment pour stocker vos recettes d'évaluation, vos fichiers de référence et vos résultats de sortie | 
| Rôle d'exécution IAM | Un rôle que SageMaker vous pouvez assumer pour accéder à vos ressources | 
| SageMaker point de terminaison d'inférence pour l'accès à Amazon Bedrock | Un point de terminaison de modèle déployé ou un accès au modèle Amazon Bedrock pour le modèle que vous souhaitez évaluer | 
| AWS CLI ou SageMaker Python SDK | Outils pour soumettre des offres de formation et gérer les ressources | 
| Réservation de capacité (grands modèles) | Pour les modèles nécessitant des instances accélérées (telles que p5 pour Nova Lite 2), contactez le AWS support pour réserver de la capacité pour SageMaker Inference ou Amazon Bedrock | 

## Étape 1 : configurer les autorisations IAM
<a name="nova-eval-container-step1"></a>

La tâche SageMaker de formation s'exécute dans le cadre d'un rôle d'exécution que vous fournissez. Ce rôle a besoin d'autorisations pour lire des benchmarks depuis S3, écrire des résultats, invoquer le point de terminaison d'inférence et écrire CloudWatch des journaux.

**1.1 Création de la politique de confiance **

Enregistrez les informations suivantes sous `trust_policy.json` :

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**1.2 Création du rôle **

```
aws iam create-role \
  --role-name InspectLensEvalRole \
  --assume-role-policy-document file://trust_policy.json
```

**1.3 Joindre la politique d'autorisations **

Enregistrez ce qui suit sous`eval_policy.json`, en remplaçant toutes les valeurs d'espace réservé (`REGION`,`ACCOUNT_ID`, noms de compartiment) par vos valeurs :

**Étendue jusqu'aux ressources utilisées**  
Réduisez l'ARN de chaque ressource aux seules ressources dont vous avez besoin. La politique ci-dessous fournit un modèle de départ : limitez les noms de compartiments, les ARN des terminaux et les autres ressources en fonction de votre environnement.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "S3ReadBenchmarkData",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::YOUR_BENCHMARK_BUCKET",
        "arn:aws:s3:::YOUR_BENCHMARK_BUCKET/*"
      ]
    },
    {
      "Sid": "S3WriteResults",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::YOUR_RESULTS_BUCKET",
        "arn:aws:s3:::YOUR_RESULTS_BUCKET/*"
      ]
    },
    {
      "Sid": "SageMakerInvokeExistingEndpoint",
      "Effect": "Allow",
      "Action": [
        "sagemaker:InvokeEndpoint",
        "sagemaker:InvokeEndpointWithResponseStream",
        "sagemaker:DescribeEndpoint"
      ],
      "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*"
    },
    {
      "Sid": "BedrockInference",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": [
        "arn:aws:bedrock:REGION::foundation-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:inference-profile/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:provisioned-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:imported-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model-deployment/*"
      ]
    },
    {
      "Sid": "BedrockCustomModelAccess",
      "Effect": "Allow",
      "Action": [
        "bedrock:GetCustomModel",
        "bedrock:GetImportedModel",
        "bedrock:GetProvisionedModelThroughput",
        "bedrock:GetCustomModelDeployment",
        "bedrock:GetInferenceProfile"
      ],
      "Resource": [
        "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:imported-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:provisioned-model/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model-deployment/*",
        "arn:aws:bedrock:REGION:ACCOUNT_ID:inference-profile/*"
      ]
    },
    {
      "Sid": "SageMakerCreateEndpointLifecycle",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateModel",
        "sagemaker:DescribeModel",
        "sagemaker:DeleteModel",
        "sagemaker:CreateEndpointConfig",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:DeleteEndpointConfig",
        "sagemaker:CreateEndpoint",
        "sagemaker:DescribeEndpoint",
        "sagemaker:DeleteEndpoint",
        "sagemaker:InvokeEndpoint",
        "sagemaker:InvokeEndpointWithResponseStream"
      ],
      "Resource": [
        "arn:aws:sagemaker:REGION:ACCOUNT_ID:model/*",
        "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*",
        "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint-config/*"
      ]
    },
    {
      "Sid": "ECRAuth",
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    },
    {
      "Sid": "PassRoleToSageMaker",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::ACCOUNT_ID:role/InspectLensEvalRole",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "sagemaker.amazonaws.com"
        }
      }
    },
    {
      "Sid": "VPCNetworkingForEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudWatchLogs",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/sagemaker/TrainingJobs:*",
        "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/sagemaker/Endpoints/*"
      ]
    },
    {
      "Sid": "MLflowTrackingServer",
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeMlflowTrackingServer",
        "sagemaker:CreatePresignedMlflowTrackingServerUrl"
      ],
      "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:mlflow-tracking-server/*"
    },
    {
      "Sid": "MLflowTrackingOperations",
      "Effect": "Allow",
      "Action": [
        "sagemaker-mlflow:AccessUI",
        "sagemaker-mlflow:CreateExperiment",
        "sagemaker-mlflow:GetExperiment",
        "sagemaker-mlflow:GetExperimentByName",
        "sagemaker-mlflow:SearchExperiments",
        "sagemaker-mlflow:CreateRun",
        "sagemaker-mlflow:GetRun",
        "sagemaker-mlflow:UpdateRun",
        "sagemaker-mlflow:SearchRuns",
        "sagemaker-mlflow:LogMetric",
        "sagemaker-mlflow:LogParam",
        "sagemaker-mlflow:LogBatch",
        "sagemaker-mlflow:SetTag",
        "sagemaker-mlflow:LogArtifact",
        "sagemaker-mlflow:ListArtifacts"
      ],
      "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:mlflow-tracking-server/*"
    },
    {
      "Sid": "KMSForVolumeEncryption",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:CreateGrant",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*"
    }
  ]
}
```

Attachez la stratégie au rôle :

```
aws iam put-role-policy \
  --role-name InspectLensEvalRole \
  --policy-name InspectLensEvalPolicy \
  --policy-document file://eval_policy.json
```

## Étape 2 : Rédigez votre recette d'évaluation
<a name="nova-eval-container-step2"></a>

La recette d'évaluation est un fichier de configuration YAML qui définit la façon dont le conteneur exécute vos évaluations. La recette spécifie le fournisseur d'inférence, les repères, les paramètres d'évaluation et les paramètres de sortie.

Pour des exemples complets, consultez les blocs-notes suivants dans le [ référentiel ](https://github.com/aws-samples/amazon-nova-samples) Amazon Nova Samples sur GitHub :
+ [Evaluer un point de SageMaker terminaison existant ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/inspect_eval_container/eval_sagemaker_endpoint.ipynb)
+ [Évaluez à l'aide d'un terminal géré ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/inspect_eval_container/eval_managed_endpoint.ipynb)
+ [Evaluer un modèle Amazon Bedrock ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/inspect_eval_container/eval_bedrock_model.ipynb)

### Option A : évaluer un point de SageMaker terminaison existant
<a name="nova-eval-container-option-a"></a>

Utilisez cette option lorsqu'un modèle est déjà déployé sur un point de terminaison d' SageMaker inférence.

```
inference_provider:
  sagemaker_endpoint:
    endpoint_name: "my-existing-endpoint"
    region: "us-east-1"

benchmarks:
  s3_path: "s3://your-bucket/benchmarks/my_benchmarks/"
  tasks:
    - name: mmlu

eval:
  max_connections: 10
  max_retries: 100
  timeout: 600

output:
  s3_path: "s3://your-bucket/eval-results/"
```

### Option B : créer un point de terminaison, évaluer, puis nettoyer
<a name="nova-eval-container-option-b"></a>

Utilisez cette option pour que le conteneur déploie une base Amazon Nova ou un modèle affiné, exécute des évaluations et démantèle automatiquement le point de terminaison. Il s'agit de l'approche recommandée pour les cycles d'évaluation ponctuels. Récupérez le dernier conteneur SageMaker d'inférence dans la documentation des images [ de conteneurs ](https://docs.aws.amazon.com/nova/latest/userguide/nova-model-sagemaker-inference.html#nova-sagemaker-inference-container-images) Amazon Nova SageMaker Inference.

```
inference_provider:
  sagemaker_endpoint:
    endpoint_name: null                 # null = create new endpoint
    model_s3_uri: "s3://your-bucket/models/nova-micro/"
    inference_image_uri: "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-inference-repo:SM-Inference-latest"
    instance_type: "ml.p5.48xlarge"
    instance_count: 1
    execution_role_arn: "arn:aws:iam::ACCOUNT_ID:role/InspectLensEvalRole"
    region: "us-east-1"
    context_length: "16000"
    max_concurrency: "32"
    cleanup_endpoint: true              # Auto-delete after eval

benchmarks:
  s3_path: "s3://your-bucket/benchmarks/my_benchmarks/"
  tasks:
    - name: mmlu_pro
    - name: arc_c
    - name: boolq

eval:
  fail_on_error: false
  decoding:
    temperature: 0.0
    top_p: 1.0
    top_k: -1
    max_tokens: 16000
    reasoning_effort: null
  max_connections: 16
  max_retries: 100
  timeout: 600
  extra_args:
    - "-M"
    - "completion_mode=True"
    - "--logprobs"
    - "--top-logprobs"
    - "5"

output:
  s3_path: "s3://your-bucket/eval-results/"
```

**Remarque sur `model_s3_uri`**  
**Modèles Amazon Nova GA (points de contrôle de base) ** : par exemple, `s3://escrow-nova-model-708977205387-us-east-1/nova-lite-2/prod/` — SageMaker gère l'accès automatiquement, aucune autorisation S3 supplémentaire n'est requise.
**Modèles Amazon Nova personnalisés (points de contrôle après la formation) ** : `s3://customer-escrow-ACCOUNT_ID-SUFFIX/YOUR_RUN_NAME/outputs/checkpoints/step_N/` — il s'agit du parcours d'entiercement à partir des résultats de votre travail de formation.

**Ressources gérées pour les terminaux**  
Accordez l'autorisation facultative suivante à votre rôle d'exécution afin que le conteneur puisse étiqueter les ressources d'inférence gérées avec le nom de la tâche de formation d'origine et l'ARN. Les ressources balisées incluent le point de terminaison, la configuration et le modèle du point de terminaison. Cela permet d'identifier les ressources en cas d'interruption du nettoyage. Le conteneur applique des balises uniquement lorsqu'il est exécuté en tant que tâche d' SageMaker entraînement.  

```
{
  "Sid": "SageMakerTagManagedResources",
  "Effect": "Allow",
  "Action": "sagemaker:AddTags",
  "Resource": [
    "arn:aws:sagemaker:REGION:ACCOUNT_ID:model/*",
    "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*",
    "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint-config/*"
  ]
}
```
Le conteneur applique les balises suivantes aux ressources gérées :  


| Clé de balise | Exemple de valeur | 
| --- | --- | 
| sagemaker-inspect-ai:TrainingJobName | my-eval-job-20260828-145940 | 
| sagemaker-inspect-ai:TrainingJobArn | arn:aws:sagemaker:us-east-1:123456789012:training-job/my-eval-job-20260828-145940 | 
Les sources externes peuvent interrompre la gestion des ressources pendant l'exécution. Pour plus d'informations sur la gestion des ressources restantes, consultez. [Résolution des problèmes](#nova-eval-container-troubleshooting)

### Option C : évaluer via Amazon Bedrock Runtime
<a name="nova-eval-container-option-c"></a>

Utilisez cette option pour évaluer un modèle disponible via Amazon Bedrock Runtime sans gérer de point de terminaison. Pour plus d'informations sur les options de points de terminaison Amazon Bedrock, consultez la section Points de terminaison [ Amazon Bedrock. ](https://docs.aws.amazon.com/bedrock/latest/userguide/endpoints.html)

```
inference_provider:
  bedrock:
    model_id: amazon.nova-pro-v1:0
    region: us-east-1

benchmarks:
  - name: mmlu
    path: benchmarks/mmlu_pro.py
    limit: 100

eval:
  fail_on_error: false
  decoding:
    temperature: 0.0
    top_p: 1.0
    top_k: -1
    max_tokens: 8192
    reasoning_effort: null
  max_connections: 10
  max_retries: 50
  timeout: 600
  extra_args:
    - "--display"
    - "plain"

output:
  s3_path: s3://your-bucket/eval/output/
```

### Option D : évaluer via Amazon Bedrock Mantle
<a name="nova-eval-container-option-d"></a>

[Amazon Bedrock Mantle ](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-chat-completions-mantle.html) fournit un point de terminaison d'inférence OpenAI compatible pour les modèles disponibles via Amazon Bedrock. Cette option ne nécessite pas d'informations d'identification stockées. Le conteneur génère un jeton porteur de courte durée à partir des informations d'identification IAM de votre rôle d'exécution et l'actualise automatiquement entre les benchmarks.

```
inference_provider:
  openai_compatible_endpoint:
    auth: "bedrock_mantle"
    region: "us-east-1"
    model_name: "us.amazon.nova-pro-v1:0"

benchmarks:
  s3_path: "s3://your-bucket/benchmarks/my_benchmarks/"
  tasks:
    - name: mmlu

eval:
  max_connections: 10
  max_retries: 50
  timeout: 600

output:
  s3_path: s3://your-bucket/eval/output/
```

Ajoutez l'autorisation suivante à votre rôle d'exécution (voir[Étape 1 : configurer les autorisations IAM](#nova-eval-container-step1)) :

```
{
  "Sid": "BedrockMantleInference",
  "Effect": "Allow",
  "Action": [
    "bedrock-mantle:CreateInference",
    "bedrock-mantle:CallWithBearerToken"
  ],
  "Resource": "*"
}
```

Pour obtenir des conseils sur les autorisations, consultez les [ sections Autorisations d'inférence Amazon Bedrock ](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html) et contrôle des autorisations par clé d'[API ](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-permissions.html) dans la documentation Amazon Bedrock.

### Option E : Évaluer un IA ouverte-point de terminaison compatible
<a name="nova-eval-container-option-e"></a>

Utilisez cette option pour effectuer une évaluation via n'importe quel point de terminaison d'API OpenAI compatible, y compris [ SageMaker Inference ](https://aws.amazon.com/blogs/machine-learning/announcing-openai-compatible-api-support-for-amazon-sagemaker-ai-endpoints/) (AWS blog) ou d'autres fournisseurs OpenAI compatibles. Cette option utilise le fournisseur d'API [OpenAI compatible avec Inspect AI ](https://inspect.aisi.org.uk/providers.html#openai-api) sur le site Web d'Inspect AI, qui envoie les informations d'identification configurées sous forme de jeton porteur dans l'`Authorization`en-tête de chaque demande d'inférence. Les jetons du porteur ne sont pas enregistrés par défaut.

**Conseils aux fournisseurs de jetons**  
Consultez toujours la documentation de votre fournisseur de jetons pour connaître ses pratiques de gestion des clés recommandées, ses politiques de rotation et ses conseils de sécurité avant de configurer la livraison des informations d'identification.

**Exigence HTTPS**  
Le protocole HTTPS est requis pour tous les points de terminaison qui utilisent l'authentification par jeton au porteur. Le protocole HTTP n'est autorisé que pour les adresses localhost.

#### Utilisation AWS Gestionnaire de secrets (recommandé)
<a name="nova-eval-container-option-e-secrets"></a>

[AWS Secrets Manager ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) fournit un stockage chiffré, un audit d' CloudTrailaccès et une rotation automatique des clés d'API et d'autres secrets. Stockez la clé API dans Secrets Manager et référencez-la par ARN dans la recette. Le conteneur récupère la clé au moment de l'exécution et s'actualise automatiquement entre les benchmarks.

```
inference_provider:
  openai_compatible_endpoint:
    model_name: "my-model"
    base_url: "https://my-endpoint/v1"
    auth: api_key
    api_key_secret_arn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:prod/my-api-key"
    region: "us-east-1"

benchmarks:
  s3_path: "s3://your-bucket/benchmarks/my_benchmarks/"
  tasks:
    - name: mmlu

eval:
  max_connections: 10
  max_retries: 50
  timeout: 600

output:
  s3_path: s3://your-bucket/eval/output/
```

Ajoutez l'autorisation suivante à votre rôle d'exécution (voir[Étape 1 : configurer les autorisations IAM](#nova-eval-container-step1)) :

```
{
  "Sid": "GetApiKeySecret",
  "Effect": "Allow",
  "Action": "secretsmanager:GetSecretValue",
  "Resource": "arn:aws:secretsmanager:REGION:ACCOUNT_ID:secret:YOUR_SECRET_NAME"
}
```

#### Utilisation des variables d’environnement
<a name="nova-eval-container-option-e-env"></a>

La clé API peut être transmise via la variable d'environnement`INFERENCE_API_KEY`. Consultez la documentation de votre environnement d'exécution pour savoir comment les variables d'environnement sont transmises et quelles en sont les implications en matière de sécurité. Pour SageMaker Training Jobs, les variables d'environnement sont visibles dans les réponses de [ DescribeTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html) l'API et sont limitées à 512 caractères. Pour plus d'informations, consultez la section Variables d'environnement des tâches de [ SageMaker formation](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html#automatic-model-tuning-define-variables).

```
inference_provider:
  openai_compatible_endpoint:
    model_name: "my-model"
    base_url: "https://my-endpoint/v1"
    auth: api_key
    # No key source specified — reads from INFERENCE_API_KEY environment variable

benchmarks:
  s3_path: "s3://your-bucket/benchmarks/my_benchmarks/"
  tasks:
    - name: mmlu

eval:
  max_connections: 10
  max_retries: 50
  timeout: 600

output:
  s3_path: s3://your-bucket/eval/output/
```

Par exemple, sur SageMaker Training Jobs :

```
aws sagemaker create-training-job \
    ...
    --environment '{"INFERENCE_API_KEY": "your-api-key"}'
```

**Configuration des benchmarks **

La `benchmarks` section définit les tâches d'évaluation à exécuter. Vous pouvez enchaîner plusieurs benchmarks en une seule tâche.


| Champ | Obligatoire | Par défaut | Description | 
| --- | --- | --- | --- | 
| name | Oui | — | Un nom descriptif pour l'essai de référence | 
| path | Oui | — | Chemin relatif vers le fichier Python de référence dans votre répertoire de benchmarks S3 | 
| limit | Non | Aucun (tous les échantillons) | Nombre maximum d'échantillons à évaluer. À utiliser pour les tests avant les essais complets. | 
| epochs | Non | 1 | Nombre de fois qu'il faut répéter l'évaluation pour déterminer la signification statistique | 
| task\_args | Non | — | Key-value paires transmises en tant qu'arguments à la fonction de tâche de référence | 

**Configuration de l'évaluation **

La `eval` section contrôle la manière dont le conteneur exécute les évaluations.


| Paramètre | Obligatoire | Par défaut | Description | 
| --- | --- | --- | --- | 
| fail\_on\_error | Non | false | Arrêtez l'évaluation si l'un des échantillons échoue. Réglez sur true pour une validation stricte. | 
| max\_connections | Non | 10 | Nombre de requêtes parallèles adressées au point de terminaison d'inférence | 
| max\_retries | Non | 3 | Nombre de nouvelles tentatives pour les demandes d'inférence ayant échoué | 
| timeout | Non | 600 | Délai d'attente de la demande en secondes pour chaque appel d'inférence | 
| extra\_args | Non | — | Paires clé-valeur supplémentaires transmises directement à la commande d'évaluation Inspect AI | 

**Paramètres de décodage **

Configurez les paramètres de décodage du modèle dans la `eval.decoding` section :


| Paramètre | Obligatoire | Par défaut | Description | 
| --- | --- | --- | --- | 
| temperature | Non | 0.0 | Contrôle le caractère aléatoire de la génération. À utiliser 0.0 pour des résultats de référence déterministes et reproductibles. | 
| top\_p | Non | 1.0 | Seuil d'échantillonnage du noyau. 1.0signifie qu'il n'y a aucune restriction. | 
| top\_k | Non | -1 | Limite le choix des mots aux K symboles les plus probables. -1désactive ce filtre. | 
| max\_tokens | Non | 8192 | Nombre maximum de jetons à générer par réponse. Augmentation pour les points de référence nécessitant de longues chaînes de raisonnement. | 
| reasoning\_effort | Non | null | Contrôle la profondeur du raisonnement pour les modèles qui le prennent en charge (par exemple, les modèles Amazon Nova à réflexion étendue). Options :low,high, ou null pour désactiver. | 

**Configuration de sortie **

La `output` section définit où et comment les résultats d'évaluation sont stockés.


| Champ | Obligatoire | Par défaut | Description | 
| --- | --- | --- | --- | 
| s3\_path | Oui | — | URI S3 où les résultats de l'évaluation sont écrits | 
| output\_format | Non | eval | Format pour les fichiers de résultats. Consultez le tableau suivant pour connaître les options. | 

Les formats de sortie suivants sont disponibles :


| Format | Description | 
| --- | --- | 
| eval | Format Native Inspect AI. Compatible avec inspect view pour une analyse interactive. | 
| csv | Comma-separated valeurs. Convient à l'analyse de feuilles de calcul et aux pipelines de données. | 
| jsonl | Format de lignes JSON. Un objet JSON par ligne pour le traitement du streaming. | 
| json | Format JSON standard. Des résultats complets dans un seul fichier structuré. | 

**Configuration de MLflow **

Vous pouvez éventuellement enregistrer les mesures d'évaluation sur un serveur de suivi MLflow. Ajoutez la `tracking` section à votre recette :

```
tracking:
  mlflow_tracking_arn: null       # ARN of SageMaker MLflow tracking server
  mlflow_experiment_name: "inspectlens" # experiment name
  mlflow_tracing: true          # log full request/response traces
  mlflow_log_artifacts: true       # upload .eval files to MLflow
```


| Champ | Obligatoire | Par défaut | Description | 
| --- | --- | --- | --- | 
| mlflow\_tracking\_arn | Non | null | ARN de votre serveur de suivi SageMaker MLflow. Ce réglage active la journalisation de MLflow. Omettez ou configurez cette option null pour la désactiver. | 
| mlflow\_experiment\_name | Non | objectif d'inspection | Nom de l'expérience MLflow sous laquelle enregistrer les exécutions. | 
| mlflow\_tracing | Non | true | Quandtrue, enregistre les request/response traces complètes pour chaque échantillon. | 
| mlflow\_log\_artifacts | Non | true | Quandtrue, télécharge les fichiers .eval journaux en tant qu'artefacts MLflow. | 

**Référence complète de la recette **

L'exemple suivant montre une recette complète avec toutes les options de configuration disponibles :

```
inference_provider:
  sagemaker_endpoint:
    endpoint_name: my-nova-endpoint
    model_s3_uri: s3://your-bucket/models/my-model/
    inference_image_uri: "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-inference-repo:SM-Inference-latest"
    instance_type: ml.g5.12xlarge
    cleanup_endpoint: true
    region: us-west-2

benchmarks:
  - name: mmlu
    path: benchmarks/mmlu_pro.py
    limit: 100
    epochs: 3
    task_args:
      subject: math
  - name: truthfulqa
    path: benchmarks/truthfulqa.py
    limit: 50

eval:
  fail_on_error: false
  decoding:
    temperature: 0.0
    top_p: 1.0
    top_k: -1
    max_tokens: 8192
    reasoning_effort: null
  max_connections: 256
  max_retries: 50
  timeout: 600
  extra_args:
    - "--display"
    - "plain"

output:
  s3_path: s3://your-bucket/eval/output/
  output_format: eval

tracking:
  mlflow_tracking_arn: "arn:aws:sagemaker:us-west-2:123456789012:mlflow-tracking-server/my-server"
  mlflow_experiment_name: "inspectlens"
  mlflow_tracing: true
  mlflow_log_artifacts: true
```

## Étape 3 : Préparation des fichiers de référence
<a name="nova-eval-container-step3"></a>

Les benchmarks sont des fichiers Python qui utilisent le `@task` décorateur Inspect AI pour définir les tâches d'évaluation. Le référentiel [ inspect-evals ](https://github.com/UKGovernmentBEIS/inspect_evals) fournit plus de 128 benchmarks prêts à l'emploi, ou vous pouvez écrire les vôtres.

**Exemple de référence **

L'exemple suivant montre un indice de référence minimal qui évalue les performances à choix multiples d'un ensemble de données : HuggingFace 

```
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(
            path="cais/mmlu",
            name="abstract_algebra",
            split="test",
        ),
        solver=multiple_choice(),
        scorer=choice(),
    )
```

**Dépendances **

Si votre benchmark nécessite des dépendances supplémentaires, incluez un `pyproject.toml` ou `requirements.txt` dans le même répertoire S3 :

```
[project]
name = "my-benchmark"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
    "datasets>=2.14.0",
]
```

**Pre-installed colis **

Le conteneur comprend les emballages suivants. Vous n'avez pas besoin de les répertorier dans votre`pyproject.toml`.


| Package | Version | 
| --- | --- | 
| Python | 3,12 | 
| inspect-air | 0,3,220 | 
| boto3 | 1,40,61 | 
| aioboto 3 | 15,5,0 | 
| openai | 2.36.0 | 
| débit ml | 3.12.0 | 
| pyyaml | 6.0.3 | 

**Sélection des tâches **

Le `tasks` champ de votre recette contrôle les tâches à exécuter dans un fichier de référence.


| Configuration | Exemple | Comportement | 
| --- | --- | --- | 
| Vide tasks | tasks: [] | Exécute toutes les tâches définies dans le fichier de référence | 
| Filtre de nom | tasks: ["algebra"] | Exécute des tâches dont le nom contient la sous-chaîne « algèbre » | 
| limit | limit: 50 | Limite le nombre d'échantillons évalués par tâche | 
| epochs | epochs: 3 | Répète l'évaluation plusieurs fois pour mesurer la variance | 

## Étape 4 : Préparez votre structure S3
<a name="nova-eval-container-step4"></a>

La structure suivante est une recommandation pour organiser les configurations, les benchmarks et les résultats. Vous pouvez pointer le conteneur vers n'importe quel emplacement S3 ; la structure elle-même n'est pas requise.

```
s3://your-bucket/
├── config/
│   └── inspect_config.yaml       # Your eval recipe
├── benchmarks/
│   └── my_benchmarks/            # Your benchmark Python files
│       ├── pyproject.toml        # Optional: benchmark dependencies
│       ├── my_task.py            # @task decorated functions
│       └── _helpers.py           # Shared utilities
└── output/                       # Results written here
```

Téléchargez vos fichiers sur S3 :

```
# Upload benchmark files
aws s3 cp my_benchmarks/ s3://your-bucket/benchmarks/my_benchmarks/ --recursive

# Upload your eval recipe
aws s3 cp inspect_config.yaml s3://your-bucket/config/inspect_config.yaml
```

## Étape 5 : Soumettre le job de formation
<a name="nova-eval-container-step5"></a>

Soumettez une offre de SageMaker formation pour effectuer votre évaluation. Vous pouvez utiliser le AWS CLI ou le SDK SageMaker Python.

**Option A : AWS CLI**

```
aws sagemaker create-training-job \
    --training-job-name inspect-eval-$(date +%Y%m%d-%H%M%S) \
    --algorithm-specification \
        TrainingImage=763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest,TrainingInputMode=File \
    --role-arn arn:aws:iam::123456789012:role/SageMakerInspectAIRole \
    --resource-config \
        InstanceType=ml.m5.large,InstanceCount=1,VolumeSizeInGB=30 \
    --stopping-condition MaxRuntimeInSeconds=86400 \
    --input-data-config '[
        {
            "ChannelName": "config",
            "DataSource": {
                "S3DataSource": {
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://your-bucket/eval/config/",
                    "S3DataDistributionType": "FullyReplicated"
                }
            }
        }
    ]' \
    --output-data-config S3OutputPath=s3://your-bucket/eval/output/ \
    --region us-west-2
```

**Option B : SDK SageMaker Python v3 **

```
from sagemaker.train.evaluate import InspectAIEvaluator

evaluator = InspectAIEvaluator(
    model="nova-textgeneration-lite",
    bedrock_model_id="us.amazon.nova-lite-v1:0",
    benchmarks_path="s3://your-bucket/benchmarks/my_benchmarks/",
    tasks=[{"name": "my_task", "limit": 100}],
    s3_output_path="s3://your-bucket/eval/output/",
    instance_type="ml.m5.large",
)

execution = evaluator.evaluate()
execution.wait()
execution.show_results()
```

**Paramètres clés **


| Paramètre | Value | Description | 
| --- | --- | --- | 
| TrainingImage | 763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest | L'image du conteneur Inspect AI | 
| InstanceType | ml.m5.large | Type d'instance d'Orchestrator (pas l'instance d'inférence) | 
| VolumeSizeInGB | 30 | Stockage des données de référence et des journaux | 
| MaxRuntimeInSeconds | 86400 | Durée maximale du travail (24 heures) | 
| ChannelName | config | Canal d'entrée contenant vos fichiers de recettes et de référence | 

**Conseils sur le type d'instance d'Orchestrator **

L'instance de tâche de formation exécute la logique d'orchestration de l'évaluation, et non l'inférence du modèle. Choisissez un type d'instance en fonction de votre charge de travail d'évaluation.


| Type d’instance | Cas d’utilisation | Conseils | 
| --- | --- | --- | 
| ml.m5.large | Valeur par défaut recommandée | Suffisant pour la plupart des charges de travail d'évaluation avec un parallélisme modéré | 
| ml.m5.4xlarge | Grandes suites de référence | À utiliser lors de l'exécution de nombreux benchmarks avec des max\_connections valeurs élevées | 
| ml.c5.large | Cost-sensitive | Alternative économique pour des évaluations simples avec un faible parallélisme | 

**Variables d'environnement**

Vous pouvez transmettre des variables d'environnement au conteneur à des fins d'authentification ou de configuration. Ajoutez le `--environment` paramètre à la AWS CLI commande :

```
aws sagemaker create-training-job \
    ...
    --environment '{
        "HF_TOKEN": "hf_your_token_here",
        "HF_HUB_DOWNLOAD_TIMEOUT": "300"
    }'
```

## Étape 6 : Surveiller le travail
<a name="nova-eval-container-step6"></a>

Une fois que vous avez soumis la tâche de formation, vous pouvez suivre sa progression via le AWS CLI ou CloudWatch les journaux.

**Vérifiez le statut du poste **

```
aws sagemaker describe-training-job \
    --training-job-name your-job-name \
    --query "TrainingJobStatus" \
    --output text
```

**Journaux de diffusion **

```
aws logs tail /aws/sagemaker/TrainingJobs \
    --log-stream-name-prefix your-job-name \
    --follow
```

**À quoi s'attendre en matière de journaux **

Les journaux des conteneurs indiquent la progression des étapes suivantes :

1. **Démarrage ** — Initialisation du conteneur et validation de la configuration

1. **Téléchargement du benchmark ** — Téléchargement des fichiers du benchmark et installation des dépendances

1. **Configuration du point de terminaison ** : création ou connexion au point de terminaison d'inférence

1. **Évaluation ** — Exécution de tâches de référence avec des indicateurs de progression

1. **Téléchargement des résultats ** : écriture des résultats dans S3 et éventuellement journalisation dans MLflow

1. **Nettoyage ** : suppression des points de terminaison temporaires si `cleanup_endpoint: true`

**Échéances estimées **


| Étape | Durée estimée | 
| --- | --- | 
| Démarrage du conteneur | 2 à 5 minutes | 
| Création de terminaux (le cas échéant) | 15 à 30 minutes | 
| Évaluation | Varie en fonction de la taille de référence et de la latence du modèle | 
| Nettoyage | 1 à 2 minutes | 

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

Une fois la tâche terminée, consultez les résultats de votre évaluation.

**Afficher avec Inspect AI **

Utilisez le visualiseur Inspect AI pour explorer les résultats de manière interactive directement depuis S3 :

```
inspect view --log-dir s3://your-bucket/eval-results/
```

Cette commande ouvre une interface Web locale dans laquelle vous pouvez parcourir les scores, consulter des échantillons individuels et comparer des essais.

**Téléchargez et partagez **

Pour télécharger les résultats localement :

```
aws s3 cp s3://your-bucket/eval/output/ ./results/ --recursive

INSPECT_LOG_DIR=./results inspect view
```

**Extension VS Code **

L'extension [ Inspect AI VS Code vous ](https://inspect.aisi.org.uk/vscode.html) permet de parcourir les journaux d'évaluation directement depuis S3 sans les télécharger au préalable.

1. Installez l'extension depuis la place de marché VS Code (recherchez « Inspect AI »)

1. Dans la barre d'activité Inspect, localisez le volet Logs et choisissez l'icône du dossier

1. Entrez votre chemin S3 : `s3://your-bucket/eval-results/`

**Structure de sortie **

Chaque évaluation produit un fichier `.eval` journal contenant les sections suivantes :
+ `results.scores`— Scores agrégés pour chaque métrique
+ `samples`— Échantillons d'évaluation individuels avec entrées, sorties et scores
+ `stats`— Statistiques d'exécution, y compris l'utilisation des jetons et la latence
+ `eval.config`— La configuration utilisée pour l'exécution de l'évaluation

**Afficher les résultats dans MLflow (facultatif) **

Si vous avez configuré MLflow dans votre recette, générez une URL présignée pour accéder au serveur de suivi :

```
aws sagemaker create-presigned-mlflow-tracking-server-url \
    --tracking-server-name my-server \
    --region us-west-2
```

Ouvrez l'URL renvoyée dans votre navigateur pour afficher les statistiques, comparer les essais et analyser les tendances entre les évaluations.

## Benchmarks disponibles
<a name="nova-eval-container-benchmarks"></a>

Le conteneur Inspect AI fonctionne avec n'importe quel benchmark écrit au format de tâche Inspect AI. Le référentiel [ inspect-evals ](https://github.com/UKGovernmentBEIS/inspect_evals) fournit plus de 128 repères prêts à l'emploi couvrant des domaines tels que le raisonnement, les connaissances, le codage et la sécurité.

Pour rédiger vos propres benchmarks, consultez la documentation sur la rédaction de tâches [ Inspect AI](https://inspect.aisi.org.uk/tasks.html). Si vous trouvez un indice de référence public qui n'est pas encore disponible dans inspect-evals, vous pouvez utiliser l'invite d'intégration de l'assistant [ AI pour le ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/ai_assisted_benchmark_creation.md) convertir au format Inspect AI.

## Évaluations agentiques
<a name="nova-eval-container-agentic"></a>

Les benchmarks agentiques testent la capacité d'un modèle à effectuer des tâches en plusieurs étapes qui nécessitent l'utilisation d'outils, une planification et un raisonnement itératif. Ces évaluations simulent des scénarios réels dans lesquels le modèle doit appeler des outils, interpréter les résultats et décider des prochaines actions.

**Exigences relatives aux terminaux **

Les évaluations agentiques nécessitent des terminaux qui prennent en charge les fonctionnalités suivantes :
+ **Appel d'outils ** : le point de terminaison doit prendre en charge les appels de fonctions pour permettre au modèle d'invoquer des outils lors de l'évaluation
+ **Taille de contexte importante ** : Multi-turn les conversations avec les résultats des outils nécessitent une longueur de contexte suffisante pour conserver l'historique des conversations

**SageMaker Configuration du point de terminaison d'inférence **

Lorsque vous utilisez un point de terminaison d' SageMaker inférence pour les évaluations des agents, configurez les variables d'environnement suivantes sur votre terminal :


| Variable d'environnement | Value | Description | 
| --- | --- | --- | 
| ENABLE\_TOOL\_CALLING | True | Active la prise en charge des appels d'outils sur le point de terminaison d'inférence | 
| CONTEXT\_LENGTH | Suffisant pour plusieurs tours | Définissez une valeur suffisamment grande pour permettre des conversations à plusieurs tours avec les résultats des outils | 

Pour plus d'informations sur la configuration des points de terminaison Amazon Nova sur SageMaker Inference, voir [ Déployer des modèles Amazon Nova sur. SageMaker ](https://docs.aws.amazon.com/nova/latest/userguide/deploy-sagemaker.html) Pour plus d'informations sur les fonctionnalités et la configuration des conteneurs, consultez la section Fonctionnalités des [ conteneurs](https://docs.aws.amazon.com/nova/latest/userguide/container-features.html).

**Points de terminaison Amazon Bedrock **

Pour les terminaux Amazon Bedrock, l'appel d'outils est pris en charge de manière native pour les modèles compatibles. Pour plus d'informations, consultez la section Utilisation des [ outils avec Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html).

**Commencer à utiliser les évaluations agentiques **

Pour exécuter des évaluations agentiques, remplissez les conditions préalables suivantes :

1. Déployez un terminal avec l'appel d'outils activé

1. Choisissez un benchmark agentic dans le référentiel [ inspect-evals ](https://github.com/UKGovernmentBEIS/inspect_evals) (recherchez les benchmarks qui utilisent des solveurs d'appel d'outils)

1. Configurez votre recette avec des `max_tokens` valeurs `timeout` et des valeurs appropriées pour les interactions multi-tours

**Point de terminaison Amazon Bedrock **
+ Pour une configuration et un déploiement complets, consultez la section Points de terminaison [https://docs.aws.amazon.com/bedrock/latest/userguide/endpoints.html](https://docs.aws.amazon.com/bedrock/latest/userguide/endpoints.html) Amazon Bedrock.
+ Pour obtenir de l'aide concernant les appels d'outils, consultez la section relative aux appels d'outils côté client dans la rubrique Utilisation des [ outils avec Amazon Bedrock. ](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html)

**Exemples de carnets **

Le bloc-notes suivant montre comment exécuter un benchmark d'agent d'appel d'outils avec le conteneur Inspect AI :
+ [tau-bench (basé sur les tâches) ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/inspect_eval_container/eval_tau_bench.ipynb) — Évaluez le raisonnement assisté par des outils sur les tâches du service client à l'aide du conteneur Inspect AI

Pour les benchmarks agentic qui nécessitent un bac à sable Docker, utilisez le SDK Inspect AI :
+ [SWE-bench avec le SDK Inspect AI ](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/sagemaker-inspect-ai/local_inspect_sdk/eval_swe_bench.ipynb) : évaluez les capacités d'ingénierie logicielle à l'aide de Docker Sandbox

**Important**  
Les benchmarks Agentic qui nécessitent un sandbox Docker (tels que SWE-bench) ne sont pas pris en charge dans l'expérience de conteneur Inspect AI. L'environnement SageMaker Training Job ne fournit pas Docker-in-Docker de fonctionnalités. Pour exécuter ces tests, utilisez le SDK [ Inspect AI ](nova-eval-on-sagemaker-inference.md) sur un environnement informatique avec accès à Docker (par exemple, une instance Amazon EC2 ou un SageMaker ordinateur portable sur lequel Docker est installé).

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

Cette section propose des solutions aux problèmes courants liés à l'exécution d'évaluations avec le conteneur Inspect AI.

**Conseil d'itération rapide **

Avant de soumettre une offre de SageMaker formation, testez vos points de référence localement à l'aide du SDK Inspect AI. Exécutez-le `inspect eval my_benchmark.py` sur votre machine locale pour valider les définitions des tâches, les dépendances et la logique de notation avant de l'exécuter à grande échelle.

**InsufficientInstanceCapacity error**

Cette erreur se produit AWS lorsque la capacité est insuffisante pour le type d'instance demandé dans votre région.
+ Essayez un autre type d'instance ou soumettez la tâche dans une autre AWS région
+ Utilisez un autre type d'instance (par exemple, `ml.m5.xlarge` au lieu de`ml.m5.large`)
+ Réessayez la demande après quelques minutes

**AccessDenied error**

Si la tâche de formation échoue avec une erreur d'accès refusé, vérifiez les points suivants :
+ Le rôle ARN dans la configuration de votre tâche est correct
+ La politique de confiance permet `sagemaker.amazonaws.com` d'assumer le rôle
+ Votre utilisateur ou votre rôle est `iam:PassRole` autorisé à jouer le rôle d'exécution
+ Le rôle d'exécution est autorisé à accéder au compartiment S3, au point de terminaison d'inférence ou au modèle Amazon Bedrock

**La création du terminal échoue **

Lors de l'utilisation `cleanup_endpoint: true` avec la création automatique de terminaux, les problèmes suivants peuvent survenir :


| Erreur | Solution | 
| --- | --- | 
| ResourceLimitExceeded | Demandez une augmentation du quota de service pour le type d'instance d'inférence dans votre région | 
| OutOfMemoryError | Utilisez un type d'instance d'inférence plus grand ou réduisez la taille du modèle | 
| Faux model\_s3\_uri | Vérifiez que le chemin S3 pointe vers un répertoire d'artefacts de modèle valide | 
| URI d'image d'inférence incorrect | Vérifiez que l'URI de l'image est correct pour votre région et votre structure de modèle | 
| Endpoint bloqué lors de la création | Vérifiez CloudWatch les journaux du terminal. Le modèle peut échouer aux bilans de santé. Augmentez MaxRuntimeInSeconds si le terminal a besoin de plus de temps. | 

**Nettoyage manuel des ressources gérées **

Lorsque les points de terminaison gérés sont activés, les informations sur les ressources gérées sont enregistrées CloudWatch avec le terme `INFRA` de filtre. Les journaux contiennent des AWS CLI commandes pour le nettoyage manuel si le conteneur ne peut pas être complètement démonté. Exécutez les étapes de terminaison manuelle uniquement lorsque la tâche n'est plus en cours d'exécution.

Exemple de sortie de journal :

```
[WARNING] [INFRA] Managed SMI resources created; auto-deleted on normal completion or stop.
If this job is force-killed or stopped mid-creation, delete them manually:
  aws sagemaker delete-endpoint --endpoint-name inspectlens-ep-1787856688 --region us-east-1
  aws sagemaker delete-endpoint-config --endpoint-config-name inspectlens-config-1787856688 --region us-east-1
  aws sagemaker delete-model --model-name inspectlens-model-1787856688 --region us-east-1
```

Lors de l'arrêt manuel de la tâche par [ stop-training job](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/stop-training-job.html), le conteneur effectue un nettoyage optimal des ressources gérées dans le délai de grâce de 120 secondes. Si les ressources ne peuvent pas être nettoyées, la tâche se termine avec un état d'erreur. Si le nettoyage se termine correctement, la tâche se termine à l'état arrêté.

**HuggingFace délais de téléchargement **

Si les benchmarks qui téléchargent des ensembles de données depuis HuggingFace Hub expirent, définissez la variable d'`HF_HUB_DOWNLOAD_TIMEOUT`environnement sur une valeur plus élevée (en secondes) :

```
--environment '{"HF_HUB_DOWNLOAD_TIMEOUT": "600"}'
```

**Conflits de dépendances de référence **

Si un benchmark échoue en raison de conflits de dépendances avec des packages préinstallés, créez-en un `pyproject.toml` dans le répertoire du benchmark avec des contraintes de version explicites. Le conteneur installe les dépendances de référence de manière isolée afin de minimiser les conflits.

**Les scores d'évaluation semblent erronés **

Si les notes d'évaluation sont étonnamment faibles ou incohérentes, vérifiez les paramètres suivants dans votre recette :
+ **température ** — Réglée sur `0.0` pour obtenir des résultats déterministes et reproductibles
+ **max\_tokens ** — Assurez-vous que la valeur est suffisamment grande pour que le modèle puisse terminer sa réponse
+ **completion\_mode ** — Pour les modèles de base (sans chat), configurez `completion_mode: true` dans votre recette pour utiliser une invite de style de complétion au lieu du format de chat

## Confidentialité des données
<a name="nova-eval-container-data-privacy"></a>

Vos données d'évaluation sont traitées différemment selon le fournisseur d'inférence que vous utilisez.

**SageMaker point de terminaison**

Lorsque vous utilisez un point de terminaison d' SageMaker inférence, toutes les données restent dans votre Compte AWS. Les invites d'évaluation et les réponses modèles ne sont pas envoyées en dehors de votre compte et ne sont pas utilisées pour améliorer les AWS services. Aucune politique de désinscription n'est requise.

**Amazon Bedrock**

Lorsque vous utilisez Amazon Bedrock comme fournisseur d'inférence, vos données sont soumises à la Politique relative aux services Opt-Out d' AWS intelligence artificielle. Pour empêcher que vos données ne soient utilisées pour améliorer les services d' AWS IA, activez la politique de désinscription au niveau AWS des organisations. Pour plus d'informations, consultez les politiques de désactivation des services d'[IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html).


| Fournisseur d'inférence | Opt-out requis | Détails | 
| --- | --- | --- | 
| SageMaker point de terminaison | Non | Les données restent dans votre compte. Non couvert par la politique de désactivation de l'IA. | 
| Amazon Bedrock | Oui | Activez la Opt-Out politique des services d' AWS IA au niveau des organisations pour empêcher l'utilisation des données pour améliorer les services. | 