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 incluent :
-
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.
Note
Pour plus d'informations sur les images de conteneurs ou les exemples de recettes à utiliser, consultez les recettes Amazon Nova.
Rubriques
Vous trouverez ci-dessous un exemple de recette pour SFT. Vous pouvez trouver cette recette et d'autres dans le référentiel de recettes
run: name: my-full-rank-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # only and not compatible with SageMaker Training Jobs replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved save_top_k: 5 # Keep top K best checkpoints. Note supported only for jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT
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: falseou 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 :
-
Désactiver le raisonnement pendant l'entraînement (
reasoning_enabled: false) -
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.
Note
Pour plus d'informations sur les images de conteneurs ou les exemples de recettes à utiliser, consultez les recettes Amazon Nova.
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 toolUseId à un assistant précédent valide ToolUse, toolUseId utilisé exactement une fois par conversation
Note
Pour plus d'informations sur les images de conteneurs ou les exemples de recettes à utiliser, consultez les recettes Amazon Nova.
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)
Note
Pour plus d'informations sur les images de conteneurs ou les exemples de recettes à utiliser, consultez les recettes Amazon Nova.
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)
Note
Pour plus d'informations sur les images de conteneurs ou les exemples de recettes à utiliser, consultez les recettes Amazon Nova.
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 ...
Paramètres de réglage SFT
Les paramètres disponibles pour le réglage avec SFT sont les suivants :
Configuration d'exécution
-
nom : nom descriptif de votre poste de formation. Cela permet d'identifier votre tâche dans la console AWS de gestion.
-
model_type : variante du modèle Amazon Nova à utiliser. Les options disponibles sont les
amazon.nova-2-lite-v1:0:256ksuivantes : -
model_name_or_path : chemin vers le modèle de base à utiliser pour votre entraînement. Les options disponibles sont
nova-lite-2/prod, ou le chemin S3 pour le point de contrôle post-entraînement ()s3://customer-escrow-bucket-unique_id/training_run_name. -
répliques : nombre d'instances de calcul à utiliser pour la formation distribuée. Les valeurs disponibles varient en fonction du modèle que vous choisissez. Amazon Nova Lite 2.0 prend en charge 4, 8, 16 ou 32 répliques.
-
data_s3_path : emplacement S3 du jeu de données d'entraînement, qui est un fichier JSONL. Ce fichier doit résider dans le même AWS compte et dans la même région que le cluster. Tous les emplacements S3 fournis doivent se trouver dans le même compte et la même région.
-
validation_data_s3_path : (Facultatif) L'emplacement S3 du jeu de données de validation, qui est un fichier JSONL. Ce fichier doit résider dans le même compte et la même région que le cluster. Tous les emplacements S3 fournis doivent se trouver dans le même compte et la même région.
-
output_s3_path : emplacement S3 où le manifeste et les journaux sont stockés. TensorBoard Tous les emplacements S3 fournis doivent se trouver dans le même AWS compte et dans la même AWS région.
-
mlflow_tracking_uri : l'ARN de l'application à utiliser pour MLFlow la journalisation. MLFlow
-
mlflow_experiment_name : nom de l'expérience. MLFlow
-
mlflow_run_name : nom de l'exécution. MLFlow
Configuration de la formation
-
max_steps : le nombre d'étapes d'entraînement à exécuter. Chaque étape entraînera le modèle avec un
global_batch_sizecertain nombre d'éléments. -
save_steps : fréquence (en étapes) à laquelle enregistrer les points de contrôle du modèle pendant l'entraînement.
-
save_top_k : Le nombre maximum de meilleurs points de contrôle à conserver en fonction des métriques de validation.
-
max_length : longueur de séquence maximale en jetons. Détermine la taille de la fenêtre contextuelle pour l’entraînement. La valeur maximale prise en charge est de 32 768 jetons pour SFT.
Des séquences plus longues amélioreront l’efficacité de l’entraînement au prix d’une augmentation des exigences de mémoire. Nous vous recommandons de faire correspondre le paramètre max_length à la distribution de vos données.
-
global_batch_size : nombre total d'échantillons d'entraînement traités ensemble en un seul passage en avant ou en arrière sur tous les appareils et tous les travailleurs.
Cette valeur multiplie la taille du lot par appareil et le nombre d’appareils. Cela affecte la stabilité de l’entraînement et le débit. Nous vous recommandons de commencer par une taille de lot adaptée à la mémoire, puis d’augmenter verticalement à partir de là. Pour les données spécifiques à un domaine, des lots plus importants peuvent trop lisser les gradients.
-
reasoning_enabled : indicateur booléen pour activer les capacités de raisonnement pendant l'entraînement.
Planificateur de taux d'apprentissage
-
warmup_steps : nombre d'étapes pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l’entraînement.
-
min_lr : Le taux d'apprentissage minimum à la fin de la décadence. Les valeurs valides sont comprises entre 0 et 1 inclus, mais doivent être inférieures au taux d’apprentissage.
Configuration de l'optimiseur
-
lr : le taux d'apprentissage, qui contrôle la taille des étapes lors de l'optimisation. Nous recommandons des valeurs comprises entre 1e-6 et 1e-4 pour de bonnes performances. Les valeurs valides sont comprises entre 0 et 1 inclus.
-
weight_decay : La force de régularisation L2. Des valeurs plus élevées (entre 0,01 et 0,1) augmentent la régularisation.
-
adam_beta1 : Le taux de décroissance exponentiel pour les premières estimations dans l'optimiseur Adam. La valeur par défaut est 0,9.
-
adam_beta2 : Le taux de décroissance exponentiel pour le deuxième instant est estimé dans l'optimiseur Adam. La valeur par défaut est 0,95.
Configuration PEFT
-
peft_scheme : schéma de réglage fin efficace en termes de paramètres à utiliser. Les options concernent
'null'un réglage précis du rang complet ou un réglage précis basé surloraLoRA.
Réglage LoRa (lorsque peft_scheme est « lora »)
-
alpha : paramètre de mise à l'échelle LoRa. Contrôle l'amplitude de l'adaptation de rang inférieur. Les valeurs typiques sont comprises entre 8 et 128.
-
lora_plus_lr_ratio : taux d'apprentissage pour l'optimisation LoRa+. Ce multiplicateur ajuste le taux d'apprentissage spécifiquement pour les paramètres LoRa.
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.