Table des matières
Swish
Gated Linear Unit
SwiGLU
Implémentation simple de Pytorch
Comparaison des effets de SwiGLU
Maison Périphériques technologiques IA Pourquoi les grands modèles linguistiques utilisent-ils SwiGLU comme fonction d'activation ?

Pourquoi les grands modèles linguistiques utilisent-ils SwiGLU comme fonction d'activation ?

Apr 08, 2024 pm 09:31 PM
大型语言模型 swiglu

Si vous avez prêté attention à l'architecture des grands modèles de langage, vous avez peut-être vu le terme « SwiGLU » dans les derniers modèles et documents de recherche. SwiGLU peut être considéré comme la fonction d'activation la plus couramment utilisée dans les grands modèles de langage. Nous la présenterons en détail dans cet article. SwiGLU est en fait une fonction d'activation proposée par Google en 2020, qui combine les caractéristiques de SWISH et de GLU. Le nom chinois complet de SwiGLU est « unité linéaire à porte bidirectionnelle ». Il optimise et combine deux fonctions d'activation, SWISH et GLU, pour améliorer la capacité d'expression non linéaire du modèle. SWISH est une fonction d'activation très courante et largement utilisée dans les grands modèles de langage, tandis que GLU fonctionne bien dans les tâches de traitement du langage naturel. L'avantage de SwiGLU est qu'il peut obtenir en même temps les caractéristiques de lissage de SWISH et les caractéristiques de gating de GLU, rendant ainsi l'expression non linéaire du modèle plus

为什么大型语言模型都在使用 SwiGLU 作为激活函数?

Nous les présenterons une par une :

Swish

Swish est une fonction d'activation non linéaire, définie comme suit :

Swish(x) = x*sigmoid(ßx)
Copier après la connexion

为什么大型语言模型都在使用 SwiGLU 作为激活函数?

où, ß est un paramètre apprenable. Swish peut être meilleur que la fonction d'activation ReLU car il offre des transitions plus fluides qui peuvent conduire à une meilleure optimisation.

Gated Linear Unit

GLU (Gated Linear Unit) est définie comme le produit composant de deux transformations linéaires, dont l'une est activée par le sigmoïde.

GLU(x) = sigmoid(W1x+b)⊗(Vx+c)
Copier après la connexion

为什么大型语言模型都在使用 SwiGLU 作为激活函数?

Le module GLU peut capturer efficacement les dépendances à longue portée dans des séquences tout en évitant certains des problèmes de gradient de disparition associés à d'autres mécanismes de déclenchement tels que LSTM et GRU.

SwiGLU

Nous avons déjà dit que SwiGLU est une combinaison des deux. C'est un GLU, mais au lieu d'utiliser sigmoïde comme fonction d'activation, on utilise swish avec ß=1, on se retrouve donc avec la formule suivante :

SwiGLU(x) = Swish(W1x+b)⊗(Vx+c)
Copier après la connexion

Nous utilisons la fonction SwiGLU pour construire un réseau feedforward

FFNSwiGLU(x) = (Swish1(xW)⊗xV)W2
Copier après la connexion

Implémentation simple de Pytorch

Si les principes mathématiques ci-dessus semblent gênants et ennuyeux, nous l'expliquerons directement en utilisant le code ci-dessous.

class SwiGLU(nn.Module): def __init__(self, w1, w2, w3) -> None:super().__init__()self.w1 = w1self.w2 = w2self.w3 = w3 def forward(self, x):x1 = F.linear(x, self.w1.weight)x2 = F.linear(x, self.w2.weight)hidden = F.silu(x1) * x2return F.linear(hidden, self.w3.weight)
Copier après la connexion

La fonction F.silu utilisée dans notre code est la même que swish lorsque ß=1, nous l'utilisons donc directement.

Comme vous pouvez le voir sur le code, il y a 3 poids dans notre fonction d'activation qui peuvent être entraînés, qui sont les paramètres de la formule GLU.

Comparaison des effets de SwiGLU

En comparant SwiGLU avec d'autres variantes de GLU, nous pouvons voir que SwiGLU fonctionne mieux pendant les deux périodes de pré-entraînement.

为什么大型语言模型都在使用 SwiGLU 作为激活函数?

Les tâches en aval

为什么大型语言模型都在使用 SwiGLU 作为激活函数?

ont les meilleures performances, alors maintenant les llm, comme LAMA, OLMO et PALM utilisent tous SwiGLU dans leur implémentation. Mais pourquoi SwiGLU est-il meilleur que les autres ?

Le journal n'a donné que les résultats des tests et n'a pas expliqué les raisons. Au lieu de cela, il a déclaré :

Nous n'offrons aucune explication sur la raison pour laquelle ces architectures semblent fonctionner, nous attribuons leur succès, comme tout le reste. à la bienveillance divine.

L'auteur a dit que l'alchimie était réussie.

Mais nous sommes maintenant en 2024 et nous pouvons l'expliquer avec force :

1 La réponse relativement faible de Swish aux valeurs négatives surmonte le défaut de ReLU selon lequel la sortie sur certains neurones est toujours nulle

2. Les caractéristiques de contrôle de GLU, ce qui signifie qu'il peut décider quelles informations doivent passer et quelles informations doivent être filtrées en fonction de la situation d'entrée. Ce mécanisme permet au réseau d'apprendre plus efficacement les représentations utiles et contribue à améliorer la capacité de généralisation du modèle. Dans les grands modèles de langage, cela est particulièrement utile pour traiter de longues séquences de texte avec des dépendances longue distance.

3. Les paramètres W1, W2, W3, b1, b2, b3 dans SwiGLU peuvent être appris par formation, afin que le modèle puisse ajuster dynamiquement ces paramètres en fonction de différentes tâches et ensembles de données. Flexibilité et adaptabilité améliorées du modèle.

4. L'efficacité du calcul est supérieure à certaines fonctions d'activation plus complexes (telles que GELU), tout en conservant de bonnes performances. Il s’agit d’une considération importante pour la formation et l’inférence de modèles linguistiques à grande échelle.

Choisissez SwiGLU comme fonction d'activation du grand modèle de langage, principalement parce qu'il combine les avantages des capacités non linéaires, des caractéristiques de déclenchement, de la stabilité du gradient et des paramètres apprenables. SwiGLU est largement adopté en raison de ses excellentes performances dans la gestion des relations sémantiques complexes et des problèmes de longue dépendance dans les modèles de langage, ainsi que dans le maintien de la stabilité de la formation et de l'efficacité informatique.

Adresse papier

https://www.php.cn/link/86e33d550dc162366a02003089ab9894

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi les grands modèles linguistiques utilisent-ils SwiGLU comme fonction d'activation ? Pourquoi les grands modèles linguistiques utilisent-ils SwiGLU comme fonction d'activation ? Apr 08, 2024 pm 09:31 PM

Si vous avez prêté attention à l'architecture des grands modèles de langage, vous avez peut-être vu le terme « SwiGLU » dans les derniers modèles et documents de recherche. SwiGLU peut être considéré comme la fonction d'activation la plus couramment utilisée dans les grands modèles de langage. Nous la présenterons en détail dans cet article. SwiGLU est en fait une fonction d'activation proposée par Google en 2020, qui combine les caractéristiques de SWISH et de GLU. Le nom chinois complet de SwiGLU est « unité linéaire à porte bidirectionnelle ». Il optimise et combine deux fonctions d'activation, SWISH et GLU, pour améliorer la capacité d'expression non linéaire du modèle. SWISH est une fonction d'activation très courante et largement utilisée dans les grands modèles de langage, tandis que GLU a montré de bonnes performances dans les tâches de traitement du langage naturel.

Le réglage fin peut-il vraiment permettre au LLM d'apprendre de nouvelles choses : l'introduction de nouvelles connaissances peut amener le modèle à produire davantage d'hallucinations Le réglage fin peut-il vraiment permettre au LLM d'apprendre de nouvelles choses : l'introduction de nouvelles connaissances peut amener le modèle à produire davantage d'hallucinations Jun 11, 2024 pm 03:57 PM

Les grands modèles linguistiques (LLM) sont formés sur d'énormes bases de données textuelles, où ils acquièrent de grandes quantités de connaissances du monde réel. Ces connaissances sont intégrées à leurs paramètres et peuvent ensuite être utilisées en cas de besoin. La connaissance de ces modèles est « réifiée » en fin de formation. À la fin de la pré-formation, le modèle arrête effectivement d’apprendre. Alignez ou affinez le modèle pour apprendre à exploiter ces connaissances et répondre plus naturellement aux questions des utilisateurs. Mais parfois, la connaissance du modèle ne suffit pas, et bien que le modèle puisse accéder à du contenu externe via RAG, il est considéré comme bénéfique de l'adapter à de nouveaux domaines grâce à un réglage fin. Ce réglage fin est effectué à l'aide de la contribution d'annotateurs humains ou d'autres créations LLM, où le modèle rencontre des connaissances supplémentaires du monde réel et les intègre.

Visualisez l'espace vectoriel FAISS et ajustez les paramètres RAG pour améliorer la précision des résultats Visualisez l'espace vectoriel FAISS et ajustez les paramètres RAG pour améliorer la précision des résultats Mar 01, 2024 pm 09:16 PM

À mesure que les performances des modèles de langage open source à grande échelle continuent de s'améliorer, les performances d'écriture et d'analyse du code, des recommandations, du résumé de texte et des paires questions-réponses (QA) se sont toutes améliorées. Mais lorsqu'il s'agit d'assurance qualité, le LLM ne répond souvent pas aux problèmes liés aux données non traitées, et de nombreux documents internes sont conservés au sein de l'entreprise pour garantir la conformité, les secrets commerciaux ou la confidentialité. Lorsque ces documents sont interrogés, LLM peut halluciner et produire un contenu non pertinent, fabriqué ou incohérent. Une technique possible pour relever ce défi est la génération augmentée de récupération (RAG). Cela implique le processus d'amélioration des réponses en référençant des bases de connaissances faisant autorité au-delà de la source de données de formation pour améliorer la qualité et la précision de la génération. Le système RAG comprend un système de récupération permettant de récupérer des fragments de documents pertinents du corpus

Optimisation du LLM à l'aide de la technologie SPIN pour la formation de mise au point du jeu personnel Optimisation du LLM à l'aide de la technologie SPIN pour la formation de mise au point du jeu personnel Jan 25, 2024 pm 12:21 PM

2024 est une année de développement rapide pour les grands modèles de langage (LLM). Dans la formation du LLM, les méthodes d'alignement sont un moyen technique important, notamment le réglage fin supervisé (SFT) et l'apprentissage par renforcement avec rétroaction humaine qui s'appuie sur les préférences humaines (RLHF). Ces méthodes ont joué un rôle crucial dans le développement du LLM, mais les méthodes d’alignement nécessitent une grande quantité de données annotées manuellement. Face à ce défi, la mise au point est devenue un domaine de recherche dynamique, les chercheurs travaillant activement au développement de méthodes permettant d’exploiter efficacement les données humaines. Par conséquent, le développement de méthodes d’alignement favorisera de nouvelles percées dans la technologie LLM. L'Université de Californie a récemment mené une étude introduisant une nouvelle technologie appelée SPIN (SelfPlayfInetuNing). S

Utiliser des graphiques de connaissances pour améliorer les capacités des modèles RAG et atténuer les fausses impressions des grands modèles Utiliser des graphiques de connaissances pour améliorer les capacités des modèles RAG et atténuer les fausses impressions des grands modèles Jan 14, 2024 pm 06:30 PM

Les hallucinations sont un problème courant lorsque l'on travaille avec de grands modèles de langage (LLM). Bien que LLM puisse générer un texte fluide et cohérent, les informations qu'il génère sont souvent inexactes ou incohérentes. Afin d'éviter les hallucinations du LLM, des sources de connaissances externes, telles que des bases de données ou des graphiques de connaissances, peuvent être utilisées pour fournir des informations factuelles. De cette manière, LLM peut s’appuyer sur ces sources de données fiables, ce qui permet d’obtenir un contenu textuel plus précis et plus fiable. Base de données vectorielles et base de données vectorielles Knowledge Graph Une base de données vectorielles est un ensemble de vecteurs de grande dimension qui représentent des entités ou des concepts. Ils peuvent être utilisés pour mesurer la similarité ou la corrélation entre différentes entités ou concepts, calculées à travers leurs représentations vectorielles. Une base de données vectorielles peut vous indiquer, sur la base de la distance vectorielle, que « Paris » et « France » sont plus proches que « Paris » et

Explication détaillée de GQA, le mécanisme d'attention couramment utilisé dans les grands modèles, et l'implémentation du code Pytorch Explication détaillée de GQA, le mécanisme d'attention couramment utilisé dans les grands modèles, et l'implémentation du code Pytorch Apr 03, 2024 pm 05:40 PM

Grouped Query Attention (GroupedQueryAttention) est une méthode d'attention multi-requêtes dans les grands modèles de langage. Son objectif est d'atteindre la qualité du MHA tout en maintenant la vitesse du MQA. GroupedQueryAttention regroupe les requêtes et les requêtes au sein de chaque groupe partagent le même poids d'attention, ce qui permet de réduire la complexité de calcul et d'augmenter la vitesse d'inférence. Dans cet article, nous expliquerons l'idée de GQA et comment la traduire en code. GQA est dans le document GQA:TrainingGeneralizedMulti-QueryTransformerModelsfromMulti-HeadCheckpoint

RoSA : une nouvelle méthode pour un réglage fin efficace des paramètres de grands modèles RoSA : une nouvelle méthode pour un réglage fin efficace des paramètres de grands modèles Jan 18, 2024 pm 05:27 PM

À mesure que les modèles de langage évoluent à une échelle sans précédent, un réglage précis des tâches en aval devient prohibitif. Afin de résoudre ce problème, les chercheurs ont commencé à s’intéresser à la méthode PEFT et à l’adopter. L'idée principale de la méthode PEFT est de limiter la portée du réglage fin à un petit ensemble de paramètres afin de réduire les coûts de calcul tout en atteignant des performances de pointe sur les tâches de compréhension du langage naturel. De cette manière, les chercheurs peuvent économiser des ressources informatiques tout en maintenant des performances élevées, ouvrant ainsi la voie à de nouveaux points chauds de recherche dans le domaine du traitement du langage naturel. RoSA est une nouvelle technique PEFT qui, grâce à des expériences sur un ensemble de références, s'est avérée surpasser les précédentes méthodes adaptatives de bas rang (LoRA) et de réglage fin clairsemé pur utilisant le même budget de paramètres. Cet article approfondira

LLMLingua : intégrez LlamaIndex, compressez les astuces et fournissez des services d'inférence de modèles de langage étendus efficaces LLMLingua : intégrez LlamaIndex, compressez les astuces et fournissez des services d'inférence de modèles de langage étendus efficaces Nov 27, 2023 pm 05:13 PM

L'émergence de grands modèles linguistiques (LLM) a stimulé l'innovation dans de multiples domaines. Cependant, la complexité croissante des invites, motivée par des stratégies telles que les invites de chaîne de pensée (CoT) et l'apprentissage contextuel (ICL), pose des défis informatiques. Ces longues invites nécessitent des ressources de raisonnement importantes et nécessitent donc des solutions efficaces. Cet article présentera l'intégration de LLMLingua avec le propriétaire LlamaIndex pour effectuer un raisonnement efficace. LLMLingua est un article publié par des chercheurs de Microsoft lors de l'EMNLP2023. LongLLMLingua est une méthode qui améliore la capacité de llm à percevoir des informations clés dans de longues scènes de contexte grâce à une compression rapide. LLMLingua et llamindex

See all articles