View a markdown version of this page

Fusion de modèles - Amazon Nova

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.

Fusion de modèles

Important

Tout au long de ce document, nous ferons référence au « modèle de base » comme l'un des deux modèles. Il peut s'agir du modèle de base d'origine (par exemple Nova Lite 2.0) si aucun entraînement itératif n'a été exécuté, ou du résultat de l'entraînement Entraînement itératif itératif précédent.

Une fois le réglage terminé, votre modèle personnalisé passe par une étape facultative de fusion de modèles configurable par l'utilisateur qui associe les nouvelles connaissances aux fonctionnalités du « modèle de base ». Ce processus garantit que votre modèle final conserve l'intelligence d'origine du « modèle de base » tout en incorporant le comportement spécialisé appris lors de la dernière session d'entraînement de mise au point. La fusion de modèles atténue un phénomène connu sous le nom d'oubli catastrophique, selon lequel un modèle perd des connaissances acquises antérieurement après avoir été affiné en fonction de nouvelles données.

Applicabilité de la fusion de modèles par type de formation

La fusion de modèles n'est configurable que pour la formation SFT. Le tableau suivant résume le comportement de fusion de modèles pour chaque type d'entraînement :

Type de formation Comportement de fusion de modèles
Supervisé Fine-Tuning (SFT) User-configurable la fusion des modèles est appliquée. Vous pouvez contrôler le poids de fusion entre le modèle affiné et le modèle de base comme décrit dans ce document.
Renfort Fine-Tuning (RFT) Aucune fusion de modèles. Le point de contrôle du modèle entraîné est généré directement en tant que modèle final. Aucun modèle de base n'est impliqué dans une étape de fusion.
Suite Pre-Training (CPT) Aucune fusion de modèles. Le point de contrôle du modèle entraîné est généré directement en tant que modèle final. Aucun modèle de base n'est impliqué dans une étape de fusion.

Quand utiliser la fusion de modèles

Vous devez activer la fusion de modèles dans les cas suivants :

  • Les fonctionnalités générales se dégradent après le réglage. Si votre modèle affiné perd des performances sur des tâches ne correspondant pas à vos données d'entraînement (par exemple, mathématiques, raisonnement ou codage), la fusion permet de récupérer les connaissances du modèle de base pour récupérer ces compétences.

  • Iterative/continual formation. Lorsque vous peaufinez un point de contrôle précédemment personnalisé, la fusion est essentielle pour conserver les compétences acquises lors des tours précédents. Sans cela, chaque nouveau cycle peut remplacer ce que le cycle précédent a enseigné.

Vous n'aurez peut-être pas besoin de fusionner des modèles dans les cas suivants :

  • Vous souhaitez uniquement optimiser les performances des tâches cibles et la conservation générale des capacités n'est pas un problème.

  • Alpinisme. Vous souhaitez continuer à itérer sur le même jeu de données afin d'optimiser davantage les performances d'évaluation.

  • Vous utilisez un ajustement basé sur le raisonnement. Des études ont montré que la SFT basée sur le raisonnement atténue de manière significative l'oubli catastrophique.

Comment configurer les pondérations de fusion des modèles

La valeur par défaut de model_importance_score.fine_tuned_model est 1,0, ce qui signifie que le point de contrôle des résultats d'entraînement utilise entièrement les poids ajustés, sans fusion par rapport au « modèle de base ». La valeur par défaut fonctionne bien lorsque vos données d'entraînement sont complètes et représentent fidèlement votre tâche cible.

Vous pouvez contrôler la façon dont le modèle final équilibre la spécialisation par rapport aux connaissances générales en définissant les paramètres model_importance_score dans vos hyperparamètres. Par exemple :

training_config: # ... model_importance_score: fine_tuned_model: 0.75 # set value between 0.0 to 1.0 inclusive

model_importance_score.fine_tuned_modelles valeurs proches de 1,0 orientent le modèle vers vos données affinées, tandis que les valeurs proches de 0,0 préservent davantage les fonctionnalités générales du modèle de base. Dans l'exemple ci-dessus, le modèle entraîné final est produit en fusionnant un modèle affiné à 75 % sur l'ensemble de données spécifique avec 25 % du « modèle de base ».

Si vous remarquez que votre modèle affiné perd ses fonctionnalités générales (par exemple, des performances dégradées sur des tâches ne faisant pas partie de vos données d'entraînement), model_importance_score.fine_tuned_model réduisez-le pour intégrer davantage les connaissances du « modèle de base ».

Note

Même si nous pouvons configurer les poids du processus de fusion des modèles, l'utilisateur ne peut pas choisir les modèles avec lesquels il souhaite fusionner. En d'autres termes, il se situera toujours entre le « modèle de base » et le modèle affiné de la série d'entraînement en cours. Le « modèle de base » peut être le modèle de base d'origine (par exemple Nova Lite 2.0) ou le résultat du cycle d'entraînement itératif précédent.

Choix des poids de fusion des modèles

Le model_importance_score.fine_tuned_model paramètre contrôle l'équilibre entre votre modèle affiné et le modèle de base. Commencez par les directives suivantes :

Scénario Poids de départ recommandé Justification
Single-round SFT avec des données d'entraînement complètes 1.0 (par défaut, pas de fusion) Vos données d'entraînement couvrent bien la tâche cible ; une fusion diluerait le comportement appris sans aucun avantage.
Single-round SFT où les fonctionnalités générales se dégradent 0,7 à 0,9 Intègre suffisamment de connaissances du modèle de base pour récupérer les compétences générales (mathématiques, raisonnement, codage) tout en préservant la plupart des performances ajustées.
Iterative/continual SFT (construit sur un ancien poste de contrôle) 0,3 à 0,7 Les poids plus faibles retiennent plus de connaissances des cycles d'entraînement précédents. Sans fusion, les cycles suivants peuvent remplacer les compétences acquises lors des tours précédents.
Exploratoire/incertain 0,7 Un juste milieu ; ajuster en fonction des résultats de l'évaluation.

Principe général : des pondérations plus élevées (plus proches de 1,0) maximisent les performances des tâches cibles mais risquent de perdre les capacités générales. Des pondérations plus faibles (plus proches de 0,0) préservent les compétences générales du modèle de base mais réduisent la spécialisation. Il n'existe pas de valeur optimale universelle. La pondération correcte dépend de la taille de votre jeu de données, du chevauchement du domaine avec le modèle de base et des fonctionnalités que vous devez conserver.

Astuce

Si vos données d'entraînement incluent des traces de raisonnement (chaîne de pensée), vous pouvez généralement utiliser un poids de fusion plus élevé (ou ignorer complètement la fusion à 1,0), car les données augmentées par raisonnement agissent comme un régulariseur qui préserve les capacités générales.

Évaluation de votre poids de fusion

Une fois l'entraînement terminé, évaluez le modèle fusionné pour confirmer que le poids de fusion est approprié. Vous n'avez pas besoin de plusieurs cycles d'entraînement : une seule passe d'évaluation peut vous indiquer si vous devez vous adapter.

  • Performances des tâches cibles — Exécutez l'évaluation spécifique à votre domaine (précision, F1, score d'extraction, etc.) sur un ensemble de tests résistant. Comparez avec le modèle de base (avant tout réglage) pour confirmer l'amélioration des performances. Si le gain par rapport au modèle de base est inférieur aux attentes, votre poids de fusion est peut-être trop faible : les poids du modèle de base diluent ce qui a été appris pendant l'entraînement.

  • Vérification ponctuelle des capacités générales — Proposez au modèle fusionné quelques tâches ne relevant pas de votre domaine de formation (par exemple, un problème de mathématiques, une demande de résumé ou une question de codage). Comparez qualitativement les réponses par rapport au modèle de base. Si les réponses du modèle fusionné sont nettement inférieures à celles du modèle de base (incohérentes, refus de répondre ou production de charabia sur des tâches que le modèle de base gère bien), votre poids de fusion est trop élevé et le modèle a perdu ses fonctionnalités générales.

Fonctionnement de la fusion : Full-rank mise au point

Full-rank l'entraînement produit un ensemble complet de modèles de poids. Lors de la fusion, chaque paramètre est calculé sous la forme d'un mélange pondéré :

# Weighted interpolation Merged Model = (1 - model_importance_score.fine_tuned_model) * Base Model + model_importance_score.fine_tuned_model * Fine-Tuned Model

Par exemple, avecmodel_importance_score.fine_tuned_model = 0.3, le modèle fusionné comprend 70 % de connaissances du « modèle de base » et 30 % de connaissances affinées.

Comment fonctionne la fusion : réglage précis de LoRa

LoRa (Low-Rank Adaptation) apprend une paire compacte de matrices de bas rang (A et B) qui représentent l'adaptation sous la forme d'une mise à jour de bas rang. Au cours du processus de fusion des modèles, chaque matrice LoRa A et B est mise à l'échelle model_importance_score.fine_tuned_model comme indiqué ci-dessous. Dans ces formules, alpha se trouvent le facteur d'échelle LoRa (peft.lora_tuning.alphadans votre recette d'entraînement) et le rank rang LoRa. Pour les alpha valeurs disponibles, consultez la recette d'entraînement LoRa SFT.

Notez qu'à ce stade, les matrices A et B ne contiennent que des informations issues de la dernière série de réglages. Il n'a aucune connaissance des cycles d'entraînement précédents. Les connaissances acquises lors des sessions d'entraînement précédentes proviendront de la fusion du modèle avec le « modèle de base » ou de la fusion d'adaptateurs LoRa à l'étape précédente décrite ci-dessous.

Scaled_A = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * A Scaled_B = sqrt(model_importance_score.fine_tuned_model) * sqrt(alpha/rank) * B

L'entraînement LoRa produit deux artefacts de modèle : un modèle entièrement fusionné et un ensemble d'adaptateurs LoRa fusionnés. Jetons un coup d'œil à chacun d'eux séparément.

Modèle entièrement fusionné

La mise à jour LoRa est mise à l'échelle et ajoutée au « modèle de base » :

Merged Model = Base Model + (Scaled_B @ Scaled_A)

Il Merged Model possède désormais des connaissances issues à la fois de la formation en cours et hérite de certaines connaissances Base Model en fonction de la configuration model_importance_score.fine_tuned_model de l'utilisateur.

Adaptateurs LoRa fusionnés

La manière dont les adaptateurs LoRa sont fusionnés varie selon que vous effectuez un entraînement en une seule étape ou itératif.

  • Pour l'entraînement LoRa en une seule étape (pas d'entraînement itératif), les adaptateurs LoRa affinés sont enregistrés directement sans fusion, car il n'existe pas d'ensemble précédent d'adaptateurs LoRa avec lesquels fusionner.

  • Dans les flux de travail itératifs entièrement LoRa, les adaptateurs de chaque étape sont fusionnés en un seul ensemble :

    Merged = Stage1_Scaled_B @ Stage1_Scaled_A + Stage2_Scaled_B @ Stage2_Scaled_A

    Les adaptateurs Merged LoRa contiendront des informations sur les itérations d'entraînement précédentes ainsi que les dernières connaissances en matière de réglage, en fonction des informations définies par l'utilisateur. model_importance_score.fine_tuned_model

    Veuillez également porter une attention particulière aux restrictions d'entraînement itératives concernant le mélange de LoRa et Full-rank d'entraînement.

Ces adaptateurs Merged_B fusionnés Merged_A reflètent l'historique complet de la formation et sont utilisés pour l'inférence On-demand inférence sur les modèles personnalisés à la demande.