

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.

# Personnalisez un modèle en affinant les armatures dans Amazon Bedrock
<a name="reinforcement-fine-tuning"></a>

Le réglage fin du renforcement est une technique de personnalisation des modèles dans Amazon Bedrock qui améliore les performances du modèle de base en enseignant aux modèles ce qui constitue une « bonne » réponse par le biais de signaux de feedback appelés récompenses. Contrairement aux méthodes de réglage précises traditionnelles qui reposent sur des ensembles de données étiquetés, le réglage fin par renforcement utilise une approche axée sur le feedback qui optimise le modèle de manière itérative afin de maximiser ces récompenses.

## Renfort : affiner les applications et les scénarios
<a name="reinforcement-fine-tuning-when"></a>

Utilisez le réglage précis du renforcement lorsque vous pouvez définir des critères de succès clairs et mesurables pour évaluer la qualité des réponses. Le réglage fin du renforcement excelle dans les domaines où la qualité de sortie peut être mesurée de manière objective, en particulier lorsque plusieurs réponses valides existent ou lorsque les réponses optimales sont difficiles à définir dès le départ. C'est idéal pour :
+ Résolution de problèmes mathématiques et génération de code (utilisation d'évaluateurs basés sur des règles pour une évaluation objective)
+ Raisonnement scientifique et analyse de données structurées
+ Tâches subjectives telles que le suivi des instructions, la modération du contenu et l'écriture créative (en utilisant des juges basés sur l'IA)
+ Tâches nécessitant un step-by-step raisonnement ou une résolution de problèmes en plusieurs étapes
+ Scénarios comportant plusieurs solutions valides où certaines sont clairement meilleures que d'autres
+ Applications équilibrant plusieurs objectifs (précision, efficacité, style)
+ Applications nécessitant une amélioration itérative, une personnalisation ou le respect de règles métier complexes
+ Scénarios dans lesquels le succès peut être vérifié par programmation par le biais de résultats d'exécution ou de mesures de performance
+ Cas où la collecte d'exemples étiquetés de haute qualité est coûteuse ou peu pratique

## Avantages du réglage précis des armatures
<a name="reinforcement-fine-tuning-benefits"></a>
+ **Performances du modèle améliorées** — Le réglage précis du renforcement améliore la précision du modèle jusqu'à 66 % en moyenne par rapport aux modèles de base. Cela permet d'optimiser le prix et les performances en affinant des variantes de modèles plus petites, plus rapides et plus efficaces.
+ **Facilité d'utilisation** : Amazon Bedrock automatise la complexité du réglage précis du renforcement, le rendant ainsi accessible aux développeurs qui créent des applications d'IA. Vous pouvez affiner les modèles à l'aide des ensembles de données que vous avez téléchargés ou des journaux d'appel d'API existants. Vous pouvez définir des fonctions de récompense qui évaluent les sorties du modèle avec un code personnalisé à l'aide de Lambda ou d' model-as-a-judgeun évaluateur, avec des modèles intégrés qui facilitent la configuration rapide.
+ **Sécurité et conformité** — Vos données propriétaires ne quittent jamais AWS l'environnement sécurisé et régi pendant le processus de personnalisation.

## Modèles pris en charge pour un réglage précis du renforcement
<a name="rft-supported-models"></a>

Le tableau suivant présente les modèles de base que vous pouvez personnaliser grâce à un ajustement précis des armatures :


**Modèles pris en charge pour un réglage précis du renforcement**  

| Fournisseur | Modèle | ID du modèle | Nom de la région | Région | 
| --- | --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v 1:0:256 k |  USA Est (Virginie du Nord)  |  us-east-1  | 
| OpenAI | GPT-OSS-20b | openai.gpt-oss-20b | USA Ouest (Oregon) | us-west-2 | 
| Qwen | Qwen3 32B | qwen.qwen3-32b | USA Ouest (Oregon) | us-west-2 | 

## Comment fonctionne le réglage précis des armatures
<a name="rft-how-it-works"></a>

Amazon Bedrock automatise entièrement le flux de travail de réglage précis du renforcement. Le modèle reçoit des instructions de votre jeu de données d'entraînement et génère plusieurs réponses par invite. Ces réponses sont ensuite notées par une fonction de récompense. Amazon Bedrock utilise les paires prompte-réponse et les scores pour entraîner le modèle par le biais d'un apprentissage basé sur des politiques à l'aide de l'optimisation des politiques relatives aux groupes (GRPO). La boucle d'entraînement se poursuit jusqu'à la fin de vos données d'entraînement ou jusqu'à ce que vous arrêtiez le travail à un point de contrôle choisi, produisant ainsi un modèle optimisé pour la métrique qui compte pour vous.

## Amélioration des meilleures pratiques en matière de renforcement
<a name="rft-best-practices"></a>
+ **Commencez modestement** — Commencez par 100 à 200 exemples, validez l'exactitude de la fonction de récompense et échelonnez progressivement en fonction des résultats
+ **Évaluation préalable au réglage** : testez les performances du modèle de référence avant de peaufiner le renforcement. Si les récompenses sont toujours de 0 %, utilisez d'abord un réglage précis supervisé pour établir les capacités de base. Si les récompenses sont supérieures à 95 %, il se peut qu'il ne soit pas nécessaire de peaufiner le renforcement
+ **Surveillez la formation** : suivez les scores moyens des récompenses et leur distribution. Attention au surajustement (les récompenses d'entraînement augmentent tandis que les récompenses de validation diminuent). Recherchez des modèles inquiétants tels que le plafonnement des récompenses en dessous de 0,15, l'augmentation de la variance des récompenses au fil du temps et la baisse des performances de validation
+ **Optimisez les fonctions de récompense** : exécutez-les en quelques secondes (et non en quelques minutes), minimisez les appels d'API externes, utilisez des algorithmes efficaces, implémentez une gestion appropriée des erreurs et profitez de la mise à l'échelle parallèle de Lambda
+ **Stratégie d'itération** — Si les récompenses ne s'améliorent pas, ajustez la conception de la fonction de récompense, augmentez la diversité des ensembles de données, ajoutez des exemples plus représentatifs et vérifiez que les signaux de récompense sont clairs et cohérents

**Topics**
+ [Renfort : affiner les applications et les scénarios](#reinforcement-fine-tuning-when)
+ [Avantages du réglage précis des armatures](#reinforcement-fine-tuning-benefits)
+ [Modèles pris en charge pour un réglage précis du renforcement](#rft-supported-models)
+ [Comment fonctionne le réglage précis des armatures](#rft-how-it-works)
+ [Amélioration des meilleures pratiques en matière de renforcement](#rft-best-practices)
+ [Ajustez les modèles Amazon Nova grâce à un réglage précis du renforcement](rft-nova-models.md)
+ [Ajustez les modèles à poids ouvert à l'aide de -compatible OpenAI APIs](fine-tuning-openai-apis.md)
+ [Évaluez votre modèle RFT](rft-evaluate-model.md)

# Ajustez les modèles Amazon Nova grâce à un réglage précis du renforcement
<a name="rft-nova-models"></a>

Avant de peaufiner le réglage, assurez-vous de remplir les conditions préalables, car Amazon Bedrock a besoin d'autorisations spécifiques pour créer et gérer le processus de mise au point. Pour obtenir des informations complètes sur la sécurité et les autorisations, consultez[Accès et sécurité pour les modèles Amazon Nova](rft-access-security.md).

Effectuez le réglage précis du renforcement pour les modèles Amazon Nova en 5 étapes :

1. **Fournir un ensemble de données de formation** : téléchargez les instructions dans le format requis (par exemple, JSONL) en tant que jeu de données d'entraînement affiné pour le renforcement. Pour de plus amples informations, veuillez consulter [Préparer les données pour les modèles Amazon Nova](rft-prepare-data.md).

1. **Configurer la fonction de récompense (évaluateur)** : définissez un évaluateur pour évaluer les réponses du modèle en fonction de l'exactitude, de la structure, du ton ou d'autres objectifs. La fonction de récompense peut être exécutée à l'aide de Lambda pour calculer les scores objectifs. Vous pouvez également choisir un modèle comme juge (via la console) et évaluer les réponses en fonction des critères et des principes que vous configurez (la console les convertit automatiquement en fonctions Lambda). Pour de plus amples informations, veuillez consulter [Configuration des fonctions de récompense pour les modèles Amazon Nova](reward-functions.md).

1. **Soumettre un travail de réglage précis du renforcement** : lancez le travail de réglage précis du renforcement en spécifiant le modèle de base, le jeu de données, la fonction de récompense et d'autres paramètres facultatifs tels que les hyperparamètres. Pour de plus amples informations, veuillez consulter [Créez et gérez des tâches de réglage précis pour les modèles Amazon Nova](rft-submit-job.md).

1. **Surveillez la formation** : suivez le statut du poste, les indicateurs de récompense et la progression de la formation jusqu'à la fin. Pour de plus amples informations, veuillez consulter [Surveillez votre travail de formation RFT](rft-submit-job.md#rft-monitor-job).

1. **Utiliser un modèle affiné** : une fois le travail terminé, déployez le modèle RFT obtenu en un clic pour une inférence à la demande. Vous pouvez également utiliser le débit provisionné pour les charges de travail critiques qui nécessitent des performances constantes. Consultez [Configuration de l’inférence pour un modèle personnalisé](model-customization-use.md). Utilisez **Test in Playground** pour évaluer et comparer les réponses avec le modèle de base.

**Important**  
Vous pouvez fournir un maximum de 20 000 instructions à Amazon Bedrock pour renforcer et affiner le modèle.

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

Le tableau suivant présente les modèles Amazon Nova que vous pouvez personnaliser grâce à un réglage précis du renforcement :

**Note**  
Pour plus d'informations sur les autres modèles pris en charge, y compris les modèles à poids ouvert, consultez[Ajustez les modèles à poids ouvert à l'aide de -compatible OpenAI APIs](fine-tuning-openai-apis.md).


**Modèles pris en charge pour un réglage précis du renforcement**  

| Fournisseur | Modèle | ID du modèle | Support du modèle à région unique | 
| --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v 1:0:256 k | us-east-1 | 

# Accès et sécurité pour les modèles Amazon Nova
<a name="rft-access-security"></a>

Avant de commencer à peaufiner le renforcement, assurez-vous de bien comprendre le type d'accès dont Amazon Bedrock a besoin pour les opérations spécifiques à la RFT. RFT nécessite des autorisations supplémentaires au-delà du réglage précis standard en raison de ses capacités d'exécution de la fonction de récompense.

Pour la configuration de sécurité de base de la personnalisation du modèle, y compris les relations de confiance, les autorisations Amazon S3 et le chiffrement KMS, consultez[Création d’un rôle de service IAM pour la personnalisation du modèle](custom-model-job-access-security.md#custom-model-job-service-role).

## Conditions préalables
<a name="rft-access-prerequisites"></a>

Avant d'ajouter des autorisations IAM spécifiques à RFT, vous devez ajouter les rôles de service IAM suivants :
+ [Relation d’approbation](custom-model-job-access-security.md#custom-model-job-service-role-trust-relationship)
+ [Autorisations d’accès aux fichiers d’entraînement et de validation et d’écriture de fichiers de sortie dans S3](custom-model-job-access-security.md#custom-model-job-service-role-s3-permissions)

## Autorisations IAM spécifiques à RFT
<a name="rft-iam-permissions"></a>

Ajoutez ces autorisations à votre rôle de service de personnalisation de modèles existant pour la fonctionnalité RFT.

### Autorisations Lambda pour les fonctions de récompense
<a name="rft-lambda-permissions"></a>

Vous devez ajouter des autorisations d'appel Lambda. Voici un exemple de politique que vous pouvez utiliser :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:reward-function-name"
            ]
        }
    ]
}
```

### Accès au journal des appels
<a name="rft-api-log-permissions"></a>

Pour utiliser les journaux d'invocation du modèle Amazon Bedrock existants comme données de formation, ajoutez des autorisations pour accéder à votre compartiment Amazon S3 dans lequel les journaux d'invocation sont stockés. 

Vous devez fournir des autorisations d'accès au compartiment Amazon S3 pour le compartiment d'entrée. Voici un exemple de politique que vous pouvez utiliser :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::s3-invocation-logs-bucket",
                "arn:aws:s3:::s3-invocation-logs-bucket/*"
            ]
        }
    ]
}
```

Pour la configuration de la sécurité, y compris les rôles IAM de base, les autorisations Amazon S3 et le chiffrement, consultez[Création d’un rôle de service IAM pour la personnalisation du modèle](custom-model-job-access-security.md#custom-model-job-service-role).

## Autorisations de la fonction Lambda du gradeur pour RLAIF
<a name="rft-grader-lambda-permissions"></a>

Si vous créez votre propre fonction Lambda pour les fonctions de récompense RLAIF (Reinforcement Learning from AI Feedback), vous devez ajouter des autorisations spécifiques au rôle d'exécution Lambda.

### Permissions fondamentales pour les juges du LLM
<a name="rft-bedrock-permissions"></a>

Pour les fonctions de LLM-as-Judge récompense (RLAIF), ajoutez des autorisations pour invoquer des modèles de base. Voici un exemple de politique que vous pouvez utiliser pour votre rôle d'exécution Lambda.

**Note**  
Ajoutez ces autorisations à votre rôle d'exécution Lambda uniquement si vous créez votre propre fonction Lambda. La console gère cela automatiquement lors de la création de fonctions Lambda via la console.

Voici un exemple de LLM fondamental en tant qu'invocation d'un juge à l'aide de modèles de base :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

Voici un exemple de LLM fondamental en tant qu'invocation d'un juge à l'aide d'un profil d'inférence :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
            ]
        }
    ]
}
```

Pour plus d'informations sur les conditions requises pour les profils d'inférence, consultez la section [Conditions préalables pour](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html) les profils d'inférence.

# Préparer les données pour les modèles Amazon Nova
<a name="rft-prepare-data"></a>

Lorsque vous peaufinez un modèle Amazon Nova en ajustant le renforcement, vous pouvez apporter vos propres instructions ou utiliser les journaux d'invocation de l'API Amazon Bedrock existants comme données d'entraînement.

## Exigences et sources de données de formation
<a name="rft-data-source-options"></a>

Vous pouvez fournir des données d'entraînement via l'une des options suivantes :

**Note**  
Nous prenons uniquement en charge le format de fin de chat OpenAI.

### Option 1 : fournissez vos propres instructions
<a name="w2aac15c25c17c15b5b7b1"></a>

Collectez vos invites et stockez-les au format de fichier `.jsonl`. Vous pouvez télécharger des ensembles de données personnalisés au format JSONL ou sélectionner des ensembles de données existants depuis Amazon S3. Chaque enregistrement du JSONL doit utiliser le format de fin de discussion OpenAI dans la structure suivante :
+ `messages`: Dans ce champ, incluez le rôle utilisateur, système ou assistant contenant l'invite de saisie fournie au modèle.
+ `reference_answer`: Dans ce champ, il doit contenir le résultat attendu ou les critères d'évaluation que votre fonction de récompense utilise pour évaluer la réponse du modèle. Il ne se limite pas aux sorties structurées : il peut contenir n'importe quel format permettant à votre fonction de récompense d'évaluer la qualité.
+ [Facultatif] Vous pouvez ajouter des champs utilisés par l'évaluateur Lambda pour la notation.

**Prérequis:**
+ Format JSONL avec instructions au format d'achèvement du chat OpenAI (une invite par ligne)
+ Un minimum de 100 enregistrements dans l'ensemble de données de formation
+ Amazon Bedrock valide automatiquement le format du jeu de données d'entraînement

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------

### Option 2 : utiliser les journaux d'appels
<a name="w2aac15c25c17c15b5b7b3"></a>

Lorsque vous créez une tâche de réglage précis du renforcement, vous pouvez demander à Amazon Bedrock d'utiliser les journaux d'invocation existants de votre compartiment S3 comme données d'entraînement. Pour Amazon Bedrock, un journal d’invocation est un enregistrement détaillé des invocations du modèle.

Vous pouvez utiliser les journaux d'appel d' Invoke/Converse API stockés côté client depuis Amazon S3 à des fins de formation.

**Prérequis:**
+ La journalisation des API doit être activée pour votre utilisation d'Amazon Bedrock
+ Les journaux doivent être dans un format compatible ( Invoke/Converse API Amazon Bedrock)
+ Au moins 100 exemples rapides

Pour utiliser les journaux d'invocation pour affiner le renforcement, configurez la connexion par invocation du modèle, utilisez l'une des opérations d'appel du modèle et assurez-vous d'avoir configuré un compartiment Amazon S3 comme destination pour les journaux. Pour plus d'informations sur la configuration des journaux d'invocation, consultez [Surveiller le modèle d'invocation à l'aide CloudWatch des journaux et d'Amazon S3](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html).

Avant de commencer le travail de réglage précis du renforcement en utilisant les journaux d'invocation d'un compartiment S3 en entrée, vous devez fournir à Amazon Bedrock les autorisations d'accès aux journaux depuis un compartiment S3. Pour de plus amples informations, veuillez consulter [Personnalisation, accès et sécurité des modèles](custom-model-job-access-security.md).

Vous pouvez éventuellement ajouter des métadonnées de demande aux paires invite-réponse du journal d’invocation à l’aide de l’une des opérations d’invocation du modèle, puis les utiliser ultérieurement pour filtrer les journaux. Amazon Bedrock peut utiliser les journaux filtrés pour affiner le modèle.

#### Ajoutez des métadonnées de demande aux invites et aux réponses dans vos journaux d'invocations
<a name="rft-request-metadata"></a>

Avec les journaux d'invocation, vous pouvez identifier les instructions du jeu de données de formation que vous souhaitez qu'Amazon Bedrock utilise pour affiner le renforcement à l'aide des métadonnées de demande jointes aux journaux d'invocation. 

Voici un exemple de journal d'invocation issu d'un `InvokeModel` appel avec : `requestMetadata`

```
{
"schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "2024-09-11T17:16:18Z",
    "accountId": "XXXXX",
    "identity": {
"arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX"
    },
    "region": "us-east-1",
    "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5",
    "operation": "InvokeModel",
    "modelId": "meta.llama3-1-405b-instruct-v1:0",
    "input": {
"inputContentType": "application/json",
        "inputBodyJson": {
"prompt": "story of two dogs",
            "max_tokens_to_sample": 300
        },
        "inputTokenCount": 13
    },
    "output": {
"outputContentType": "application/json",
        "outputBodyJson": {
"type": "completion",
            "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little",
            "stop_reason": "max_tokens",
            "stop": null
        },
        "outputTokenCount": 300
    },
    "requestMetadata": {
"project": "CustomerService",
        "intent": "ComplaintResolution",
        "priority": "High"
    }
}
```

Vous pouvez spécifier le journal des appels comme source de données d'entrée lorsque vous lancez une tâche de réglage précis du renforcement. Vous pouvez démarrer une tâche de réglage précis du renforcement via la console Amazon Bedrock, à l'aide de l'API ou du AWS CLI SDK.

##### Exigences relatives à la fourniture de métadonnées de demande
<a name="rft-metadata-requirements"></a>

Les métadonnées de demande doivent respecter les exigences suivantes :
+ Fournies au format JSON `key:value`.
+ La paire clé/valeur doit être une chaîne de 256 caractères maximum.
+ Fournissez un maximum de 16 paires clé-valeur.

##### Utilisation de filtres de métadonnées des demandes
<a name="rft-metadata-filters"></a>

Une fois que les journaux d'appel contenant les métadonnées des demandes sont disponibles, vous pouvez appliquer des filtres basés sur les métadonnées des demandes afin de choisir de manière sélective les invites à inclure pour affiner le modèle. Par exemple, vous souhaiterez peut-être inclure uniquement ceux qui possèdent `"project": "CustomerService"` et `"priority": "High"` demandent des métadonnées.

Pour filtrer les journaux à l'aide de plusieurs métadonnées de demande, utilisez un seul opérateur `AND` booléen ou. `OR` Vous ne pouvez pas combiner ces opérateurs. Pour le filtrage des métadonnées à demande unique, utilisez l'`Not Equals`opérateur `Equals` or.

## Caractéristiques des données d'entraînement efficaces
<a name="rft-data-characteristics"></a>

Des données d'entraînement RFT efficaces nécessitent trois caractéristiques clés :
+ **Clarté et cohérence** : utilisez des instructions claires et sans ambiguïté avec un formatage uniforme. Évitez les étiquettes contradictoires, les instructions ambiguës ou les réponses de référence contradictoires qui induisent en erreur la formation.
+ **Diversité** : incluez différents formats de saisie, scénarios extrêmes et niveaux de difficulté qui reflètent les modèles d'utilisation de la production selon les différents types d'utilisateurs et scénarios.
+ **Fonctions de récompense efficaces** — Concevez des fonctions qui s'exécutent rapidement (en quelques secondes, et non en minutes), sont parallélisées et AWS Lambda fournissent des scores cohérents pour un entraînement rentable.

## Propriétés supplémentaires
<a name="rft-additional-properties"></a>

Le format de données RFT prend en charge les champs personnalisés au-delà des exigences de base du schéma (`messages`et`reference_answer`). Cette flexibilité vous permet d'ajouter toutes les données supplémentaires dont votre fonction de récompense a besoin pour une évaluation correcte.

**Note**  
Vous n'avez pas besoin de le configurer dans votre recette. Le format de données prend en charge de manière inhérente des champs supplémentaires. Il suffit de les inclure dans le JSON de vos données d'entraînement, et elles seront transmises à votre fonction de récompense `metadata` sur le terrain.

**Propriétés supplémentaires communes**
+ `task_id`— Identifiant unique pour le suivi
+ `difficulty_level`— Indicateur de complexité du problème
+ `domain`— Domaine ou catégorie
+ `expected_reasoning_steps`— Nombre d'étapes de la solution

Ces champs supplémentaires sont transmis à votre fonction de récompense lors de l'évaluation, ce qui permet une logique de notation sophistiquée adaptée à votre cas d'utilisation spécifique.

**Exemples avec propriétés supplémentaires**

------
#### [ Chemistry problem ]

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

Le `reference_answer` champ contient le résultat attendu ou les critères d'évaluation que votre fonction de récompense utilise pour évaluer la réponse du modèle. Il ne se limite pas aux sorties structurées : il peut contenir n'importe quel format permettant à votre fonction de récompense d'évaluer la qualité.

------
#### [ Math problem with metadata ]

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

------

# Configuration des fonctions de récompense pour les modèles Amazon Nova
<a name="reward-functions"></a>

Les fonctions de récompense évaluent la qualité des réponses et fournissent des signaux de rétroaction pour l'entraînement des modèles. Vous pouvez configurer des fonctions de récompense en utilisant des fonctions Lambda personnalisées ou des modèles de base hébergés par Amazon Bedrock en tant que juges. Des modèles guidés sont disponibles pour simplifier la création de fonctions de récompense pour les tâches courantes telles que le suivi des instructions et la validation du format. Choisissez l'approche qui correspond aux exigences de votre tâche.

## Apprentissage par renforcement via des récompenses vérifiables (RLVR)
<a name="rft-rlvr"></a>

Le RLVR optimise les modèles pour des tâches objectives telles que la génération de code ou le raisonnement mathématique à l'aide d'évaluateurs ou de modèles vérifiables basés sur des règles. ready-to-use

Deux options s'offrent à vous pour le RLVR (code personnalisé) :

### Option 1 : utiliser les modèles fournis par la console
<a name="w2aac15c25c17c17b5b7b1"></a>

La console Amazon Bedrock fournit des exemples de modèles pour les fonctions Lambda de la niveleuse :
+ Raisonnement mathématique avec vérification de la vérité fondamentale
+ Validation du format et vérification des contraintes
+ Modèle Lambda de niveleuse générique avec code standard

Suivez les instructions du modèle fourni sur la page **Create RFT job** de la console [Amazon Bedrock](https://console.aws.amazon.com/bedrock).

### Option 2 : apportez votre propre fonction Lambda
<a name="w2aac15c25c17c17b5b7b3"></a>

Créez des fonctions de récompense personnalisées en utilisant votre propre ARN Lambda pour des calculs logiques complexes APIs, externes en plusieurs étapes ou en combinant plusieurs critères d'évaluation.

**Note**  
Si vous apportez votre propre fonction Lambda, gardez à l'esprit les points suivants :  
Augmentez le délai Lambda de 3 secondes par défaut à 15 minutes maximum pour les évaluations complexes.
Le rôle d'exécution Lambda a besoin d'autorisations pour invoquer des modèles, comme décrit dans. [Accès et sécurité pour les modèles Amazon Nova](rft-access-security.md)

## Apprentissage par renforcement via le feedback basé sur l'IA (RLAIF)
<a name="rft-rlaif"></a>

Le RLAIF optimise les modèles pour des tâches subjectives telles que le suivi des instructions ou les interactions avec des chatbots en utilisant des juges basés sur l'IA avec des modèles. ready-to-use

**Pour le RLAIF (modèle en tant que juge) :**
+ Sélectionnez un modèle de base hébergé par Amazon Bedrock comme juge
+ Instructions de configuration pour l'évaluation
+ Définir les critères d'évaluation et les directives de notation

Modèles d' LLM-as-Judgeinvite disponibles dans la console Amazon Bedrock :
+ Suivi des instructions (formation sur le modèle des juges)
+ Récapitulatif (boîtes de dialogue à plusieurs tours)
+ Évaluation du raisonnement (CoT pour les domaines spécialisés)
+ Fidélité RAG (questions-réponses contextuelles)

**Note**  
L'option **Model as Judge** de la console convertit automatiquement votre configuration en fonction Lambda pendant l'entraînement.

## Détails de mise en œuvre de la fonction Lambda
<a name="rft-lambda-implementation"></a>

Lorsque vous implémentez des fonctions de récompense Lambda personnalisées, votre fonction doit accepter et renvoyer des données au format suivant.

------
#### [ Input structure ]

```
[{
  "id": "123",
  "messages": [
    {
      "role": "user",
      "content": "Do you have a dedicated security team?"
    },
    {
      "role": "assistant",
      "content": "As an AI developed by Amazon, I don not have a dedicated security team..."
    }
  ],
  "metadata": {
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."
    },
    "my_key": "sample-001"
  }
}]
```

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Directives de conception**
+ **Classez les réponses** — Donnez à la meilleure réponse un score nettement supérieur
+ **Utilisez des contrôles cohérents** : évaluez l'achèvement des tâches, le respect du format, la sécurité et une durée raisonnable
+ **Maintenez une mise à l'échelle stable** : maintenez les scores normalisés et non exploitables

# Créez et gérez des tâches de réglage précis pour les modèles Amazon Nova
<a name="rft-submit-job"></a>

Vous pouvez créer une tâche de réglage fin du renforcement (RFT) à l'aide de la console ou de l'API Amazon Bedrock. Le travail RFT peut prendre quelques heures en fonction de la taille de vos données d'entraînement, du nombre d'époques et de la complexité de vos fonctions de récompense.

## Conditions préalables
<a name="rft-prerequisites"></a>
+ Créez un rôle de service IAM avec les autorisations requises. Pour obtenir des informations complètes sur la sécurité et les autorisations, y compris les autorisations spécifiques à RFT, consultez. [Accès et sécurité pour les modèles Amazon Nova](rft-access-security.md)
+ (Facultatif) Chiffrez les données d'entrée et de sortie, votre tâche RFT ou les demandes d'inférence adressées à des modèles personnalisés. Pour plus d'informations, consultez la section [Chiffrement des modèles personnalisés](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html).

## Créez votre job RFT
<a name="rft-submit-job-how-to"></a>

Choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

------
#### [ Console ]

Pour soumettre une tâche RFT dans la console, procédez comme suit :

1. Ouvrez la console Amazon Bedrock et accédez à **Modèles personnalisés** sous **Tune**.

1. Choisissez **Créer**, puis **Créer une tâche de réglage précis du renforcement**.

1. Dans la section **Détails du modèle**, choisissez **Amazon Nova 2 Lite** comme modèle de base.

1. Dans la section **Détails de la personnalisation**, entrez le nom de la personnalisation.

1. Dans la section **Données d'entraînement**, choisissez votre source de données. Choisissez parmi vos journaux d'appel disponibles stockés dans Amazon S3, sélectionnez l'emplacement Amazon S3 de votre ensemble de données d'entraînement ou téléchargez un fichier directement depuis votre appareil.
**Note**  
Votre ensemble de données d'entraînement doit être au format de données OpenAI Chat Completions. Si vous fournissez des journaux d'invocation au format Amazon Bedrock invoke ou converse, Amazon Bedrock les convertit automatiquement au format Chat Completions.

1. Dans la section **Fonction de récompense**, configurez votre mécanisme de récompense :
   + **Modéliser en tant que juge (RLAIF)** - Sélectionnez un modèle de base hébergé par Bedrock comme juge et configurez les instructions d'évaluation. Utilisez-le pour des tâches subjectives telles que la modération du contenu.
**Note**  
L'option **Model as judge** de la console convertit automatiquement votre configuration en fonction Lambda pendant l'entraînement.
   + **Code personnalisé (RLVR)** - Créez des fonctions de récompense personnalisées à l'aide du code Python exécuté via des fonctions Lambda. Utilisez-le pour des tâches objectives telles que la génération de code.

   Pour de plus amples informations, veuillez consulter [Configuration des fonctions de récompense pour les modèles Amazon Nova](reward-functions.md).

1. (Facultatif) Dans la section **Hyperparamètres**, ajustez les paramètres d'entraînement ou utilisez les valeurs par défaut.

1. Dans la section **Données de sortie**, entrez l'emplacement Amazon S3 où Amazon Bedrock doit enregistrer les résultats des tâches.

1. Dans la section **Configuration des rôles**, choisissez un rôle existant dans la liste déroulante ou entrez un nom pour le rôle de service à créer.

1. (Facultatif) Dans la section **Configuration supplémentaire**, configurez les données de validation en pointant vers un compartiment Amazon S3, les paramètres de chiffrement KMS et les balises de tâche et de modèle.

1. Choisissez **Créer une tâche de réglage précis du renforcement** pour commencer la tâche.

------
#### [ API ]

Envoyez une CreateModelCustomizationJob demande avec `customizationType` set to`REINFORCEMENT_FINE_TUNING`.

**Champs obligatoires :** `roleArn``baseModelIdentifier`,`customModelName`,`jobName`,`trainingDataConfig`,`outputDataConfig`, `rftConfig`

**Exemple de demande :**

```
{
    "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole",
    "baseModelIdentifier": "amazon.nova-2.0",
    "customModelName": "my-rft-model",
    "jobName": "my-rft-job",
    "customizationType": "REINFORCEMENT_FINE_TUNING",
    "trainingDataConfig": {
        "s3Uri": "s3://my-bucket/training-data.jsonl"
    },
    "customizationConfig": {
        "rftConfig" : {
            "graderConfig": {
                "lambdaGrader": {
                    "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name"
                }
            },
            "hyperParameters": {
                "batchSize": 64,
                "epochCount": 2,
                "evalInterval": 10,
                "inferenceMaxTokens": 8192,
                "learningRate": 0.00001,
                "maxPromptLength": 4096,
                "reasoningEffort": "high",
                "trainingSamplePerPrompt": 4
            }
        }
    },
    "outputDataConfig": {
        "s3Uri": "s3://my-bucket/rft-output/"
    }
}
```

**Exemple de demande d'API Python :**

```
import boto3

bedrock = boto3.client(service_name='bedrock')
    
# Set parameters
customizationType = "REINFORCEMENT_FINE_TUNING"
baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k"
roleArn = "${your-customization-role-arn}"
jobName = "MyFineTuningJob"
customModelName = "MyCustomModel"

customizationConfig = {
    'rftConfig' : {
        'graderConfig': {
            'lambdaGrader': {
                'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name'
            }
        },
        'hyperParameters': {
            'batchSize': 64,
            'epochCount': 2,
            'evalInterval': 10,
            'inferenceMaxTokens': 8192,
            'learningRate':0.00001,
            'maxPromptLength': 4096,
            'reasoningEffort': 'high',
            'trainingSamplePerPrompt':4
        }
    }
}

trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"}
outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"}

# Create job
response_ft = bedrock.create_model_customization_job(
    jobName=jobName, 
    customModelName=customModelName,
    roleArn=roleArn,
    baseModelIdentifier=baseModelIdentifier,
    customizationConfig=customizationConfig,
    trainingDataConfig=trainingDataConfig,
    outputDataConfig=outputDataConfig,
    customizationType=customizationType
)

jobArn = response_ft['jobArn']
```

------

## Surveillez votre travail de formation RFT
<a name="rft-monitor-job"></a>

Amazon Bedrock fournit une surveillance en temps réel à l'aide de graphiques visuels et de mesures pendant la formation RFT. Ces indicateurs vous aident à comprendre si le modèle converge correctement et si la fonction de récompense guide efficacement le processus d'apprentissage.

### Suivi de l'état des emplois
<a name="rft-job-status"></a>

Vous pouvez suivre le statut de votre poste RFT pendant les phases de validation et de formation dans la console Amazon Bedrock.

**Indicateurs d'achèvement :**
+ Le statut du job passe à **Terminé** lorsque la formation est terminée avec succès
+ Le modèle d'ARN personnalisé devient disponible pour le déploiement
+ Les indicateurs de formation atteignent les seuils de convergence

### Indicateurs d'entraînement en temps réel
<a name="rft-real-time-metrics"></a>

Amazon Bedrock fournit une surveillance en temps réel pendant la formation RFT avec des graphiques visuels affichant les mesures de formation et de validation.

#### Indicateurs d'entraînement de base
<a name="rft-core-metrics"></a>
+ **Perte d'entraînement** : mesure dans quelle mesure le modèle apprend à partir des données d'entraînement
+ **Statistiques sur les récompenses d'entraînement** - Affiche les scores de récompenses attribués par vos fonctions de récompense
+ **Marge de récompense** : mesure la différence entre les récompenses pour bonnes et mauvaises réponses
+ **Précision des ensembles d'entraînement et de validation** : affiche les performances du modèle à la fois sur les données d'entraînement et sur les données maintenues

**Catégories métriques détaillées**
+ **Indicateurs de récompenses** — `critic/rewards/mean``critic/rewards/max`,, `critic/rewards/min` (distribution des récompenses) et `val-score/rewards/mean@1` (récompenses de validation)
+ **Comportement du modèle** — `actor/entropy` (variation des politiques ; une valeur plus élevée correspond à une approche plus exploratoire)
+ **État de la formation** : `actor/pg_loss` (perte du gradient des politiques), `actor/pg_clipfrac` (fréquence des mises à jour découpées) et `actor/grad_norm` (amplitude du gradient)
+ **Caractéristiques de réponse** —`prompt_length/mean`,`prompt_length/max`, `prompt_length/min` (statistiques des jetons d'entrée),`response_length/mean`,`response_length/max`, `response_length/min` (statistiques des jetons de sortie) et `response/aborted_ratio` (taux de génération incomplet ; 0 est égal à tout terminé)
+ **Performances** : `perf/throughput` (débit d'entraînement), `perf/time_per_step` (temps par étape d'entraînement) et `timing_per_token_ms/*` (temps de traitement par jeton)
+ **Utilisation des ressources** —`perf/max_memory_allocated_gb`, `perf/max_memory_reserved_gb` (mémoire GPU) et `perf/cpu_memory_used_gb` (mémoire CPU)

#### Visualisation des progrès de l'entraînement
<a name="rft-progress-visualization"></a>

La console affiche des graphiques interactifs qui sont mis à jour en temps réel au fur et à mesure de l'avancement de votre tâche RFT. Ces visualisations peuvent vous aider à :
+ Suivez la convergence vers des performances optimales
+ Identifiez rapidement les problèmes de formation potentiels
+ Déterminer les points d'arrêt optimaux
+ Comparez les performances à différentes époques

## Configurer l'inférence
<a name="rft-setup-inference"></a>

Une fois le travail terminé, déployez le modèle RFT pour une inférence à la demande ou utilisez le débit provisionné pour des performances constantes. Pour configurer l'inférence, voir[Configuration de l’inférence pour un modèle personnalisé](model-customization-use.md).

Utilisez **Test in Playground** pour évaluer et comparer les réponses avec le modèle de base. Pour évaluer votre modèle RFT terminé, consultez[Évaluez votre modèle RFT](rft-evaluate-model.md).

# Ajustez les modèles à poids ouvert à l'aide de -compatible OpenAI APIs
<a name="fine-tuning-openai-apis"></a>

Amazon Bedrock fournit des points de terminaison d'API OpenAI compatibles pour affiner les modèles de base. Ces points de terminaison vous permettent d'utiliser des outils familiers OpenAI SDKs pour créer, surveiller et gérer des tâches de réglage précis avec les modèles Amazon Bedrock. Cette page décrit leur utilisation APIs pour affiner le renforcement.

## Capacités clés
<a name="fine-tuning-openai-key-capabilities"></a>
+ **Télécharger des fichiers de formation** : utilisez l'API Files pour télécharger et gérer les données de formation afin de peaufiner les tâches
+ **Créez des tâches de réglage précis** — Commencez à peaufiner les tâches grâce à des données d'entraînement personnalisées et à des fonctions de récompense
+ **Répertorier et récupérer les tâches** : consultez toutes les tâches de réglage précis et obtenez des informations détaillées sur des tâches spécifiques
+ **Surveillez les événements liés aux tâches** : suivez la progression des ajustements grâce à des journaux d'événements détaillés
+ **Points de contrôle d'accès** — Récupérez les points de contrôle du modèle intermédiaire créés pendant la formation
+ **Inférence immédiate** — Une fois le réglage terminé, utilisez le modèle affiné qui en résulte pour une inférence à la demande via la APIs compatibilité OpenAI d'Amazon Bedrock (API de réponses et de complétions de chat) sans étapes de déploiement supplémentaires
+ **Migration facile** — Compatible avec les bases de OpenAI code SDK existantes

## Renfort : optimisation du flux de travail pour les modèles à poids ouvert
<a name="fine-tuning-openai-workflow"></a>

Avant de peaufiner le réglage, assurez-vous de remplir les conditions préalables, car Amazon Bedrock a besoin d'autorisations spécifiques pour créer et gérer le processus de mise au point. Pour obtenir des informations complètes sur la sécurité et les autorisations, consultez[Accès et sécurité pour les modèles à poids ouvert](rft-open-weight-access-security.md).

Effectuez le réglage précis du renforcement pour les modèles à poids ouvert en 5 étapes :

1. **Télécharger le jeu de données d'entraînement** — Utilisez l'API Files pour télécharger les instructions dans le format requis (par exemple, JSONL) dans le but de les « peaufiner » en tant que jeu de données d'entraînement peaufinant le renforcement. Pour de plus amples informations, veuillez consulter [Préparer les données pour les modèles à pondération ouverte](rft-prepare-data-open-weight.md).

1. **Configurer la fonction de récompense** : définissez un évaluateur pour évaluer les réponses du modèle en fonction de l'exactitude, de la structure, du ton ou d'autres objectifs à l'aide des fonctions Lambda. Pour de plus amples informations, veuillez consulter [Configuration des fonctions de récompense pour les modèles à poids ouvert](reward-functions-open-weight.md).

1. **Créer un travail de réglage précis** : lancez le travail de réglage fin du renforcement à l'aide de l'API OpenAI compatible en spécifiant le modèle de base, l'ensemble de données, la fonction de récompense et d'autres paramètres facultatifs tels que les hyperparamètres. Pour de plus amples informations, veuillez consulter [Créez un travail de réglage précis](fine-tuning-openai-job-create.md#fine-tuning-openai-create-job).

1. **Surveillez les progrès de la formation** : suivez l'état des tâches, les événements et les indicateurs de formation à l'aide des tâches APIs de réglage précis. Pour de plus amples informations, veuillez consulter [Répertorier les événements de réglage](fine-tuning-openai-job-create.md#fine-tuning-openai-list-events). Accédez aux points de contrôle du modèle intermédiaire pour évaluer les performances à différentes étapes de l'entraînement, voir[Répertorier les points de contrôle pour affiner](fine-tuning-openai-job-create.md#fine-tuning-openai-list-checkpoints).

1. **Exécutez l'inférence** : utilisez directement l'identifiant du modèle affiné pour effectuer des inférences via les réponses ou les terminaisons de chat OpenAI compatibles avec Amazon Bedrock. APIs Pour de plus amples informations, veuillez consulter [Exécutez l'inférence avec un modèle affiné](fine-tuning-openai-job-create.md#fine-tuning-openai-inference).

## Régions et terminaux pris en charge
<a name="fine-tuning-openai-supported-regions"></a>

Le tableau suivant présente les modèles de base et les régions qui prennent en charge le réglage fin OpenAI APIs compatible :


**Modèles et régions pris en charge pour un réglage précis de la OpenAI compatibilité APIs**  

| Fournisseur | Modèle | ID du modèle | Nom de la région | Région | Endpoint | 
| --- | --- | --- | --- | --- | --- | 
| OpenAI | GPT-OSS-20b | openai.gpt-oss-20b | USA Ouest (Oregon) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 
| Qwen | Qwen3 32B | qwen.qwen3-32b | USA Ouest (Oregon) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 

# Accès et sécurité pour les modèles à poids ouvert
<a name="rft-open-weight-access-security"></a>

Avant de commencer le réglage fin du renforcement (RFT), assurez-vous de comprendre le type d'accès dont Amazon Bedrock a besoin pour les opérations spécifiques au RFT. RFT nécessite des autorisations supplémentaires au-delà du réglage précis standard en raison de ses capacités d'exécution de la fonction de récompense.

## Conditions préalables
<a name="fine-tuning-openai-prereq"></a>

Avant d'utiliser le réglage fin OpenAI compatible avec Amazon Bedrock APIs, assurez-vous de disposer des éléments suivants :

1. Un AWS compte avec les autorisations appropriées pour accéder à Amazon Bedrock

1. **Authentification** — Vous pouvez vous authentifier en utilisant :
   + Clé d'API Amazon Bedrock (requise pour le OpenAI SDK et disponible pour les requêtes HTTP)
   + AWS informations d'identification (prises en charge pour les requêtes HTTP)
**Note**  
[Si vous utilisez des clés d'API à court et à long terme d'Amazon Bedrock, assurez-vous que votre rôle a accès aux autorisations de politique IAM suivantes : et Rôle. `AmazonBedrockMantleFullAccess` AWSLambda](https://docs.aws.amazon.com/bedrock/latest/ug/rft-open-weight-access-security#openai-fine-tuning-lambda-permissions)

1. **OpenAISDK (facultatif)** — Installez le SDK OpenAI Python si vous utilisez des requêtes basées sur le SDK.

1. **Variables d'environnement** : définissez les variables d'environnement suivantes :
   + `OPENAI_API_KEY`— Réglé sur votre clé d'API Amazon Bedrock
   + `OPENAI_BASE_URL`— Définissez le point de terminaison Amazon Bedrock de votre région (par exemple,`https://bedrock-mantle.us-west-2.api.aws/v1`)

   Pour de plus amples informations, veuillez consulter [API de réponses](bedrock-mantle.md#bedrock-mantle-responses).

1. **Les données d'entraînement sont** formatées sous forme de fichiers JSONL dans ce but. `fine-tune` Pour de plus amples informations, veuillez consulter [Préparer les données pour les modèles à pondération ouverte](rft-prepare-data-open-weight.md).

## Autorisations Lambda pour les fonctions de récompense
<a name="openai-fine-tuning-lambda-permissions"></a>

Vous devez ajouter des autorisations d'appel Lambda. Voici un exemple de politique que vous pouvez utiliser :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:reward-function-name"
            ]
        }
    ]
}
```

Vous pouvez également utiliser les modèles hébergés par Amazon Bedrock en tant que juges pour configurer les fonctions de récompense. Vous devrez ajouter des autorisations spécifiques pour invoquer des modèles de base dans le rôle d'exécution Lambda. Dans votre rôle Lambda, vous pouvez configurer ces politiques gérées à des LLMs fins de notation. Consultez [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html).

Voici un exemple d'appel des modèles de fondation Amazon Bedrock en tant que juge à l'aide de l'API Invoke :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

# Préparer les données pour les modèles à pondération ouverte
<a name="rft-prepare-data-open-weight"></a>

Lorsque vous peaufinez des modèles à poids ouvert avec un ajustement précis du renforcement à l'aide de la compatibilité OpenAI APIs, fournissez des données d'entraînement en apportant vos propres instructions au format JSONL dans ce but. `fine-tune`

## Format et exigences des données de formation
<a name="rft-data-format-open-weight"></a>

Les données de formation doivent suivre le format de complétion des discussions OpenAI avec 100 à 20 000 exemples. Chaque exemple de formation contient :
+ `messages`: Dans ce champ, incluez le rôle d'utilisateur, de système ou d'assistant contenant l'invite de saisie fournie au modèle.
+ `reference_answer`: Dans ce champ, il doit contenir le résultat attendu ou les critères d'évaluation que votre fonction de récompense utilise pour évaluer la réponse du modèle. Il ne se limite pas aux sorties structurées : il peut contenir n'importe quel format permettant à votre fonction de récompense d'évaluer la qualité.
+ [Facultatif] Vous pouvez ajouter des champs utilisés par l'évaluateur Lambda pour la notation.

**Prérequis:**
+ Format JSONL avec instructions au format d'achèvement du chat OpenAI (une invite par ligne)
+ L'objectif doit être défini sur `fine-tune`
+ Un minimum de 100 enregistrements dans l'ensemble de données de formation
+ Amazon Bedrock valide automatiquement le format du jeu de données d'entraînement

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------

## API de fichiers
<a name="fine-tuning-openai-files-api"></a>

Vous pouvez utiliser l'API de fichiers compatible avec OpenAI pour télécharger vos données d'entraînement afin de peaufiner les tâches. Les fichiers sont stockés en toute sécurité dans Amazon Bedrock et sont utilisés lors de la création de tâches de peaufinage. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative aux OpenAI fichiers](https://platform.openai.com/docs/api-reference/files).

### Téléchargez le fichier de formation
<a name="fine-tuning-openai-upload-file"></a>

Pour télécharger un fichier de formation, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Upload training file
with open(TRAINING_FILE_PATH, 'rb') as f:
    file_response = client.files.create(
        file=f,
        purpose='fine-tune'
    )

# Store file ID for next steps
training_file_id = file_response.id
print(f"✅ Training file uploaded successfully: {training_file_id}")
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/files` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F purpose="fine-tune" \
  -F file="@training_data.jsonl"
```

------

### Récupérer les détails du fichier
<a name="fine-tuning-openai-retrieve-file"></a>

Pour récupérer les informations relatives à un fichier spécifique, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve file details
file_details = client.files.retrieve(training_file_id)

# Print raw response
print(json.dumps(file_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Envoyez une requête GET à `/v1/files/{file_id}` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Lister les fichiers
<a name="fine-tuning-openai-list-files"></a>

Pour répertorier les fichiers téléchargés, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List files
files_response = client.files.list(purpose='fine-tune')

# Print raw response
print(json.dumps(files_response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Envoyez une requête GET à `/v1/files` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Supprimer le fichier
<a name="fine-tuning-openai-delete-file"></a>

Pour supprimer un fichier, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Delete file
delete_response = client.files.delete(training_file_id)
```

------
#### [ HTTP request ]

Envoyez une demande DELETE à `/v1/files/{file_id}` :

```
curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Caractéristiques des données d'entraînement efficaces
<a name="rft-data-characteristics-open-weight"></a>

Des données d'entraînement RFT efficaces nécessitent trois caractéristiques clés :
+ **Clarté et cohérence** : utilisez des instructions claires et sans ambiguïté avec un formatage uniforme. Évitez les étiquettes contradictoires, les instructions ambiguës ou les réponses de référence contradictoires qui induisent en erreur la formation.
+ **Diversité** — Incluez différents formats de saisie, scénarios extrêmes et niveaux de difficulté qui reflètent les modèles d'utilisation de la production selon les différents types d'utilisateurs et scénarios.
+ **Fonctions de récompense efficaces** — Concevez des fonctions qui s'exécutent rapidement (en quelques secondes, et non en minutes), sont parallélisées et AWS Lambda fournissent des scores cohérents pour un entraînement rentable.

## Propriétés supplémentaires
<a name="rft-additional-properties-open-weight"></a>

Le format de données RFT prend en charge les champs personnalisés au-delà des exigences de base du schéma (`messages`et`reference_answer`). Cette flexibilité vous permet d'ajouter toutes les données supplémentaires dont votre fonction de récompense a besoin pour une évaluation correcte.

**Note**  
Vous n'avez pas besoin de le configurer dans votre recette. Le format de données prend en charge de manière inhérente des champs supplémentaires. Il suffit de les inclure dans le JSON de vos données d'entraînement, et elles seront transmises à votre fonction de récompense `metadata` sur le terrain.

**Propriétés supplémentaires communes**
+ `task_id`— Identifiant unique pour le suivi
+ `difficulty_level`— Indicateur de complexité du problème
+ `domain`— Domaine ou catégorie
+ `expected_reasoning_steps`— Nombre d'étapes de la solution

Ces champs supplémentaires sont transmis à votre fonction de récompense lors de l'évaluation, ce qui permet une logique de notation sophistiquée adaptée à votre cas d'utilisation spécifique.

**Exemples avec propriétés supplémentaires**

------
#### [ Chemistry problem ]

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

Le `reference_answer` champ contient le résultat attendu ou les critères d'évaluation que votre fonction de récompense utilise pour évaluer la réponse du modèle. Il ne se limite pas aux sorties structurées : il peut contenir n'importe quel format permettant à votre fonction de récompense d'évaluer la qualité.

------
#### [ Math problem with metadata ]

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

------

# Configuration des fonctions de récompense pour les modèles à poids ouvert
<a name="reward-functions-open-weight"></a>

Les fonctions de récompense évaluent la qualité des réponses et fournissent des signaux de rétroaction pour l'entraînement des modèles. Vous pouvez configurer des fonctions de récompense à l'aide de fonctions Lambda personnalisées. Choisissez l'approche qui correspond aux exigences de votre tâche.

## Fonctions Lambda personnalisées pour l'évaluation des récompenses
<a name="rft-custom-lambda-functions"></a>

Vous pouvez configurer des fonctions de récompense à l'aide de fonctions Lambda personnalisées. Au sein de votre fonction Lambda, vous disposez d'une certaine flexibilité dans la manière dont vous implémentez la logique d'évaluation :
+ **Tâches objectives** : pour les tâches objectives telles que la génération de code ou le raisonnement mathématique, utilisez des évaluateurs vérifiables basés sur des règles qui vérifient l'exactitude par rapport à des normes ou à des scénarios de test connus.
+ **Tâches subjectives** : pour les tâches subjectives telles que le suivi des instructions ou les interactions avec un chatbot, faites appel aux modèles Amazon Bedrock Foundation en tant que juges au sein de votre fonction Lambda afin d'évaluer la qualité des réponses en fonction de vos critères.

Votre fonction Lambda peut implémenter une logique complexe, intégrer des éléments externes APIs, effectuer des calculs en plusieurs étapes ou combiner plusieurs critères d'évaluation en fonction des exigences de votre tâche.

**Note**  
Lorsque vous utilisez des fonctions Lambda personnalisées :  
Augmentez le délai Lambda de 3 secondes par défaut à 15 minutes maximum pour les évaluations complexes.
Le rôle d'exécution Lambda a besoin d'autorisations pour appeler la fonction Lambda, comme décrit dans. [Autorisations Lambda pour les fonctions de récompense](rft-open-weight-access-security.md#openai-fine-tuning-lambda-permissions)

## Détails de mise en œuvre de la fonction Lambda
<a name="rft-lambda-implementation-open-weight"></a>

Lorsque vous implémentez des fonctions de récompense Lambda personnalisées, votre fonction doit accepter et renvoyer des données au format suivant.

------
#### [ Input structure ]

```
[{
  "id": "123",
  "messages": [
    {
      "role": "user",
      "content": "Do you have a dedicated security team?"
    },
    {
      "role": "assistant",
      "content": "As an AI developed by Amazon, I don not have a dedicated security team..."
    }
  ],
  "metadata": {
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."
    },
    "my_key": "sample-001"
  }
}]
```

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Directives de conception**
+ **Classez les réponses** — Donnez à la meilleure réponse un score nettement supérieur
+ **Utilisez des contrôles cohérents** : évaluez l'achèvement des tâches, le respect du format, la sécurité et une durée raisonnable
+ **Maintenez une mise à l'échelle stable** : maintenez les scores normalisés et non exploitables

# Créez et gérez des tâches de réglage précis pour les modèles à poids ouvert à l'aide d'OpenAI APIs
<a name="fine-tuning-openai-job-create"></a>

Les tâches de réglage fin compatibles avec OpenAI vous APIs permettent de créer, de surveiller et de gérer des tâches de réglage précis. Cette page décrit leur utilisation APIs pour affiner le renforcement. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative OpenAI au réglage précis](https://platform.openai.com/docs/api-reference/fine-tuning).

## Créez un travail de réglage précis
<a name="fine-tuning-openai-create-job"></a>

Crée une tâche de réglage fin qui lance le processus de création d'un nouveau modèle à partir d'un jeu de données donné. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative à la OpenAI création de tâches de réglage précis](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/create).

### Exemples
<a name="fine-tuning-openai-create-job-examples"></a>

Pour créer une tâche de réglage précis avec la méthode RFT, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Create fine-tuning job with RFT method
job_response = client.fine_tuning.jobs.create(
    model=MODEL_ID,
    training_file=training_file_id,
    # Suffix field is not supported so commenting for now.
    # suffix="rft-example",  # Optional: suffix for fine-tuned model name
    extra_body={
        "method": {
            "type": "reinforcement", 
            "reinforcement": {
                "grader": {
                    "type": "lambda",
                    "lambda": {
                        "function": "arn:aws:lambda:us-west-2:123456789012:function:my-reward-function"  # Replace with your Lambda ARN
                    }
                },
                "hyperparameters": {
                    "n_epochs": 1,  # Number of training epochs
                    "batch_size": 4,  # Batch size
                    "learning_rate_multiplier": 1.0  # Learning rate multiplier
                }
            }
        }
    }
)

# Store job ID for next steps
job_id = job_response.id
print({job_id})
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/fine_tuning/jobs` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "model": "gpt-4o-mini",
    "method": {
      "type": "reinforcement",
      "reinforcement": {
        "grader": {
          "type": "lambda",
          "lambda": {
            "function": "arn:aws:lambda:us-west-2:123456789012:function:my-grader"
          }
        },
        "hyperparameters": {
          "n_epochs": 1,
          "batch_size": 4,
          "learning_rate_multiplier": 1.0
        }
      }
    }
  }'
```

------

## Répertorier les événements de réglage
<a name="fine-tuning-openai-list-events"></a>

Répertorie les événements nécessaires à une tâche de mise au point. Les événements de réglage précis fournissent des informations détaillées sur l'avancement de votre travail, notamment les indicateurs de formation, la création de points de contrôle et les messages d'erreur. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative à la OpenAI liste des événements de réglage précis](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list_events).

### Exemples
<a name="fine-tuning-openai-list-events-examples"></a>

Pour répertorier les événements de réglage précis, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning events
events = client.fine_tuning.jobs.list_events(
    fine_tuning_job_id="ftjob-abc123",
    limit=50
)

for event in events.data:
    print(f"[{event.created_at}] {event.level}: {event.message}")
    if event.data:
        print(f"  Metrics: {event.data}")
```

------
#### [ HTTP request ]

Envoyez une requête GET à l'adresse suivante `/v1/fine_tuning/jobs/{fine_tuning_job_id}/events` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=50
```

------

Les événements incluent des informations telles que :
+ Messages de début et de fin de la formation
+ Notifications de création de points de contrôle
+ Indicateurs d'entraînement (perte, précision) à chaque étape
+ Messages d'erreur en cas d'échec de la tâche

Pour paginer tous les événements, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Paginate through all events
all_events = []
after = None

while True:
    events = client.fine_tuning.jobs.list_events(
        fine_tuning_job_id="ftjob-abc123",
        limit=100,
        after=after
    )
    
    all_events.extend(events.data)
    
    if not events.has_more:
        break
    
    after = events.data[-1].id
```

------
#### [ HTTP request ]

Effectuez plusieurs requêtes GET avec le `after` paramètre :

```
# First request
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100

# Subsequent requests with 'after' parameter
curl "https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100&after=ft-event-abc123"
```

------

## Récupérez une tâche de réglage précis
<a name="fine-tuning-openai-retrieve-job"></a>

Obtenez des informations détaillées sur une tâche de réglage précis. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative aux tâches de réglage précis de OpenAI Retrieve](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/retrieve).

### Exemples
<a name="fine-tuning-openai-retrieve-job-examples"></a>

Pour récupérer les détails d'une tâche spécifique, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve specific job details
job_details = client.fine_tuning.jobs.retrieve(job_id)

# Print raw response
print(json.dumps(job_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Envoyez une requête GET à l'adresse suivante `/v1/fine_tuning/jobs/{fine_tuning_job_id}` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Répertorier les tâches de réglage
<a name="fine-tuning-openai-list-jobs"></a>

Répertorie les tâches de peaufinage de votre organisation grâce à la prise en charge de la pagination. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative à la OpenAI liste des tâches de réglage précis](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list).

### Exemples
<a name="fine-tuning-openai-list-jobs-examples"></a>

Pour répertorier les tâches de réglage précis avec limite et pagination, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning jobs with limit and pagination
response = client.fine_tuning.jobs.list(
    limit=20  # Maximum number of jobs to return
)

# Print raw response
print(json.dumps(response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Envoyez une requête GET à l'adresse suivante `/v1/fine_tuning/jobs` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs?limit=20 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Annuler le travail de réglage
<a name="fine-tuning-openai-cancel-job"></a>

Annule une tâche de réglage en cours. Une fois annulée, la tâche ne peut pas être reprise. Pour obtenir des informations complètes sur l'API, consultez la [documentation relative à l'OpenAIannulation de la tâche de réglage précis](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/cancel).

### Exemples
<a name="fine-tuning-openai-cancel-job-examples"></a>

Pour annuler une tâche de réglage, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Cancel fine-tuning job
cancel_response = client.fine_tuning.jobs.cancel("ftjob-abc123")

print(f"Job ID: {cancel_response.id}")
print(f"Status: {cancel_response.status}")  # Should be "cancelled"
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel` :

```
curl -X POST https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/cancel \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Répertorier les points de contrôle pour affiner
<a name="fine-tuning-openai-list-checkpoints"></a>

Répertorie les points de contrôle nécessaires à un travail de réglage précis. Les points de contrôle sont des instantanés de modèles intermédiaires créés lors du réglage précis qui peuvent être utilisés à des fins d'inférence pour évaluer les performances à différentes étapes de l'entraînement. Pour plus d'informations, consultez la documentation relative au [réglage précis OpenAI des points de contrôle de la liste](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/subresources/checkpoints/methods/list).

### Exemples
<a name="fine-tuning-openai-list-checkpoints-examples"></a>

Pour répertorier les points de contrôle pour une tâche de réglage précis, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List checkpoints for a fine-tuning job
checkpoints = client.fine_tuning.jobs.checkpoints.list(
    fine_tuning_job_id="ftjob-abc123",
    limit=10
)

for checkpoint in checkpoints.data:
    print(f"Checkpoint ID: {checkpoint.id}")
    print(f"Step: {checkpoint.step_number}")
    print(f"Model: {checkpoint.fine_tuned_model_checkpoint}")
    print(f"Metrics: {checkpoint.metrics}")
    print("---")
```

------
#### [ HTTP request ]

Envoyez une requête GET à l'adresse suivante `/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/checkpoints?limit=10
```

------

Chaque point de contrôle inclut :
+ Identifiant du **point de contrôle — Identifiant** unique du point de contrôle
+ **Numéro d'étape** — Étape de formation au cours de laquelle le point de contrôle a été créé
+ **Point de contrôle du modèle** — Identifiant du modèle pouvant être utilisé pour l'inférence
+ **Métriques** — Perte de validation et précision à ce point de contrôle

Pour utiliser un modèle de point de contrôle à des fins d'inférence, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Test inference with a checkpoint
response = client.chat.completions.create(
    model=checkpoint.fine_tuned_model_checkpoint,
    messages=[{"role": "user", "content": "What is AI?"}],
    max_tokens=100
)

print(response.choices[0].message.content)
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/chat/completions` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom:7p4lURel:ckpt-step-1000",
    "messages": [{"role": "user", "content": "What is AI?"}],
    "max_tokens": 100
  }'
```

------

## Exécutez l'inférence avec un modèle affiné
<a name="fine-tuning-openai-inference"></a>

Une fois votre travail de réglage terminé, vous pouvez utiliser le modèle affiné à des fins d'inférence via l'API Responses ou l'API Chat Completions. Pour obtenir des informations complètes sur l'API, consultez[Générez des réponses en utilisant OpenAI APIs](bedrock-mantle.md).

### API de réponses
<a name="fine-tuning-openai-responses-api"></a>

Utilisez l'API Responses pour générer du texte en un tour avec votre modèle affiné :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference with Responses API
    response = client.completions.create(
        model=fine_tuned_model,
        prompt="What is the capital of France?",
        max_tokens=100,
        temperature=0.7
    )
    
    print(f"Response: {response.choices[0].text}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/completions` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "prompt": "What is the capital of France?",
    "max_tokens": 100,
    "temperature": 0.7
  }'
```

------

### API de complétion des discussions
<a name="fine-tuning-openai-inference-examples"></a>

Utilisez l'API Chat Completions pour les interactions conversationnelles avec votre modèle affiné :

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference
    inference_response = client.chat.completions.create(
        model=fine_tuned_model,
        messages=[
            {"role": "user", "content": "What is the capital of France?"}
        ],
        max_tokens=100
    )
    
    print(f"Response: {inference_response.choices[0].message.content}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Faites une demande POST pour `/v1/chat/completions` :

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "messages": [
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "max_tokens": 100
  }'
```

------

# Évaluez votre modèle RFT
<a name="rft-evaluate-model"></a>

Une fois que votre travail de mise au point du renforcement est terminé avec succès, vous pouvez évaluer les performances de votre modèle personnalisé à l'aide de plusieurs méthodes d'évaluation. Amazon Bedrock fournit des outils d'évaluation intégrés pour vous aider à comparer votre modèle RFT au modèle de base et à valider les améliorations.

**Topics**
+ [Méthodes d'évaluation](#rft-evaluation-methods)
+ [Configuration de l'inférence pour l'évaluation](#rft-setup-inference-evaluation)
+ [Bonnes pratiques en matière d'évaluation](#rft-evaluation-best-practices)

## Méthodes d'évaluation
<a name="rft-evaluation-methods"></a>

Amazon Bedrock propose plusieurs méthodes pour évaluer les performances de votre modèle RFT.

### Métriques de validation
<a name="rft-validation-metrics"></a>

Si vous chargez un ensemble de données de validation, deux graphiques supplémentaires apparaîtront dans les métriques d'entraînement.
+ **Récompenses de validation** : montre dans quelle mesure votre modèle se généralise au-delà des exemples de formation. Des scores inférieurs à ceux des récompenses d'entraînement sont normaux et attendus.
+ Durée **des épisodes de validation** : durée moyenne des réponses sur des données de validation invisibles. Montre l'efficacité avec laquelle votre modèle répond aux nouvelles entrées par rapport aux exemples d'apprentissage.

### Test dans Playground
<a name="rft-test-playground"></a>

Utilisez la fonctionnalité Test in Playground pour des évaluations rapides et ad hoc. Pour utiliser la fonctionnalité Test in Playground, l'inférence doit être configurée. Pour de plus amples informations, veuillez consulter [Configuration de l'inférence pour l'évaluation](#rft-setup-inference-evaluation).

Cet outil interactif vous permet de :
+ Testez les instructions directement avec votre modèle RFT
+ Comparez les réponses side-by-side entre votre modèle personnalisé et le modèle de base
+ Évaluez les améliorations de la qualité des réponses en temps réel
+ Testez différentes instructions pour évaluer les capacités du modèle

### Évaluation du modèle Bedrock
<a name="rft-model-evaluation"></a>

Utilisez l'évaluation du modèle d'Amazon Bedrock pour évaluer votre modèle RFT à l'aide de vos propres ensembles de données. Cela fournit une analyse complète des performances avec des métriques et des benchmarks standardisés. Voici quelques exemples des avantages de l'évaluation du modèle Amazon Bedrock.
+ Évaluation systématique à l'aide d'ensembles de données de test personnalisés
+ Comparaisons de performances quantitatives
+ Des mesures standardisées pour une évaluation cohérente
+ Intégration aux flux de travail d'évaluation Amazon Bedrock existants

## Configuration de l'inférence pour l'évaluation
<a name="rft-setup-inference-evaluation"></a>

Avant d'évaluer votre modèle RFT, configurez l'inférence à l'aide de l'une des options suivantes :

### Inférence à la demande
<a name="rft-on-demand-inference"></a>

Créez un modèle personnalisé de déploiement à la demande pour une pay-per-use évaluation flexible. Cette option inclut une tarification basée sur les jetons qui est facturée en fonction du nombre de jetons traités lors de l'inférence.

## Bonnes pratiques en matière d'évaluation
<a name="rft-evaluation-best-practices"></a>
+ **Comparez systématiquement** : évaluez toujours votre modèle RFT par rapport au modèle de base en utilisant les mêmes instructions de test et les mêmes critères d'évaluation.
+ **Utilisez des cas de test variés** : incluez différents types d'invite et scénarios qui représentent vos cas d'utilisation réels.
+ **Validez l'alignement des récompenses** : assurez-vous que les améliorations de votre modèle correspondent aux fonctions de récompense utilisées pendant l'entraînement.
+ **Tester les cas de pointe** : évaluez le comportement du modèle sur des entrées difficiles ou inhabituelles afin d'évaluer sa robustesse.
+ **Surveillez la cohérence des réponses** : vérifiez que votre modèle fournit une qualité constante sur plusieurs cycles avec des instructions similaires.