


Warum verwenden große Sprachmodelle SwiGLU als Aktivierungsfunktion?
Wenn Sie sich mit der Architektur großer Sprachmodelle befasst haben, ist Ihnen möglicherweise der Begriff „SwiGLU“ in den neuesten Modellen und Forschungsarbeiten aufgefallen. Man kann sagen, dass SwiGLU die am häufigsten verwendete Aktivierungsfunktion in großen Sprachmodellen ist. Wir werden sie in diesem Artikel ausführlich vorstellen. SwiGLU ist eigentlich eine von Google im Jahr 2020 vorgeschlagene Aktivierungsfunktion, die die Eigenschaften von SWISH und GLU kombiniert. Der vollständige chinesische Name von SwiGLU lautet „bidirektionale Gated Linear Unit“. Es optimiert und kombiniert zwei Aktivierungsfunktionen, SWISH und GLU, um die nichtlineare Ausdrucksfähigkeit des Modells zu verbessern. SWISH ist eine sehr häufige Aktivierungsfunktion, die häufig in großen Sprachmodellen verwendet wird, während GLU bei Aufgaben zur Verarbeitung natürlicher Sprache eine gute Leistung erbringt. Der Vorteil von SwiGLU besteht darin, dass es gleichzeitig die Glättungseigenschaften von SWISH und die Gating-Eigenschaften von GLU erhalten kann, wodurch der nichtlineare Ausdruck des Modells besser wird
Wir werden sie einzeln vorstellen:
Swish
Swish ist eine nichtlineare Aktivierungsfunktion, die wie folgt definiert ist:
Swish(x) = x*sigmoid(ßx)
wobei ß ein lernbarer Parameter ist. Swish kann besser sein als die ReLU-Aktivierungsfunktion, da es weichere Übergänge ermöglicht, was zu einer besseren Optimierung führen kann.
Gated Linear Unit
GLU (Gated Linear Unit) ist definiert als das Komponentenprodukt zweier linearer Transformationen, von denen eine durch Sigmoid aktiviert wird.
GLU(x) = sigmoid(W1x+b)⊗(Vx+c)
Das GLU-Modul kann Langzeitabhängigkeiten in Sequenzen effektiv erfassen und gleichzeitig einige der verschwindenden Gradientenprobleme vermeiden, die mit anderen Gating-Mechanismen wie LSTM und GRU verbunden sind.
SwiGLU
Wir haben bereits gesagt, dass SwiGLU eine Kombination aus beidem ist. Es ist eine GLU, aber anstatt Sigmoid als Aktivierungsfunktion zu verwenden, verwenden wir swish mit ß=1, sodass wir am Ende die folgende Formel erhalten:
SwiGLU(x) = Swish(W1x+b)⊗(Vx+c)
Wir verwenden die SwiGLU-Funktion, um ein Feedforward-Netzwerk aufzubauen
FFNSwiGLU(x) = (Swish1(xW)⊗xV)W2
Einfache Implementierung von Pytorch
Wenn die oben genannten mathematischen Prinzipien mühsam und langweilig erscheinen, erklären wir sie direkt anhand des folgenden Codes.
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)
Die in unserem Code verwendete F.silu-Funktion ist dieselbe wie swish, wenn ß=1 ist, daher verwenden wir sie direkt.
Sie können dem Code entnehmen, dass es in unserer Aktivierungsfunktion drei Gewichte gibt, die trainiert werden können, nämlich die Parameter aus der GLU-Formel.
SwiGLU-Effektvergleich
Beim Vergleich von SwiGLU mit anderen GLU-Varianten können wir sehen, dass SwiGLU in beiden Vortrainingsphasen eine bessere Leistung erbringt.
Downstream-Aufgaben
haben die beste Leistung, daher verwenden jetzt alle LLMs wie LLAMA, OLMO und PALM SwiGLU in ihrer Implementierung. Aber warum ist SwiGLU besser als die anderen?
Das Papier gab nur die Testergebnisse bekannt und erläuterte nicht die Gründe. Stattdessen hieß es:
Wir geben keine Erklärung dafür, warum diese Architekturen zu funktionieren scheinen, wie alles andere auch. zur göttlichen Güte.
Der Autor sagte, dass die Alchemie erfolgreich war.
Aber jetzt haben wir das Jahr 2024 und wir können es eindringlich erklären:
1 Swishs relativ geringe Reaktion auf negative Werte überwindet das Manko von ReLU, dass die Ausgabe auf einigen Neuronen immer Null ist
2. Die Gating-Eigenschaften von GLU bedeuten, dass sie basierend auf der Eingabesituation entscheiden kann, welche Informationen weitergeleitet und welche Informationen gefiltert werden sollen. Dieser Mechanismus ermöglicht es dem Netzwerk, nützliche Darstellungen effektiver zu lernen und trägt dazu bei, die Generalisierungsfähigkeit des Modells zu verbessern. In großen Sprachmodellen ist dies besonders nützlich für die Verarbeitung langer Textsequenzen mit Abhängigkeiten über große Entfernungen.
3. Die Parameter W1, W2, W3, b1, b2, b3 können durch Training erlernt werden, sodass das Modell diese Parameter dynamisch an verschiedene Aufgaben und Datensätze anpassen kann.
4. Die Berechnungseffizienz ist höher als bei einigen komplexeren Aktivierungsfunktionen (wie GELU), während die Leistung dennoch gut bleibt. Dies ist eine wichtige Überlegung für das Training und die Inferenz umfangreicher Sprachmodelle.
Wählen Sie SwiGLU als Aktivierungsfunktion des großen Sprachmodells, hauptsächlich weil es die Vorteile nichtlinearer Fähigkeiten, Gating-Eigenschaften, Gradientenstabilität und lernbarer Parameter kombiniert. SwiGLU wird aufgrund seiner hervorragenden Leistung bei der Bewältigung komplexer semantischer Beziehungen und langer Abhängigkeitsprobleme in Sprachmodellen sowie der Aufrechterhaltung der Trainingsstabilität und Recheneffizienz weit verbreitet.
Papieradresse
Das obige ist der detaillierte Inhalt vonWarum verwenden große Sprachmodelle SwiGLU als Aktivierungsfunktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wenn Sie sich mit der Architektur großer Sprachmodelle befasst haben, ist Ihnen möglicherweise der Begriff „SwiGLU“ in den neuesten Modellen und Forschungsarbeiten aufgefallen. Man kann sagen, dass SwiGLU die am häufigsten verwendete Aktivierungsfunktion in großen Sprachmodellen ist. Wir werden sie in diesem Artikel ausführlich vorstellen. SwiGLU ist eigentlich eine von Google im Jahr 2020 vorgeschlagene Aktivierungsfunktion, die die Eigenschaften von SWISH und GLU kombiniert. Der vollständige chinesische Name von SwiGLU lautet „bidirektionale Gated Linear Unit“. Es optimiert und kombiniert zwei Aktivierungsfunktionen, SWISH und GLU, um die nichtlineare Ausdrucksfähigkeit des Modells zu verbessern. SWISH ist eine sehr häufige Aktivierungsfunktion, die in großen Sprachmodellen weit verbreitet ist, während GLU bei Aufgaben zur Verarbeitung natürlicher Sprache eine gute Leistung gezeigt hat.

Large Language Models (LLMs) werden auf riesigen Textdatenbanken trainiert und erwerben dort große Mengen an realem Wissen. Dieses Wissen wird in ihre Parameter eingebettet und kann dann bei Bedarf genutzt werden. Das Wissen über diese Modelle wird am Ende der Ausbildung „verdinglicht“. Am Ende des Vortrainings hört das Modell tatsächlich auf zu lernen. Richten Sie das Modell aus oder verfeinern Sie es, um zu erfahren, wie Sie dieses Wissen nutzen und natürlicher auf Benutzerfragen reagieren können. Aber manchmal reicht Modellwissen nicht aus, und obwohl das Modell über RAG auf externe Inhalte zugreifen kann, wird es als vorteilhaft angesehen, das Modell durch Feinabstimmung an neue Domänen anzupassen. Diese Feinabstimmung erfolgt mithilfe von Eingaben menschlicher Annotatoren oder anderer LLM-Kreationen, wobei das Modell auf zusätzliches Wissen aus der realen Welt trifft und dieses integriert

Da sich die Leistung groß angelegter Open-Source-Sprachmodelle weiter verbessert, hat sich auch die Leistung beim Schreiben und Analysieren von Code, Empfehlungen, Textzusammenfassungen und Frage-Antwort-Paaren (QA) verbessert. Aber wenn es um die Qualitätssicherung geht, mangelt es LLM oft an Problemen im Zusammenhang mit ungeschulten Daten, und viele interne Dokumente werden im Unternehmen aufbewahrt, um Compliance, Geschäftsgeheimnisse oder Datenschutz zu gewährleisten. Wenn diese Dokumente abgefragt werden, kann LLM Halluzinationen hervorrufen und irrelevante, erfundene oder inkonsistente Inhalte produzieren. Eine mögliche Technik zur Bewältigung dieser Herausforderung ist Retrieval Augmented Generation (RAG). Dabei geht es darum, die Antworten durch Verweise auf maßgebliche Wissensdatenbanken über die Trainingsdatenquelle hinaus zu verbessern, um die Qualität und Genauigkeit der Generierung zu verbessern. Das RAG-System umfasst ein Retrieval-System zum Abrufen relevanter Dokumentfragmente aus dem Korpus

2024 ist ein Jahr der rasanten Entwicklung für große Sprachmodelle (LLM). In der Ausbildung von LLM sind Alignment-Methoden ein wichtiges technisches Mittel, einschließlich Supervised Fine-Tuning (SFT) und Reinforcement Learning mit menschlichem Feedback, das auf menschlichen Präferenzen basiert (RLHF). Diese Methoden haben eine entscheidende Rolle bei der Entwicklung von LLM gespielt, aber Alignment-Methoden erfordern eine große Menge manuell annotierter Daten. Angesichts dieser Herausforderung ist die Feinabstimmung zu einem dynamischen Forschungsgebiet geworden, in dem Forscher aktiv an der Entwicklung von Methoden arbeiten, mit denen menschliche Daten effektiv genutzt werden können. Daher wird die Entwicklung von Ausrichtungsmethoden weitere Durchbrüche in der LLM-Technologie fördern. Die University of California hat kürzlich eine Studie zur Einführung einer neuen Technologie namens SPIN (SelfPlayfInetuNing) durchgeführt. S

Halluzinationen sind ein häufiges Problem bei der Arbeit mit großen Sprachmodellen (LLMs). Obwohl LLM glatte und kohärente Texte erzeugen kann, sind die generierten Informationen oft ungenau oder inkonsistent. Um LLM vor Halluzinationen zu schützen, können externe Wissensquellen wie Datenbanken oder Wissensgraphen zur Bereitstellung sachlicher Informationen genutzt werden. Auf diese Weise kann sich LLM auf diese zuverlässigen Datenquellen verlassen, was zu genaueren und zuverlässigeren Textinhalten führt. Vektordatenbank und Wissensgraph-Vektordatenbank Eine Vektordatenbank ist ein Satz hochdimensionaler Vektoren, die Entitäten oder Konzepte darstellen. Sie können verwendet werden, um die Ähnlichkeit oder Korrelation zwischen verschiedenen Entitäten oder Konzepten zu messen, die anhand ihrer Vektordarstellungen berechnet werden. Eine Vektordatenbank kann Ihnen anhand der Vektorentfernung sagen, dass „Paris“ und „Frankreich“ näher beieinander liegen als „Paris“ und

Da Sprachmodelle in einem noch nie dagewesenen Ausmaß skaliert werden, wird eine umfassende Feinabstimmung für nachgelagerte Aufgaben unerschwinglich teuer. Um dieses Problem zu lösen, begannen Forscher, der PEFT-Methode Aufmerksamkeit zu schenken und sie zu übernehmen. Die Hauptidee der PEFT-Methode besteht darin, den Umfang der Feinabstimmung auf einen kleinen Satz von Parametern zu beschränken, um die Rechenkosten zu senken und gleichzeitig eine hochmoderne Leistung bei Aufgaben zum Verstehen natürlicher Sprache zu erzielen. Auf diese Weise können Forscher Rechenressourcen einsparen und gleichzeitig eine hohe Leistung aufrechterhalten, wodurch neue Forschungsschwerpunkte auf dem Gebiet der Verarbeitung natürlicher Sprache entstehen. RoSA ist eine neue PEFT-Technik, die durch Experimente mit einer Reihe von Benchmarks gezeigt hat, dass sie frühere Low-Rank-Adaptive- (LoRA) und reine Sparse-Feinabstimmungsmethoden mit demselben Parameterbudget übertrifft. Dieser Artikel wird näher darauf eingehen

Grouped Query Attention (GroupedQueryAttention) ist eine Methode zur Aufmerksamkeit für mehrere Abfragen in großen Sprachmodellen. Ihr Ziel besteht darin, die Qualität von MHA zu erreichen und gleichzeitig die Geschwindigkeit von MQA beizubehalten. GroupedQueryAttention gruppiert Abfragen und Abfragen innerhalb jeder Gruppe haben die gleiche Aufmerksamkeitsgewichtung, was dazu beiträgt, die Rechenkomplexität zu reduzieren und die Inferenzgeschwindigkeit zu erhöhen. In diesem Artikel erklären wir die Idee der GQA und wie man sie in Code übersetzt. GQA befindet sich im Artikel GQA:TrainingGeneralizedMulti-QueryTransformerModelsfromMulti-HeadCheckpoint

Das Aufkommen großer Sprachmodelle (LLMs) hat Innovationen in mehreren Bereichen angeregt. Die zunehmende Komplexität von Eingabeaufforderungen, die durch Strategien wie CoT-Eingabeaufforderungen (Chain-of-Think) und kontextuelles Lernen (ICL) vorangetrieben werden, stellt jedoch rechnerische Herausforderungen dar. Diese langwierigen Eingabeaufforderungen erfordern erhebliche Ressourcen für die Argumentation und erfordern daher effiziente Lösungen. In diesem Artikel wird die Integration von LLMLingua mit dem proprietären LlamaIndex vorgestellt, um effizientes Denken durchzuführen. LLMLingua ist ein von Microsoft-Forschern bei EMNLP2023 veröffentlichtes Verfahren, das die Fähigkeit von LLML, wichtige Informationen in langen Kontextszenen zu erkennen, durch schnelle Komprimierung verbessert. LLMLingua und llamindex
