


Pourquoi les grands modèles linguistiques utilisent-ils SwiGLU comme fonction d'activation ?
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
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)
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)
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)
Nous utilisons la fonction SwiGLU pour construire un réseau feedforward
FFNSwiGLU(x) = (Swish1(xW)⊗xV)W2
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)
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.
Les tâches en aval
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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

À 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

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

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

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

À 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

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
