SFT sur Nova 2.0 - Amazon SageMaker AI

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.

SFT sur Nova 2.0

Amazon Nova Lite 2.0 apporte des fonctionnalités améliorées pour un réglage précis supervisé, notamment un mode de raisonnement avancé, une meilleure compréhension multimodale et une gestion étendue du contexte. SFT on Nova 2.0 vous permet d'adapter ces puissantes fonctionnalités à vos cas d'utilisation spécifiques tout en maintenant les performances supérieures du modèle pour les tâches complexes.

Les principales fonctionnalités de SFT on Nova 2.0 sont les suivantes :

  • Support du mode raisonnement : entraînez des modèles pour générer des traces de raisonnement explicites avant les réponses finales pour des capacités analytiques améliorées.

  • Formation multimodale avancée : affinez la compréhension des documents (PDF), la compréhension vidéo et les tâches basées sur des images avec une précision accrue.

  • Capacités d'appel d'outils : entraînez les modèles à utiliser efficacement des outils externes et des fonctions nécessitant des flux de travail complexes.

  • Support contextuel étendu : tirez parti de fenêtres contextuelles plus longues avec une stabilité et une précision accrues pour les applications gourmandes en documents.

Sélection du mode de raisonnement (Nova 2.0 uniquement)

Amazon Nova 2.0 prend en charge le mode raisonnement pour des capacités analytiques améliorées :

  • Mode de raisonnement (activé) :

    • reasoning_enabled: trueParamétré dans la configuration d'entraînement

    • Modélisez des trains pour générer des traces de raisonnement avant les réponses finales

    • Améliore les performances lors de tâches de raisonnement complexes

  • Mode sans raisonnement (désactivé) :

    • Définir reasoning_enabled: false ou omettre le paramètre (par défaut)

    • SFT standard sans raisonnement explicite

    • Convient aux tâches qui ne bénéficient pas du step-by-step raisonnement

Note
  • Lorsque le raisonnement est activé, il fonctionne avec un effort de raisonnement élevé. Il n'existe pas d'option de faible raisonnement pour SFT.

  • Le contenu du raisonnement multimodal n'est pas pris en charge pour SFT. Le mode de raisonnement s'applique aux entrées contenant uniquement du texte.

L'entraînement d'Amazon Nova sur un ensemble de données non raisonné avec reasoning_enabled: true est autorisé. Cela risque toutefois de faire perdre au modèle ses capacités de raisonnement, car Amazon Nova apprend principalement à générer les réponses présentées dans les données sans appliquer de raisonnement.

Si vous entraînez Amazon Nova sur un ensemble de données non raisonné mais que vous souhaitez tout de même utiliser le raisonnement lors de l'inférence :

  1. Désactiver le raisonnement pendant l'entraînement (reasoning_enabled: false)

  2. Permettre le raisonnement ultérieurement lors de l'inférence

Bien que cette approche permette de raisonner au moment de l'inférence, elle ne garantit pas une amélioration des performances par rapport à l'inférence sans raisonnement.

Bonne pratique : activez le raisonnement à la fois pour l'entraînement et pour 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 sans raisonnement.

Format des données d'appel de l'outil

SFT prend en charge les modèles de formation à l'utilisation des outils (appel de fonctions). Vous trouverez ci-dessous un exemple de format de saisie pour l'appel d'outils :

Exemple de saisie :

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemCost", "description": "Retrieve the cost of an item from the catalog", "inputSchema": { "json": { "type": "object", "properties": { "item_name": { "type": "string", "description": "The name of the item to retrieve cost for" }, "item_id": { "type": "string", "description": "The ASIN of item to retrieve cost for" } }, "required": [ "item_id" ] } } } }, { "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": [ { "reasoningContent": { "reasoningText": { "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086" } } }, { "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?" } ] } ] }

Considérations importantes concernant les données relatives aux appels d'outils :

  • ToolUse doit apparaître uniquement dans les virages d'assistant

  • ToolResult doit apparaître uniquement au tour de l'utilisateur

  • ToolResult doit être uniquement en texte ou en JSON ; les autres modalités ne sont actuellement pas prises en charge pour les modèles Amazon Nova

  • L'InputSchema du ToolSpec doit être un objet de schéma JSON valide

  • Chacun ToolResult doit faire référence à une toolUseId version valide d'un assistant précédent ToolUse, chacune étant toolUseId utilisée exactement une fois par conversation

Document comprenant le format des données

SFT prend en charge les modèles de formation sur les tâches de compréhension des documents. Vous trouverez ci-dessous un exemple de format de saisie :

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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the document to answer the question.", "type": "text" } ] } ] }

Considérations importantes pour la compréhension des documents :

  • Seuls les fichiers PDF sont pris en charge

  • La taille maximale du document est de 10 Mo

  • Un échantillon peut contenir des documents et du texte, mais ne peut pas mélanger des documents avec d'autres modalités (telles que des images ou des vidéos)

Compréhension vidéo pour SFT

SFT prend en charge le réglage précis des modèles pour les tâches de compréhension vidéo. Vous trouverez ci-dessous un exemple de format de saisie :

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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the video to answer the question.", "type": "text" } ] } ] }

Considérations importantes pour la compréhension de la vidéo :

  • Les vidéos peuvent atteindre un maximum de 50 Mo

  • Les vidéos peuvent durer jusqu'à 15 minutes

  • Une seule vidéo est autorisée par échantillon ; les vidéos multiples dans le même échantillon ne sont pas prises en charge

  • Un échantillon peut contenir de la vidéo et du texte, mais ne peut pas mélanger la vidéo avec d'autres modalités (telles que des images ou des documents)

Instructions de téléchargement des données

Téléchargez des ensembles de données de formation et de validation dans un compartiment S3. Spécifiez les emplacements suivants dans le run bloc de la recette :

## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"

Remarque : remplacez<bucket-name>,<training-directory>, <validation-directory><training-file>, et <validation-file> par des chemins S3 réels.

Remarque : Les ensembles de données de validation ne sont actuellement pas pris en charge pour SFT avec Amazon Nova 2.0. Si un ensemble de données de validation est fourni, il sera ignoré.

Création d'un Job de peaufinage

Définissez le modèle de base à l'aide model_name_or_path des champs model_type et du run bloc :

## Run config run: ... model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod ...

Guidage des hyperparamètres

Utilisez les hyperparamètres recommandés suivants en fonction de l'approche d'entraînement :

Entraînement complet

  • Époques : 1

  • Taux d'apprentissage (lr) : 1e-5

  • Taux d'apprentissage minimal (min_lr) : 1e-6

LoRa (adaptation de bas rang)

  • Époques : 2

  • Taux d'apprentissage (lr) : 5e-5

  • Taux d'apprentissage minimal (min_lr) : 1e-6

Remarque : ajustez ces valeurs en fonction de la taille du jeu de données et des performances de validation. Surveillez les indicateurs d'entraînement pour éviter le surajustement.