große Sprachmodelle (LLMs) haben bemerkenswerte Fortschritte erzielt, die eine Vielzahl von Aufgaben ausführen können, vom Generieren menschlicher Text bis zur Beantwortung von Fragen. Das Verständnis, wie diese Modelle funktionieren, bleibt jedoch eine Herausforderung, insbesondere weil es ein Phänomen gibt, das als Überlagerung bezeichnet wird, bei dem Merkmale in einem Neuron gemischt werden, was es sehr schwierig macht, menschlich verständliche Darstellungen aus der ursprünglichen Modellstruktur zu extrahieren. Aus diesem Grund scheinen Methoden wie Sparse AutoCoder in der Lage zu sein, Merkmale zu entwirren, um die Interpretierbarkeit zu verbessern.
In diesem Blog-Beitrag werden wir den spärlichen Autocoder verwenden, um nach einigen Feature-Schleifen in einem besonders interessanten Fall von Objekt-Verb-Konsistenz zu suchen und zu verstehen, wie die Modellkomponenten zur Aufgabe beitragen.
Im Kontext neuronaler Netzwerke lernt die Feature -Schleife, wie das Netzwerk Eingabefunktionen lernt, um komplexe Muster auf einer höheren Ebene zu bilden. Wir verwenden die Metapher von "Schleifen", um zu beschreiben, wie Merkmale in verschiedenen Schichten eines neuronalen Netzwerks verarbeitet werden, da diese Verarbeitungsweise uns an den Prozess der Verarbeitung und Kombination von Signalen in elektronischen Schaltungen erinnert. Diese Feature -Loops werden allmählich durch die Verbindung zwischen dem Neuron und der Schicht gebildet, wobei jedes Neuron oder jede Schicht für die Transformation der Eingabefunktionen verantwortlich ist, und ihre Wechselwirkungen führen zu nützlichen Merkmalskombinationen, die zusammenarbeiten, um die endgültige Vorhersage zu machen.
Folgendes ist ein Beispiel für Merkmalsschleifen: In vielen visuellen neuronalen Netzwerken können wir "eine Schleife als eine Familie von Einheiten finden, die Kurven in verschiedenen Winkeln erkennen. Kurvendetektoren bestehen hauptsächlich aus frühen, weniger komplexen Kurvendetektoren. und Leitungsdetektor -Implementierung.
In den folgenden Kapiteln werden wir eine Feature-Schleife für konsistente Aufgaben in LLM untersuchen.
Overlay- und Sparse AutoCoder
Dies ist das, was der spärliche Autocoder (SAE) macht.
SAE hilft uns, die Aktivierung des Netzwerks in einen spärlichen Satz von Funktionen zu entsperren. Diese spärlichen Merkmale sind von Menschen oft verständlich, sodass wir das Modell besser verstehen können. Durch die Anwendung von SAE auf die Aktivierung des LLM -Modells auf versteckte Schicht können wir Merkmale isolieren, die zur Ausgabe des Modells beitragen.
Sie können Details darüber finden, wie SAE in meinem vorherigen Blog -Beitrag funktioniert.
Fallstudie: Subjekt-Vorbereitungskonsistenz
Für den Menschen ist das Verständnis dieser einfachen Regel für Aufgaben wie Textgenerierung, Übersetzung sowie Frage und Antwort sehr wichtig. Aber woher wissen wir, ob LLM diese Regel wirklich gelernt hat?
Wir werden nun untersuchen, wie LLM -Formulare Schleifen für diese Aufgabe aufweisen.
Lassen Sie uns nun den Prozess des Erstellens von Funktionsschleifen erstellen. Wir werden in vier Schritten fortfahren:
Wir erstellen zuerst ein Spielzeugsprachmodell, das für den folgenden Code keinen Sinn hat. Dies ist ein neuronales Netzwerk mit zwei einfachen Schichten.
Für die Konsistenz des Subjekts sollte das Modell:
<code># ====== 定义基础模型(模拟主谓一致)====== class SubjectVerbAgreementNN(nn.Module): def __init__(self): super().__init__() self.hidden = nn.Linear(2, 4) # 2 个输入 → 4 个隐藏激活 self.output = nn.Linear(4, 2) # 4 个隐藏 → 2 个输出 (runs/run) self.relu = nn.ReLU() def forward(self, x): x = self.relu(self.hidden(x)) # 计算隐藏激活 return self.output(x) # 预测动词</code>
Es ist nicht klar, was in der verborgenen Schicht passiert. Daher haben wir den folgenden spärlichen Autoencoder eingeführt:
<code># ====== 定义稀疏自动编码器 (SAE) ====== class c(nn.Module): def __init__(self, input_dim, hidden_dim): super().__init__() self.encoder = nn.Linear(input_dim, hidden_dim) # 解压缩为稀疏特征 self.decoder = nn.Linear(hidden_dim, input_dim) # 重构 self.relu = nn.ReLU() def forward(self, x): encoded = self.relu(self.encoder(x)) # 稀疏激活 decoded = self.decoder(encoded) # 重构原始激活 return encoded, decoded</code>
Wir trainieren die ursprünglichen Modelle SubjektverbagRementnn und SubjektverbagRementnn unter Verwendung von Sätzen, die verschiedene einzelne und pluralische Formen von Verben darstellen, wie "The Cat Runs", "The Babies Run". Aber wie zuvor sind sie für Spielzeugmodelle möglicherweise keinen Sinn.
Jetzt visualisieren wir die Funktionsschleife. Wie bereits erwähnt, sind Merkmalsschleifen neuronale Einheiten, die zur Verarbeitung spezifischer Merkmale verwendet werden. In unserem Modell gehören:
: Sie können in der Abbildung sehen, dass wir die Feature -Schleife als Diagramm visualisieren:
Für reale Fälle führen wir einen ähnlichen Code auf GPT2-Small aus. Wir zeigen ein charakteristisches Schaltendiagramm, das die Entscheidung zur Auswahl singulärer Verben darstellt.
Feature -Loops helfen uns zu verstehen, wie unterschiedliche Teile des komplexen LLM zur endgültigen Ausgabe führen. Wir zeigen die Möglichkeit, Feature-Schleifen mit SAE für konsistente Subjekte-Vorbereitungsaufgaben zu bilden.
Wir müssen jedoch zugeben, dass dieser Ansatz immer noch einige menschliche Interventionen erfordert, da wir nicht immer wissen, ob Schleifen ohne ordnungsgemäßes Design wirklich gebildet werden können.
[1] Zoom: Schaltung Einführung
Bitte beachten Sie, dass ich die Image -Platzhalter bewahrt habe und angenommen habe, dass die Bilder bei den bereitgestellten URLs weiterhin zugänglich sind bleiben unverändert.
Das obige ist der detaillierte Inhalt vonFormulierung von Merkmalsschaltungen mit spärlichen Autoencodern in LLM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!