Maison > Périphériques technologiques > IA > Ajustement efficace des paramètres des modèles de langage à grande échelle - Série de réglage fin BitFit/Prefix/Prompt

Ajustement efficace des paramètres des modèles de langage à grande échelle - Série de réglage fin BitFit/Prefix/Prompt

王林
Libérer: 2023-10-07 12:13:01
avant
1508 Les gens l'ont consulté

En 2018, Google a publié BERT. Une fois publié, il a vaincu les résultats de pointe (Sota) de 11 tâches PNL d'un seul coup, devenant ainsi une nouvelle étape dans le monde de la PNL. La structure de BERT ; est illustré dans la figure ci-dessous. Sur la gauche se trouve le processus de pré-formation du modèle BERT, sur le côté droit se trouve le processus de réglage fin pour des tâches spécifiques. Parmi elles, l'étape de réglage fin est destinée au réglage fin lorsqu'il est ensuite utilisé dans certaines tâches en aval, telles que : la classification de texte, le balisage de parties de discours, le système de questions et réponses, etc. BERT peut être affiné sur différentes tâches sans ajuster la structure. Grâce à la conception des tâches d'un « modèle de langage pré-entraîné + réglage fin des tâches en aval », il a apporté de puissants effets de modèle. Depuis lors, le « modèle linguistique pré-entraîné + réglage fin des tâches en aval » est devenu le paradigme de formation dominant dans le domaine de la PNL.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Schéma de structure BERT, la gauche est le processus de pré-formation et la droite est le processus de réglage précis des tâches spécifiques

Cependant, avec l'augmentation de l'échelle des paramètres des modèles de langage à grande échelle (LLM) représenté par GPT3, matériel grand public Un réglage complet devient irréalisable. Le tableau suivant montre la consommation de mémoire CPU/GPU du réglage fin complet du modèle et du réglage fin efficace des paramètres sur un GPU A100 (mémoire vidéo 80G) et du matériel avec une mémoire CPU de 64 Go ou plus. Comparaison

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列 De plus, entièrement. affiner le modèle entraînera également une perte de diversité et souffrira de graves problèmes d’oubli. Par conséquent, la manière d'effectuer efficacement un réglage fin du modèle est devenue le centre de la recherche industrielle, qui fournit également un espace de recherche pour le développement rapide d'une technologie efficace de réglage fin des paramètres. Le réglage fin efficace des paramètres fait référence à un réglage fin d'une petite quantité. ou des paramètres de modèle supplémentaires et en corrigeant la plupart des paramètres de modèles pré-entraînés (LLM), réduisant ainsi considérablement les coûts de calcul et de stockage. Dans le même temps, il peut également atteindre des performances comparables à un réglage précis des paramètres. La méthode de réglage fin efficace des paramètres est encore meilleure que le réglage fin complet dans certains cas et peut être mieux généralisée aux scénarios hors domaine.

Une technologie de réglage fin efficace peut être grossièrement divisée en trois catégories suivantes, comme le montre la figure ci-dessous : ajout de paramètres supplémentaires (A), sélection d'une partie des paramètres à mettre à jour (S) et introduction d'un paramétrage lourd (R). Parmi les méthodes d'ajout de paramètres supplémentaires, elles sont principalement divisées en deux sous-catégories : les méthodes de type adaptateur et les invites logicielles.

Les technologies de réglage fin efficaces des paramètres courants incluent BitFit, Prefix Tuning, Prompt Tuning, P-Tuning, Adapter Tuning, LoRA, etc. Les chapitres suivants expliqueront en détail certaines méthodes et méthodes de réglage fin efficaces des paramètres courants

Technologies et méthodes courantes de réglage efficace des paramètres

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Série de réglage fin BitFit/Prefix/Prompt

BitFitBien que pour tout le monde Un réglage fin complet pour chaque tâche est très efficace, mais 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 des changements survenus au cours du processus de réglage fin et difficile à déployer, d'autant plus que le nombre de tâches augmente, il est difficile à maintenir.

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

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 exposition au LM pré-entraîné. Cependant, les méthodes de réglage fin efficaces précédentes, Adapter-Tuning et Diff-Pruning, peuvent également répondre partiellement aux besoins ci-dessus. BitFit, une méthode de réglage fin avec des paramètres plus petits, peut répondre à tous les besoins ci-dessus.

BitFit est une méthode de réglage fin clairsemée. Elle 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 et de la fusion de plusieurs résultats d'attention dans le module d'attention, le biais dans la couche MLP, le paramètre de biais dans la couche Layernormalization et les paramètres de biais dans le modèle de pré-formation. comme le montre la figure ci-dessous. Le module

Picture

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列PLM représente une sous-couche PLM spécifique, telle que l'attention ou FFN. Le bloc orange dans l'image représente le vecteur d'indice pouvant être entraîné et le bloc bleu représente les paramètres du modèle pré-entraîné gelés.

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 dans certaines tâches.

Les résultats expérimentaux montrent que, par rapport au réglage fin complet des paramètres, le réglage fin BitFit ne met à jour qu'un très petit nombre de paramètres et a obtenu de bons résultats sur plusieurs ensembles de données. Bien que ce ne soit pas aussi efficace que le réglage fin de tous les paramètres, c'est bien mieux que la méthode Frozen pour fixer tous les paramètres du modèle. Dans le même temps, en comparant les paramètres avant et après la formation BitFit, il a été constaté que de nombreux paramètres de biais ne changeaient pas beaucoup, comme les paramètres de biais liés au calcul de la clé. Il a été constaté que les paramètres de biais de la couche FFN qui calcule la requête et agrandit la dimension des caractéristiques de N à 4N présentent les changements les plus évidents. Seule la mise à jour de ces deux types de paramètres de biais peut également obtenir de bons résultats. Au contraire, si l'un d'entre eux est corrigé, l'effet du modèle sera grandement perdu.

Prefix Tuning

Avant Prefix Tuning, le travail 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é, mais les résultats des recherches précédentes de jetons discrets peuvent ne pas être optimaux. De plus, le paradigme de réglage fin traditionnel 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 enregistré pour chaque tâche. D'une part, le réglage fin de l'ensemble du modèle prend beaucoup de temps. d'un autre côté, cela prendra é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 à LM, afin que différents préfixes puissent être enregistrés pour différentes tâches, et que le coût de réglage fin soit également faible ; en même temps, ce type de préfixe est en fait entraînable en continu. Le micro-jeton virtuel (invite douce/invite continue) est mieux optimisé et a un meilleur effet que le jeton discret.

Donc, ce qui doit être réécrit est : Alors, quelle est la signification du préfixe ? Le rôle du préfixe est de guider le modèle pour extraire les informations liées à x, afin de mieux générer y. Par exemple, si nous voulons effectuer une tâche récapitulative, après un réglage fin, le préfixe peut comprendre que la tâche actuelle est une tâche de « formulaire de synthèse », puis guider le modèle pour extraire les informations clés de x si nous voulons le faire ; une tâche de classification des émotions, un préfixe peut guider le modèle pour extraire les informations sémantiques liées à l'émotion dans x, et ainsi de suite. Cette explication n'est peut-être pas si rigoureuse, mais vous pouvez comprendre à peu près le rôle du préfixe

Le réglage du préfixe consiste à construire des jetons virtuels liés à une tâche en tant que préfixe avant de saisir le jeton, puis à mettre à jour uniquement les paramètres de la partie préfixe pendant la formation, en PLM, d'autres paramètres sont fixes. Pour différentes structures de modèles, différents préfixes doivent être construits :

  • Pour les modèles d'architecture autorégressive : ajoutez un préfixe devant la phrase pour obtenir z = [PREFIX x ; contexte (par exemple : apprentissage du contexte GPT3).
  • Pour le modèle d'architecture encodeur-décodeur : des préfixes sont ajoutés à l'encodeur et au décodeur, ce qui donne z = [PREFIX x ; 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.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Images

Réécrivez le contenu sans changer le sens original et réécrivez-le en chinois : Pour le réglage fin de la partie précédente, nous mettons à jour tous les paramètres du Transformer (encadré rouge) et devons stocker une copie complète du modèle pour chaque tâche. L'ajustement du préfixe dans la partie inférieure gèlera les paramètres du transformateur et optimisera uniquement le préfixe (case rouge)

Cette méthode est en fait similaire à la construction de Prompt, sauf que Prompt est une invite "explicite" artificiellement construite et que les paramètres ne peuvent pas être mis à jour, et Prefix est un indice "implicite" qui peut être appris. 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 dégradation 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. De plus, des expériences d'ablation ont prouvé que l'ajustement de la couche d'intégration à lui seul n'est pas suffisamment expressif, ce qui entraînera une baisse significative des performances. Par conséquent, des paramètres d'invite sont ajoutés à chaque couche, ce qui constitue un changement majeur.

Bien que le réglage des préfixes semble pratique, il présente également les deux inconvénients importants suivants :

Réglage rapide

Le réglage fin complet des grands modèles entraîne 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. Prompt Tuning apprend les invites en rétropropagant les paramètres mis à jour au lieu de concevoir manuellement les invites ; en même temps, il gèle les poids d'origine du modèle et entraîne uniquement les paramètres d'invite après la formation, le même modèle peut être utilisé pour l'inférence multitâche.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Images

Le réglage du modèle nécessite de créer des copies spécifiques à une tâche de l'intégralité du modèle pré-entraîné pour chaque tâche et l'inférence doit être effectuée dans des lots séparés. Le réglage des invites nécessite uniquement le stockage d'une petite invite spécifique à chaque tâche et permet une inférence de tâches mixtes à l'aide du modèle pré-entraîné d'origine.

Prompt Tuning peut être considéré comme une version simplifiée de Prefix Tuning. Il définit sa propre invite pour chaque tâche, puis l'intègre aux données en entrée, mais ajoute uniquement des jetons d'invite à la couche d'entrée et n'a pas besoin d'ajouter du MLP. pour l'ajustement. pour résoudre des problèmes de formation difficiles.

Il a été découvert grâce à des expériences 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 complet des paramètres. Dans le même temps, Prompt Tuning a également proposé le Prompt Ensembling, ce qui signifie former 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). Par exemple, le coût de l'intégration du modèle est beaucoup plus faible. 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 des expériences d'ablation, il a été constaté que Prompt Tuning utilise des étiquettes de classe pour initialiser le modèle mieux que l'initialisation aléatoire et l'initialisation à l'aide d'un exemple de vocabulaire. Cependant, à mesure que l’échelle des paramètres du modèle augmente, cet écart finira par disparaître. Lorsque la longueur du jeton Prompt est d'environ 20, les performances sont déjà bonnes (après avoir dépassé 20, l'augmentation de la longueur du jeton Prompt n'améliorera pas significativement les performances du modèle. De même, cet écart diminuera également à mesure que l'échelle des paramètres du modèle augmente). 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).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal