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é-formation continue (CPT)
La formation préalable continue (CPT) est le processus qui consiste à poursuivre la formation d'un modèle de base préentraîné sur de nouvelles données en utilisant les mêmes objectifs non supervisés (tels que la modélisation du langage masqué ou la modélisation du langage causal). Il préserve les capacités linguistiques générales précédemment apprises tout en s'adaptant à de nouveaux domaines ou à des changements de distribution.
Le CPT n'implique pas de modifications architecturales ni de réglages précis pour des tâches spécifiques en aval. Au lieu de cela, il étend la capacité de compréhension linguistique du modèle d'une manière adaptée au domaine.
Vous devez utiliser le CPT dans les scénarios suivants :
-
Vous disposez de données à grande échelle, non étiquetées, spécifiques à un domaine (par exemple, la médecine ou la finance).
-
Vous souhaitez que le modèle conserve les fonctionnalités linguistiques générales tout en améliorant le contenu spécifique au domaine.
-
Vous souhaitez améliorer les performances à zéro ou à quelques coups dans des domaines spécialisés sans effectuer de réglages précis approfondis spécifiques à une tâche.
Exigences relatives au format des données
Nous vous recommandons de respecter les caractéristiques de l'ensemble de données suivantes lors de l'exécution du CPT :
-
Diversité : vos données doivent couvrir un large éventail d'expressions au sein du domaine cible afin d'éviter un ajustement excessif.
-
Représentation : vos données doivent refléter la distribution à laquelle le modèle sera confronté lors de l'inférence.
-
Propreté : le bruit et la redondance de vos données peuvent dégrader les performances. La déduplication et la normalisation du texte améliorent la formation des modèles.
-
Échelle : des ensembles de données plus volumineux sont utiles, mais au-delà d'un certain seuil (comme le fait de parcourir plusieurs époques sur des données limitées), les risques de surajustement augmentent.
Les ensembles de données de formation et de validation doivent être des fichiers JSONL au format Converse, où chaque ligne contient un objet JSON représentant une conversation avec les champs et la structure requis. Voici un exemple :
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
Les entrées de texte doivent contenir un contenu naturellement fluide et de haute qualité qui représente votre domaine cible.
Validation des jeux
Pour valider votre ensemble de données avant de soumettre votre tâche CPT, vérifiez les conditions suivantes :
-
Chaque ligne doit contenir un objet JSON valide.
-
Chaque objet possède un champ « texte » qui contient des données sous forme de chaîne.
-
Aucun champ autre que « texte » n'est présent.
-
Le fichier est une
.jsonl
extension.
Horaires de formation
Le temps consacré à la formation dépend fortement de la taille de l'ensemble de données, du nombre d'instances utilisées et du modèle en cours d'entraînement. Les temps de formation devraient évoluer de manière linéaire. Le tableau suivant fournit des exemples de temps d'entraînement pour différents modèles.
Type de modèle |
GBS |
Nombre d'échantillons dans le jeu de données |
Nombre d'instances P5 |
Valeur |
Durée approximative de l'entraînement en heures |
---|---|---|---|---|---|
Amazon Nova Micro |
256 |
100 000 |
8 |
8 192 |
4 |
Amazon Nova Lite |
256 |
100 000 |
16 |
8 192 |
4 |
Amazon Nova Pro |
256 |
100 000 |
24 |
8 192 |
10 |
Les ensembles de données de formation et de validation doivent être des fichiers JSONL suivant le format d'opération Amazon Bedrock Converse, où chaque ligne contient un objet JSON représentant une conversation avec les champs et la structure requis.
Les paramètres Amazon Nova disponibles pour le réglage avec le CPT sont les suivants :
-
Exécuter la configuration
-
name
: nom descriptif de votre tâche de formation. Cela permet d'identifier votre travail dans le AWS Management Console. -
model_type
: variante du modèle Amazon Nova à utiliser. Les options disponibles sontamazon.nova-micro-v1:0:128k
amazon.nova-lite-v1:0:300k
, ouamazon.nova-pro-v1:0:300k
. -
model_name_or_path
: le chemin vers le modèle de base à utiliser pour votre entraînement. Les options disponibles sontnova-micro/prod
,nova-lite/prod
nova-pro/prod
, ou le chemin S3 pour le point de contrôle post-entraînement ()s3://customer-escrow-bucket-unique_id/training_run_name
. -
replicas
: le 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 Micro prend en charge 2, 4 ou 8 répliques. Amazon Nova Lite prend en charge 4, 8, 16 ou 32 répliques. Amazon Nova Pro prend en charge 6, 12 ou 24 répliques. -
data_s3_path
: l'emplacement S3 de l'ensemble de données d'entraînement, qui est un fichier JSONL. Ce fichier doit résider dans la même Compte AWS région que le cluster. Tous les emplacements S3 fournis doivent se trouver dans le même compte et dans la même région. -
validation_data_s3_path
: (Facultatif) L'emplacement S3 de l'ensemble de données de validation, qui est un fichier JSONL. Ce fichier doit résider dans le même 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 dans la même région. -
output_s3_path
: emplacement S3 où le manifeste et les TensorBoard journaux sont stockés. Tous les emplacements S3 fournis doivent se trouver dans le même emplacement Compte AWS et Région AWS.
-
-
Configuration de la formation
-
max_length
: longueur de séquence maximale en jetons. Cela détermine la taille de la fenêtre contextuelle pour l'entraînement. La valeur maximale prise en charge est de 8192 jetons pour le CPT.Des séquences plus longues amélioreront l'efficacité de l'entraînement au prix d'une augmentation des besoins en mémoire. Nous vous recommandons de faire correspondre le
max_length
paramètre à la distribution de vos données.
-
-
Paramètres de l'entraîneur
-
global_batch_size
: Le nombre total d'échantillons de formation traités ensemble en un seul passage en avant ou en arrière sur l'ensemble des appareils et des utilisateurs.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 à votre mémoire, puis de l'augmenter à partir de là. Pour les données spécifiques à un domaine, des lots plus importants peuvent trop lisser les dégradés.
-
max_epochs
: le nombre de passages complets dans votre ensemble de données d'entraînement.En général, les grands ensembles de données nécessitent moins d'époques pour converger, tandis que les ensembles de données plus petits nécessitent plus d'époques pour converger. Nous vous recommandons d'ajuster le nombre d'époques en fonction de la taille de vos données afin d'éviter un ajustement excessif.
-
-
Réglages du modèle
-
hidden_dropout
: probabilité de supprimer les sorties d'état masquées. Augmentez cette valeur d'environ 0,0-0,2 pour réduire le surajustement sur les petits ensembles de données. Les valeurs valides sont comprises entre 0 et 1 inclus. -
attention_dropout
: La probabilité de perdre du poids d'attention. Ce paramètre peut faciliter la généralisation. Les valeurs valides sont comprises entre 0 et 1 inclus. -
ffn_dropout
: Probabilité de perte des sorties réseau prévisionnelles. Les valeurs valides sont comprises entre 0 et 1 inclus.
-
-
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-1e-4 pour de bonnes performances. Les valeurs valides sont comprises entre 0 et 1 inclus. -
name
: algorithme d'optimisation. Actuellement, seuldistributed_fused_adam
est pris en charge. -
weight_decay
: La force de régularisation L2. Des valeurs plus élevées (entre 0,01 et 0,1) augmentent la régularisation. -
warmup_steps
: Le nombre d'étapes pour augmenter progressivement le taux d'apprentissage. Cela améliore la stabilité de l'entraînement. Les valeurs valides sont comprises entre 1 et 20 inclus. -
min_lr
: Le taux d'apprentissage minimum à la fin de la décadence. Les valeurs valides sont comprises entre 0 et 1 inclus, mais elles doivent être inférieures au taux d'apprentissage.
-
Recette CPT
Voici une recette pour le CPT.
## Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path:
[S3_PATH_TO_TRAIN_DATASET]
validation_data_s3_path:(OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]
output_s3_path:[S3_PATH_TO_STORE_MANIFEST]
## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr
Limites
Le CPT présente les limites suivantes :
-
Les ensembles de données multimodaux ne sont pas pris en charge.
-
Les points de contrôle intermédiaires ne sont pas enregistrés pour évaluation et vous ne pouvez pas les reprendre à partir d'un point de contrôle intermédiaire. Seul le dernier point de contrôle est enregistré.
-
MLflow la journalisation n'est pas prise en charge.