Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (2) - BitFit, Prefix Tuning, Prompt Tuning

Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (2) - BitFit, Prefix Tuning, Prompt Tuning

Mangez de la gelée sans cracher de peau de gelée

Alors que ChatGPT a rapidement explosé en popularité, il a déclenché une ère de changements dans les grands modèles. Cependant, pour le grand public, la pré-formation ou la mise au point complète de grands modèles sont hors de portée. En conséquence, diverses technologies efficaces de réglage fin des paramètres ont été développées , donnant aux chercheurs scientifiques ou aux développeurs ordinaires la possibilité d'essayer d'affiner de grands modèles.

Cette technologie mérite donc notre analyse approfondie du mécanisme qui la sous-tend. Cette série est grossièrement divisée en sept articles.

  • Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèles (1) - Contexte, introduction au réglage fin efficace des paramètres
  • Présentation des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (2) - BitFit , Prefix Tuning, Prompt Tuning
  • Présentation des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (3)-P-Tuning, P-Tuning v2
  • Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (4) - Adapter Tuning et ses variantes
  • Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (5) - LoRA, AdaLoRA, QLoRA
  • Aperçu des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (6) -Adaptateur MAM, UniPELT
  • Un examen des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèle (7) - meilleures pratiques et résumé

Cet article est la deuxième partie d'une revue des principes d'une technologie de réglage fin efficace pour les grands paramètres de modèles.

BitFit

arrière-plan

Bien qu'un réglage fin complet pour chaque tâche soit très efficace, il génère également un grand modèle unique pour chaque tâche pré-entraînée, ce qui rend difficile la déduction de ce qui a changé pendant le réglage fin et difficile à déployer, d'autant plus que le nombre de tâches augmente, il devient difficile à maintenir.

Idéalement, nous aimerions disposer d’une méthode de réglage fin efficace qui satisfasse aux conditions suivantes :

  • Obtenez un effet qui peut correspondre à la quantité totale de réglage fin .
  • Seul un petit ensemble de paramètres du modèle est modifié.
  • Cela permet aux données d'arriver dans un flux plutôt qu'en même temps , facilitant ainsi un déploiement matériel efficace.
  • Les paramètres modifiés sont cohérents dans les différentes tâches en aval .

La question ci-dessus dépend de la mesure dans laquelle le processus de réglage fin peut guider l'apprentissage de nouvelles capacités et les capacités acquises par l'exposition à un LM pré-entraîné.

Bien que les méthodes de réglage fin efficaces précédentes, Adapter-Tuning et Diff-Pruning, puissent également répondre partiellement aux besoins ci-dessus. Cependant, l’auteur propose BitFit, une méthode de réglage fin avec des paramètres plus petits pour répondre aux besoins ci-dessus.

Principes techniques

BitFit (article : BitFit : Simple Parameter-efficient Fine-tuning or Transformer-based Masked Language-models ) est une méthode de réglage fin clairsemée qui ne met à jour que les paramètres de biais ou une partie des paramètres de biais pendant l'entraînement.

Pour le modèle Transformer, la plupart des paramètres transformateur-encodeur sont gelés et seuls les paramètres de biais et les paramètres de couche de classification de la tâche spécifique sont mis à jour. Les paramètres de biais impliqués incluent le biais impliqué dans le calcul de la requête, de la clé, de la valeur dans le module d'attention et de la fusion de plusieurs résultats d'attention, le biais dans la couche MLP et les paramètres de biais dans la couche Layernormalization.

Dans les modèles tels que Bert-Base/Bert-Large, le paramètre de biais ne représente que 0,08 % à 0,09 % du total des paramètres du modèle. Cependant, en comparant les effets de BitFit, Adapter et Diff-Pruning sur le modèle Bert-Large basé sur l'ensemble de données GLUE, il a été constaté que BitFit a le même effet que Adapter et Diff-Pruning lorsque le nombre de paramètres est beaucoup plus petit. que celui de Adapter et Diff-Pruning. , même légèrement meilleur que Adapter et Diff-Pruning sur certaines tâches.

image.png

Dans le même temps, les résultats expérimentaux montrent également que, par rapport au réglage fin de tous les paramètres , les résultats du réglage fin BitFit ont obtenu de bons résultats sur plusieurs ensembles de données lorsque seul un très petit nombre de paramètres est mis à jour. .Bien qu'il ne soit pas aussi efficace que le réglage fin de tous les paramètres, c'est bien mieux..Méthode gelée qui corrige tous les paramètres du modèle .

image.png

Dans le même temps, en comparant les paramètres avant et après l'entraînement BitFit , il a été constaté que de nombreux paramètres de biais ne changeaient pas beaucoup (par exemple : les paramètres de biais impliqués dans le calcul de la clé ). Il a été constaté que les paramètres de biais de la couche FFN (intermédiaire) qui calcule la requête et agrandit la dimension des caractéristiques de N à 4N changent le plus évidemment. Seule la mise à jour de ces deux types de paramètres de biais peut également obtenir de bons résultats. Au contraire, réparer l’un d’entre eux réduira l’effet du modèle. Tous ont subi de lourdes pertes.

image.png

Réglage du préfixe

arrière-plan

Le travail avant Prefix Tuning consistait principalement à concevoir manuellement des modèles discrets ou à rechercher automatiquement des modèles discrets. Pour les modèles conçus manuellement, les modifications apportées au modèle sont particulièrement sensibles aux performances finales du modèle. L'ajout d'un mot, la perte d'un mot ou la modification de la position entraîneront des changements relativement importants. Pour les modèles de recherche automatisés, le coût est relativement élevé ; dans le même temps, les résultats des recherches précédentes de jetons discrets peuvent ne pas être optimaux.

De plus, le paradigme traditionnel de réglage fin utilise des modèles pré-entraînés pour affiner différentes tâches en aval, et un poids de modèle affiné doit être conservé pour chaque tâche. D'une part, le réglage fin de l'ensemble du modèle prend beaucoup de temps. temps ; d’un autre côté, cela prend également beaucoup d’espace de stockage.

Sur la base des deux points ci-dessus, Prefix Tuning propose un LM de pré-formation fixe , ajoutant des préfixes pouvant être entraînés et spécifiques à une tâche au LM, de sorte que différents préfixes puissent être enregistrés pour différentes tâches, et que le coût de réglage fin soit faible ; à la En même temps, ce type de préfixe est en fait un jeton virtuel différenciable en continu (invite douce/invite continue) qui est mieux optimisé et a un meilleur effet que le jeton discret.

image.png

Principes techniques

Prefix Tuning (article : Prefix-Tuning : Optimizing Continuous Prompts for Generation ) construit des jetons virtuels liés à une tâche en tant que préfixe avant de saisir le jeton, puis met à jour uniquement les paramètres de la partie préfixe pendant la formation, tandis que les autres paramètres du PLM sont corrigés. .

Pour différentes structures de modèles, différents préfixes doivent être construits.

  • Pour le modèle d'architecture autorégressive : ajoutez un préfixe devant la phrase, et le  z = [PREFIX; x; y]contexte approprié peut guider la génération du contexte tout en fixant le LM (par exemple : apprentissage contextuel de GPT3).
  • Pour le modèle d'architecture encodeur-décodeur : des préfixes sont ajoutés à Encoder et Decoder pour obtenir  z = [PREFIX; x; PREFIX0; y]. Le préfixe est ajouté du côté de l'encodeur pour guider l'encodage de la partie d'entrée, et le préfixe est ajouté du côté du décodeur pour guider la génération ultérieure du jeton.

image.png

Cette méthode est en fait similaire à la construction de Prompt, sauf que Prompt est une invite « explicite » construite par l'homme et ne peut pas mettre à jour les paramètres, tandis que Prefix est une invite « implicite » qui peut être apprise.

image.png

   Dans le même temps, afin d'éviter que la mise à jour directe des paramètres de Prefix ne provoque une formation instable et une réduction des performances, une structure MLP est ajoutée devant la couche Prefix. Une fois la formation terminée, seuls les paramètres de Prefix sont conservés.

image.png

   De plus, des expériences d'ablation ont prouvé que l'ajustement de la couche d'intégration seul n'est pas assez expressif et entraînera une baisse significative des performances. Par conséquent, des paramètres rapides sont ajoutés à chaque couche, apportant des changements majeurs.

image.png

De plus, l'expérience a également comparé l'impact de la position sur l'effet de génération, et le réglage du préfixe était également légèrement meilleur que le réglage de l'Infix. Parmi eux, la forme de réglage du préfixe est  [PREFIX; x; y], et la forme de réglage Infix est  [x; INFIX; y].

image.png

Réglage rapide

arrière-plan

Le réglage fin complet des grands modèles nécessite la formation d'un modèle pour chaque tâche, ce qui entraîne des frais généraux et des coûts de déploiement relativement élevés. Dans le même temps, la méthode des invites discrètes (faisant référence à la conception manuelle des invites et à l'ajout d'invites au modèle) est relativement coûteuse et l'effet n'est pas très bon.

Sur cette base, l'auteur a proposé Prompt Tuning, qui utilise la rétropropagation pour mettre à jour les paramètres afin d'apprendre les invites au lieu de concevoir manuellement les invites. Dans le même temps, les poids d'origine du modèle sont gelés et seuls les paramètres des invites sont entraînés. Après la formation, le le même modèle peut être utilisé pour l’inférence multitâche.

Principes techniques

Prompt Tuning (article : The Power of Scale for Parameter-Efficient Prompt Tuning ), cette méthode peut être considérée comme une version simplifiée du Prefix Tuning. Elle définit sa propre invite pour chaque tâche, puis l'intègre aux données en entrée, mais Ajoutez uniquement des jetons d'invite à la couche d'entrée et n'avez pas besoin d'ajouter du MLP pour l'ajustement afin de résoudre le problème de la formation difficile.   

image.png

Grâce à des expériences, il a été constaté qu'à mesure que le nombre de paramètres du modèle pré-entraîné augmente, la méthode Prompt Tuning se rapprochera des résultats d'un réglage fin de tous les paramètres.

image.png

   Dans le même temps, Prompt Tuning a également proposé le Prompt Ensembling, ce qui signifie entraîner différentes invites pour la même tâche en même temps dans un lot (c'est-à-dire poser la même question de plusieurs manières différentes), ce qui équivaut à entraîner différents modèles. Par exemple, le coût de l'intégration du modèle est beaucoup plus faible.

image.png

En outre, le document Prompt Tuning traite également de l'impact de la méthode d'initialisation et de la longueur du jeton Prompt sur les performances du modèle. Grâce aux résultats de l'expérience d'ablation, il a été constaté que par rapport à l'initialisation aléatoire et à l'initialisation utilisant un exemple de vocabulaire, Prompt Tuning utilise des étiquettes de classe pour mieux initialiser le modèle. Cependant, à mesure que l’échelle des paramètres du modèle augmente, cet écart finira par disparaître.

Lorsque la longueur du jeton d'invite est d'environ 20, les performances sont déjà bonnes (au-delà de 20, l'augmentation de la longueur du jeton d'invite n'améliorera pas significativement les performances du modèle). De même, cet écart diminuera également à mesure que le modèle l'échelle des paramètres augmente (c'est-à-dire que pour les modèles à très grande échelle, même si la longueur du jeton d'invite est très courte, cela n'aura pas beaucoup d'impact sur les performances).

image.png

Conclusion

Cet article décrit la méthode de réglage fin efficace BitFit qui ne met à jour qu'une partie des paramètres et les méthodes de réglage fin à invite logicielle Tuning du préfixe et Tuning des invites en ajoutant des paramètres supplémentaires. Ce qui suit explique les méthodes de réglage fin efficaces P-Tuning et P-Tuning v2 .

Si vous pensez que mon article peut vous aider, aimez-le, ajoutez-le à vos favoris et suivez-le ~~

Je suppose que tu aimes

Origine blog.csdn.net/sinat_37574187/article/details/132734693
conseillé
Classement