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.
Préparation des données pour SFT sur Amazon Nova 2
SFT sur Amazon Nova 2 permet de comprendre du texte, des images, des vidéos et des documents, ainsi que d'appeler des outils, avec ou sans support de raisonnement. Cette page décrit les contraintes, les formats pris en charge et les meilleures pratiques pour préparer les données d'entraînement SFT pour les modèles Amazon Nova 2 Understanding.
Astuce
Pour valider le format de votre jeu de données avant de commencer une tâche de formation, consultezOutils de validation.
Rubriques
Format de données
Les données Amazon Nova 2 SFT utilisent le même format d'API Converse qu'Amazon Nova 1, avec l'ajout de champs de contenu de raisonnement facultatifs.
Chaque ligne de votre fichier d'entraînement JSONL est un objet JSON avec les champs de niveau supérieur suivants. Développez une section pour en savoir plus :
Obligatoire. Le messages champ est un tableau d'objets de message, dont chacun définit un tournant dans la conversation. Un objet de message contient les champs suivants :
-
rôle — Obligatoire. Définit si le message provient de
user(l'invite envoyée au modèle) ouassistant(la réponse du modèle). Le premier tour doit avoir lieuuser, le dernier doit l'être etassistantles tours doivent alterner. -
contenu — Obligatoire. Un tableau de blocs de contenu pour ce tour.
Le content champ correspond à un tableau de blocs de contenu. Les données Amazon Nova 2 SFT prennent en charge les blocs suivants :
Tableau facultatif qui définit une invite système : instructions ou contexte pour le modèle concernant la tâche qu'il doit effectuer ou le personnage qu'il doit adopter. Pour de meilleurs résultats, utilisez la même invite du système pendant l'entraînement et lors de l'inférence.
"system": [ { "text": "You are a helpful assistant." } ]
Objet facultatif qui définit les outils que le modèle peut utiliser pendant la conversation. Chaque outil est défini avec un nom, une description et un schéma JSON pour ses paramètres d'entrée.
"toolConfig": { "tools": [ { "toolSpec": { "name": "tool-name", "description": "tool-description", "inputSchema": { "json": { "type": "object", "properties": { "param": { "type": "string", "description": "param-description" } }, "required": ["param"] } } } } ] }
Obligatoire. Champ de chaîne identifiant la version du schéma. Il peut s'agir de n'importe quelle valeur de chaîne.
"schemaVersion": "bedrock-conversation-2024"
Validation de vos données
Avant de soumettre votre projet de formation, validez votre ensemble de données pour détecter rapidement les problèmes de mise en forme. Pour les outils de validation disponibles, consultezOutils de validation.
Entrées d'échantillons
Vous trouverez ci-dessous des exemples complets d'objets JSON montrant comment combiner les champs et les blocs de contenu pour différentes modalités.
Fonctionnalités prises en charge
Le tableau suivant compare les fonctionnalités prises en charge par SFT dans toutes les versions du modèle Nova.
| Fonctionnalité | SFT sur Nova 2.0 |
|---|---|
| Compréhension de texte | Pris en charge sur Nova 2.0 Lite. Consultez General/Text compréhension. |
| Compréhension des images | Pris en charge sur Nova 2.0 Lite. Consultez Compréhension des images. |
| Compréhension des vidéos | Pris en charge sur Nova 2.0 Lite. Consultez Compréhension des vidéos. |
| Compréhension des documents | Pris en charge sur Nova 2.0 Lite. Consultez Compréhension des documents. |
| Appel d'outils | Pris en charge sur Nova 2.0 Lite. Consultez Appel d'outils. |
| Raisonnement | Pris en charge sur Nova 2.0 Lite. Consultez Raisonnement. |
General/Text compréhension
Cette section récapitule les contraintes générales liées à la préparation des données d'entraînement SFT sur Amazon Nova 2.
Contraintes
| Contrainte | Détails |
|---|---|
| Format du jeu de données | JSONL (un objet JSON par ligne). Les noms de fichiers ne peuvent être composés que de caractères alphanumériques, de traits de soulignement, de tirets, de barres obliques et de points. |
| Échantillons minimum | 8 |
| Nombre maximum d'échantillons | 20 000 |
| Longueur de contexte | 32 000 |
| Homogénéité des ensembles de données | Un ensemble de données ne peut pas mélanger différentes modalités médiatiques. Utilisez du texte avec des images, du texte avec des vidéos ou du texte avec des documents, mais pas une combinaison des deux. |
| Mots-clés réservés | User:,Bot:, Assistant:System:,<image>,<video>,[EOS]. Les instructions contenant ces mots clés entraîneront l'échec de la tâche de formation. Remplacez-les par différents mots clés ayant des significations similaires. |
Bonnes pratiques
La taille minimale des données à ajuster dépend de la tâche (complexe ou simple), mais nous vous recommandons de disposer d'au moins 200 échantillons pour chaque tâche que vous souhaitez que le modèle apprenne.
Nous vous recommandons d’utiliser votre invite optimisée dans un paramètre zero-shot pendant l’entraînement et l’inférence afin d’obtenir les meilleurs résultats.
Privilégiez la qualité à la quantité. Quelques centaines d'exemples cohérents et de haute qualité surpassent généralement des milliers d'exemples bruyants ou contradictoires.
Exemple d'entrée
schemaVersionpeut être n’importe quelle valeur de chaîneLes rôles pris en charge sont
useretassistant. Le tour (facultatif)systempeut être une invite système personnalisée fournie par le client.Le premier tour dans
messagesdoit toujours commencer par"role": "user". Le dernier tour est la réponse du bot, indiquée par"role": "assistant".
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "text": "The closest country is New Zealand" } ] } ] }
Compréhension des images
SFT prend en charge la formation sur les tâches basées sur l'image, permettant à votre modèle d'apprendre à analyser les images et à y répondre.
Contraintes
| Contrainte | Détails |
|---|---|
| Formats pris en charge | PNG, JPEG, GIF, WebP |
| Nombre maximum d'images par échantillon | 10 |
| Taille maximale du fichier image | 10 Mo |
| Homogénéité des ensembles de données | Un échantillon peut contenir des images et du texte, mais ne peut pas comporter d'images combinées à d'autres modalités (vidéos, documents). |
| Emplacement S3 | image.source.s3Location.uriIl doit se trouver dans le même compartiment Amazon S3 que votre ensemble de données. Par exemple, si votre jeu de données se trouve dans s3://amzn-s3-demo-bucket/train/train.jsonl, vos images ou vidéos doivent se trouver dans s3://amzn-s3-demo-bucket |
Bonnes pratiques
Assurez-vous que les images sont de haute qualité et pertinentes pour la tâche.
Fournissez divers exemples couvrant différents types d'images et formats de questions.
Incluez des questions claires qui font référence à des aspects spécifiques du contenu de l'image.
Exemple d'entrée
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } }, { "text": "Which country is highlighted in the image?" } ] }, { "role": "assistant", "content": [ { "text": "The highlighted country is New Zealand" } ] } ] }
Compréhension des vidéos
SFT prend en charge la formation sur les tâches basées sur la vidéo, permettant à votre modèle d'apprendre à analyser le contenu vidéo et à y répondre.
Contraintes
| Contrainte | Détails |
|---|---|
| Formats pris en charge | MOV, MKV, MP4, WebM |
| Nombre maximum de vidéos par échantillon | 1 |
| Taille maximale du fichier vidéo | 50 Mo |
| Durée maximale de la vidéo | 15 minutes |
| Homogénéité des ensembles de données | Un échantillon peut contenir de la vidéo et du texte, mais ne peut pas combiner la vidéo avec d'autres modalités (images, documents). |
| Emplacement S3 | video.source.s3Location.uriIl doit se trouver dans le même compartiment Amazon S3 que votre ensemble de données. Par exemple, si votre jeu de données se trouve danss3://amzn-s3-demo-bucket/train/train.jsonl, vos vidéos doivent être dans s3://amzn-s3-demo-bucket |
Bonnes pratiques
Veillez à ce que les vidéos soient concises et centrées sur le contenu pertinent pour votre tâche.
Assurez-vous que la qualité vidéo est suffisante pour que le modèle puisse extraire des informations pertinentes.
Posez des questions claires qui font référence à des aspects spécifiques du contenu vidéo.
Incluez divers exemples couvrant différents types de vidéos et formats de questions.
Exemple d'entrée
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }
Compréhension des documents
SFT prend en charge la formation sur les tâches basées sur des documents, permettant à votre modèle d'apprendre à analyser les documents PDF et à y répondre.
Contraintes
| Contrainte | Détails |
|---|---|
| Format pris en charge | |
| Taille maximale du document | 10 Mo |
| Homogénéité des ensembles de données | Un échantillon peut contenir des documents et du texte, mais ne peut pas contenir de documents mélangés à d'autres modalités (images, vidéos). |
| Emplacement S3 | document.source.s3Location.uriIl doit se trouver dans le même compartiment Amazon S3 que votre ensemble de données. Par exemple, si votre jeu de données se trouve danss3://amzn-s3-demo-bucket/train/train.jsonl, alors vos documents doivent être dans s3://amzn-s3-demo-bucket |
Bonnes pratiques
Assurez-vous que les documents sont clairement mis en forme et que le texte est extractible.
Fournissez divers exemples couvrant différents types de documents et formats de questions.
Incluez un contenu de raisonnement pour aider le modèle à apprendre les modèles d'analyse des documents.
Exemple d'entrée
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }
Appel d'outils
SFT prend en charge les modèles d'entraînement sur les modèles d'appel d'outils, permettant à votre modèle d'apprendre quand et comment invoquer des outils ou des fonctions externes.
Contraintes
| Contrainte | Détails |
|---|---|
| Formats pris en charge | Texte ou JSON pour le ToolResult contenu |
| ToolUse placement | ToolUse doit apparaître uniquement dans les tours d'assistant |
| ToolResult placement | ToolResult doit apparaître uniquement lors des tours des utilisateurs |
| Format de schéma d'entrée | L'InputSchema dans le ToolSpec doit être un objet JSON Schema valide |
| UseId correspondance des outils | Chacun ToolResult doit faire référence à un outil valide UseId d'un assistant précédent ToolUse, chaque outil étant UseId utilisé exactement une fois par conversation |
Bonnes pratiques
Assurez-vous que les définitions de vos outils sont cohérentes dans tous les exemples de formation.
Le modèle apprend les modèles d'appel des outils à partir des démonstrations que vous fournissez.
Incluez divers exemples indiquant quand utiliser chaque outil et quand ne pas utiliser les outils.
Exemple d'entrée
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemAvailability", "description": "Retrieve whether an item is available in a given location", "inputSchema": { "json": { "type": "object", "properties": { "zipcode": { "type": "string", "description": "The zipcode of the location to check in" }, "quantity": { "type": "integer", "description": "The number of items to check availability for" }, "item_id": { "type": "string", "description": "The ASIN of item to check availability for" } }, "required": ["item_id", "zipcode"] } } } } ] }, "messages": [ { "role": "user", "content": [ { "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086" } ] }, { "role": "assistant", "content": [ { "toolUse": { "toolUseId": "getItemAvailability_0", "name": "getItemAvailability", "input": { "zipcode": "94086", "quantity": 20, "item_id": "id-123" } } } ] }, { "role": "user", "content": [ { "toolResult": { "toolUseId": "getItemAvailability_0", "content": [ { "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]" } ] } } ] }, { "role": "assistant", "content": [ { "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?" } ] } ] }
Raisonnement
Le contenu du raisonnement (également appelé chaîne de pensée) capture les étapes de réflexion intermédiaires du modèle avant de générer une réponse finale.
Contraintes
| Contrainte | Détails |
|---|---|
| Format pris en charge | Texte uniquement. Image-based le contenu du raisonnement n'est pas pris en charge. |
| Placement | L'assistant tourne uniquement, via le reasoningContent terrain. |
| Mise en forme | Utilisez du texte brut. Évitez les balises de balisage telles que « <thinking> et », </thinking> sauf si cela est spécifiquement requis par votre tâche. |
Bonnes pratiques
High-quality le contenu du raisonnement doit inclure des pensées intermédiaires, des déductions logiques, des approches de résolution de problèmes étape par étape et des liens explicites entre les étapes et les conclusions.
Vous pouvez inclure
reasoningContentplusieurs tours d'assistant dans des conversations à plusieurs tours.Si votre jeu de données ne contient pas de traces de raisonnement, vous pouvez les créer à l'aide d'un modèle capable de raisonner tel que Nova Premier.
Exemple d'entrée
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to use my world knowledge of geography to answer this question" } } }, { "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea." } ] } ] }
Remarques supplémentaires
Comment est calculée la perte :
Avec contenu de raisonnement — La perte d'entraînement inclut à la fois les jetons de raisonnement et les jetons de sortie finale.
Sans contenu raisonné — La perte d'entraînement est calculée uniquement sur les jetons de sortie finaux.
Définissez reasoning_enabled: true ce paramètre dans votre configuration d'entraînement lorsque vos données d'entraînement contiennent des jetons de raisonnement, si vous souhaitez que le modèle génère des jetons de réflexion avant de produire des résultats finaux, ou si vous avez besoin d'améliorer les performances sur des tâches de raisonnement complexes.
Définissez ce reasoning_enabled: false paramètre lorsque vos données d'entraînement ne comportent pas de jetons de raisonnement, lorsque vous vous entraînez sur des tâches simples qui ne bénéficient pas d'étapes de raisonnement explicites, ou si vous souhaitez optimiser la vitesse et réduire l'utilisation des jetons.
L'entraînement de Nova sur un ensemble de données non raisonné avec reasoning_enabled = true est autorisé. Cependant, cela peut entraîner la perte de capacité de raisonnement du modèle, car Nova apprend principalement à générer les réponses présentées dans les données sans appliquer de raisonnement. En général, activez le raisonnement à la fois pour l'entraînement et l'inférence lorsque vous utilisez des ensembles de données de raisonnement, et désactivez-le pour les deux lorsque vous utilisez des ensembles de données non raisonnés.
Conception d'exemples de formation efficaces
Vos données d'entraînement doivent démontrer le comportement que vous souhaitez que le modèle présente. La SFT enseigne au modèle comment réagir, et non pas ce qu'il faut savoir. Si vous créez des exemples de formation principalement pour apporter des connaissances factuelles (par exemple, « Que E-45 signifie un code d'erreur ? » avec la réponse « E-45 indique un délai d'attente du capteur »), demandez-vous si le RAG ou Prompt Engineering peuvent obtenir le même résultat sans réglage précis.
Lorsque vous convertissez les données source au format conversationnel, suivez les principes suivants :
-
Commencez par de vraies requêtes d'utilisateurs. Le mode Write user reflète la façon dont les utilisateurs finaux demanderont réellement le modèle en production. Évitez les questions artificielles ou trop simplifiées qui ne reflètent pas les véritables habitudes d'utilisation.
-
Rédigez des réponses d'assistant de référence. Chaque tour d'assistant doit être la réponse idéale que vous souhaitez que le modèle produise : correcte, bien formatée et cohérente dans le ton et la structure de tous les exemples.
-
Utilisez l'invite du système de manière stratégique. Placez des instructions persistantes telles que le format de sortie, la personnalité et le contexte du domaine dans le tour du système. Utilisez la même invite du système pendant l'entraînement et l'inférence pour obtenir les meilleurs résultats.
-
Concentrez-vous sur une compétence par échantillon dans les exemples. Si vous avez besoin du modèle pour classer, répondre à des questions et résumer, créez des ensembles d'exemples distincts pour chaque compétence plutôt que de combiner plusieurs compétences dans un seul échantillon.
-
Privilégiez la qualité à la quantité. Quelques centaines d'exemples cohérents et de haute qualité surpassent généralement des milliers d'exemples bruyants ou contradictoires. Dédupliquez et révisez vos données avant l'entraînement.
Modèles courants de transformation des données
Les modèles suivants montrent comment convertir les formats de données d'entreprise courants en exemples de formation SFT efficaces.
Modèle 1 : enregistrements structurés à classer ou à rechercher
Lorsque vos données source sont une table ou une base de données d'enregistrements contenant des champs tels que issuecause, etresolution, encadrez chaque enregistrement comme une question utilisateur avec les champs de saisie pertinents et la réponse de l'assistant comme champs de sortie cibles.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a technical support assistant. Given an issue description, identify the most likely root cause and recommended resolution." } ], "messages": [ { "role": "user", "content": [ { "text": "A user reports: 'Application crashes on startup after the latest update.' What is the likely cause and resolution?" } ] }, { "role": "assistant", "content": [ { "text": "Cause: Incompatible configuration file from the previous version.\nResolution: Delete the local configuration cache and restart the application to regenerate default settings." } ] } ] }
Modèle 2 : données hiérarchiques ou taxonomiques par rapport à des questions et réponses structurées &
Lorsque vos données sources sont une hiérarchie de code ou une taxonomie, telle que des arbres de catégories de produits ou des systèmes de classification, générez des questions demandant au modèle de naviguer dans la hiérarchie. Incluez le contexte de classification dans l'invite du système ou dans le tour de l'utilisateur.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a product catalog assistant. Answer questions about product categories and classifications accurately." } ], "messages": [ { "role": "user", "content": [ { "text": "What top-level category does product code 'EL-4520' belong to, and what subcategories does it include?" } ] }, { "role": "assistant", "content": [ { "text": "Product code EL-4520 belongs to the Electronics category. It includes the subcategories: Audio Equipment, Portable Speakers, and Wireless Accessories." } ] } ] }
Modèle 3 : des documents procéduraux au dialogue pédagogique
Lorsque vos données sources se composent de procédures opérationnelles standard, de runbooks ou de guides étape par étape, convertissez les procédures en questions orientées vers les tâches. L'utilisateur demande comment effectuer une tâche et l'assistant fournit les étapes dans un format cohérent.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an IT operations assistant. Provide step-by-step instructions based on approved runbooks and standard operating procedures." } ], "messages": [ { "role": "user", "content": [ { "text": "How do I reset a user's multi-factor authentication when they have lost access to their device?" } ] }, { "role": "assistant", "content": [ { "text": "Follow these steps to reset a user's multi-factor authentication:\n1. Verify the user's identity using the approved verification procedure.\n2. Disable the existing MFA configuration in the identity management console.\n3. Generate a new temporary access code and send it to the user's verified email.\n4. Instruct the user to log in with the temporary code and re-enroll their new device.\n5. Confirm the new MFA device is working by requesting a test authentication.\n6. Document the reset in the support ticket." } ] } ] }
Note
Dans les modèles 1 et 2, si le contenu factuel (tel que les codes, les catégories ou les résolutions) ne figure pas déjà dans les données de pré-entraînement du modèle, envisagez d'utiliser RAG pour fournir ces informations au moment de l'inférence plutôt que de vous fier uniquement à SFT pour les mémoriser. Le SFT est le plus efficace pour enseigner au modèle le format de réponse et le modèle de raisonnement, tandis que RAG gère les bases factuelles.