Zum Hauptinhalt springen
OpenAI

Neuronale Netzwerke durch dünn besetzte Schaltkreise verstehen

Wir haben die Modelle so trainiert, dass sie in einfacheren und besser nachvollziehbaren Schritten denken. Dadurch können wir ihre Funktionsweise besser verstehen.

Laden …

​​Neuronale Netzwerke sind die treibende Kraft hinter den leistungsfähigsten KI-Systemen von heute, aber sie sind schwer nachzuvollziehen. Wir erstellen diese Modelle nicht mit expliziten Schritt-für-Schritt-Anleitungen. Stattdessen lernen sie, indem sie Milliarden interner Verbindungen oder „Gewichte“ anpassen, bis sie eine Aufgabe meistern. Wir entwerfen die Trainingsregeln, nicht aber die spezifischen Verhaltensweisen, die dabei entstehen. Das Ergebnis ist ein dichtes Netz von Verbindungen, das für Menschen kaum zu entschlüsseln ist. 

Unsere Sichtweise auf Interpretierbarkeit

Da KI-Systeme immer leistungsfähiger werden und reale Auswirkungen auf Entscheidungen in Wissenschaft, Bildung und Gesundheitswesen haben, ist es unerlässlich, ihre Funktionsweise zu verstehen. Interpretierbarkeit bezieht sich auf Methoden, die uns dabei helfen zu verstehen, warum ein Modell einen bestimmten Output erzeugt hat. Es gibt viele Möglichkeiten, dies zu erreichen. 

Schlussfolgernde Modelle werden beispielsweise dazu ermutigt, ihre Arbeit bei der Suche nach einer endgültigen Antwort zu erläutern. Die Interpretierbarkeit des Denkvorgangs nutzt diese Erklärungen, um das Verhalten des Modells zu überwachen. Daraus ergibt sich sofort ein Nutzen: Die Gedankengänge aktueller schlussfolgernder Modelle scheinen in Bezug auf besorgniserregende Verhaltensweisen wie Täuschung aufschlussreich zu sein. Sich jedoch vollständig auf diese Eigenschaft zu verlassen, ist eine riskante Strategie, die mit der Zeit scheiter kann.

Andererseits zielt die mechanistische Interpretierbarkeit, die im Mittelpunkt dieser Arbeit steht, darauf ab, die Berechnungen eines Modells vollständig nachvollziehen zu können. Bisher war dies weniger unmittelbar nützlich, könnte aber grundsätzlich eine umfassendere Erklärung für das Verhalten des Modells bieten. Wenn wir versuchen, das Modellverhalten auf der granularsten Ebene zu erklären, können wir mit weniger Annahmen auskommen und erhalten mehr Sicherheit. Der Weg von den Details auf niedriger Ebene zu Erklärungen komplexer Verhaltensweisen ist jedoch viel länger und schwieriger.

Die Interpretierbarkeit unterstützt mehrere wichtige Ziele: Zum einen ermöglicht sie eine bessere Übersicht, zum anderen liefert sie Frühwarnzeichen für unsichere oder strategisch ungünstige Verhaltensweisen. Zudem ergänzt sie unsere anderen Sicherheitsmaßnahmen wie die skalierbare Aufsicht, das Adversarial-Training und das Red-Teaming. 

In dieser Arbeit zeigen wir, dass sich Modelle häufig so trainieren lassen, dass sie leichter interpretierbar sind. Wir betrachten unsere Arbeit als eine vielversprechende Ergänzung zur nachträglichen Analyse dichter Netzwerke. 

Das ist ein ambitioniertes Unterfangen, denn es liegt noch ein langer Weg vor uns, bis wir die komplexen Verhaltensweisen unserer leistungsfähigsten Modelle vollständig verstehen. Dennoch stellen wir bei einfachen Verhaltensweisen fest, dass die mit unserer Methode trainierten, dünn besetzten Modelle nur kleine, überschaubare Schaltkreise enthalten. Diese reichen aus, um das Verhalten auszuführen. Dies deutet darauf hin, dass es möglich sein könnte, auch größere Systeme zu trainieren, deren Mechanismen wir verstehen können.

Ein neuer Ansatz: dünn besetzte Modelle verstehen

Frühere Arbeiten zur mechanistischen Interpretierbarkeit haben bei dichten, verworrenen Netzwerken begonnen und versucht, sie zu entwirren. In diesen Netzwerken ist jedes einzelne Neuron mit Tausenden anderer Neuronen verbunden. Die meisten Neuronen scheinen viele verschiedene Funktionen zu erfüllen, was es scheinbar unmöglich macht, sie zu verstehen. 

Doch was wäre, wenn wir entwirrte neuronale Netzwerke mit viel mehr Neuronen trainieren würden, bei denen jedes Neuron nur einige Dutzend Verbindungen hätte? Dann wäre das resultierende Netzwerk vielleicht einfacher und leichter zu verstehen. Dies ist die zentrale Forschungsfrage unserer Arbeit.

Unter Berücksichtigung dieses Prinzips haben wir Sprachmodelle mit einer Architektur trainiert, die der von bestehenden Sprachmodellen wie GPT‑2 sehr ähnlich ist – mit einer kleinen Änderung: Wir stellen sicher, dass die überwiegende Mehrheit der Gewichte des Modells den Wert Null hat. Dadurch ist das Modell nur in der Lage, sehr wenige der möglichen Verbindungen zwischen seinen Neuronen zu nutzen. Diese einfache Änderung entwirrt unserer Meinung nach die internen Berechnungen des Modells erheblich.

Diagramm zum Vergleich von dichten Schaltkreisen und dünn besetzten Schaltkreisen. Die dichte Version zeigt zwei Reihen von Nodes mit vielen Verbindungslinien, während die dünn besetzte Version dasselbe Layout mit weniger und selektiveren Verbindungen zeigt.

In normalen dichten neuronalen Netzwerken ist jedes Neuron mit jedem Neuron der nächsten Schicht verbunden. In unseren dünn besetzten Modellen ist jedes Neuron nur mit wenigen Neuronen der nächsten Schicht verbunden. Wir hoffen, dass dies die Neuronen und das Netzwerk als Ganzes leichter verständlich macht.

Die Interpretierbarkeit bewerten

Wir möchten ermitteln, inwieweit die Berechnungen unserer dünn besetzten Modelle entwirrt sind. Wir haben verschiedene einfache Verhaltensweisen des Modells betrachtet und überprüft, ob wir die dafür verantwortlichen Teile des Modells – wir nennen sie Schaltkreise – isolieren können.

Wir haben eine Sammlung einfacher algorithmischer Aufgaben von Hand zusammengestellt. Dabei haben wir für jede Aufgabe das Modell auf den kleinsten Schaltkreis reduziert, der die Aufgabe noch ausführen kann, und untersucht, wie einfach dieser Schaltkreis ist. (Weitere Informationen dazu findest du in diesem Artikel(wird in einem neuen Fenster geöffnet).) Wir stellten fest, dass wir durch das Trainieren größerer und dünn besetzter Modelle immer leistungsfähigere Modelle mit immer einfacheren Schaltkreisen erstellen konnten.

Streudiagramm zeigt die Modellfähigkeit (Vortrainingsverlust) auf der x-Achse und die Interpretierbarkeit (Größe des reduzierten Schaltkreises) auf der y-Achse. Punkte repräsentieren Modelle unterschiedlicher Größen und Einsparungsstufen. Die Farbe gibt die Gesamtanzahl der Parameter an, während die Größe der Markierungen die Anzahl der Nicht-Null-Parameter angibt. Pfeile kennzeichnen die Richtung nach oben rechts als „besser“.

Wir stellen die Interpretierbarkeit im Vergleich zur Leistungsfähigkeit der Modelle dar (links unten ist besser). Bei einem dünn besetzten Modell mit fester Größe verringert eine erhöhte Sparsamkeit, die dadurch erreicht wird, dass mehr Gewichte auf Null gesetzt werden, die Leistungsfähigkeit, erhöht jedoch die Interpretierbarkeit. Eine Vergrößerung der Modellgröße verschiebt diese Grenze nach außen, was darauf hindeutet, dass wir größere Modelle bauen können, die sowohl leistungsfähig als auch interpretierbar sind.

Um das Ganze zu veranschaulichen, kann man sich folgende Aufgabe vorstellen: Ein auf Python-Code trainiertes Modell muss eine Zeichenkette mit der richtigen Art von Anführungszeichen vervollständigen. In Python muss ‚hallo‘ mit einem einfachen Anführungszeichen enden, und „hallo“ muss mit einem doppelten. Das Modell kann dieses Problem lösen, indem es sich merkt, welcher Anführungszeichen-Typ die Zeichenkette eröffnet hat, und diesen am Ende wiedergibt.

Unsere am besten interpretierbaren Modelle scheinen entkoppelte Schaltkreise zu enthalten, die genau diesen Algorithmus umsetzen.

Diagramm zur Veranschaulichung eines Beispielschaltkreises in einem dünn besetzten Transformer. Es wird dargestellt, wie bestimmte Neuronen und Aufmerksamkeitsköpfe als Reaktion auf Eingabe-Token wie „(“ und „circuits“ aktiviert werden. Dabei sind die Pfade für positive und negative Gewichte, Multiplikationen, Nichtlinearitäten und Verbindungen zwischen MLP- und Aufmerksamkeitsbereichen gekennzeichnet, die in Ausgabe-Token-Wahrscheinlichkeiten münden.

Beispielschaltkreis in einem dünn besetzten Transformer, der vorhersagt, ob eine Zeichenkette mit einem einfachen oder doppelten Anführungszeichen endet. In diesem Schaltkreis kommen lediglich fünf Residualkanäle (vertikale graue Linien), zwei MLP-Neuronen in Schicht 0 sowie ein Abfrage-Schlüssel-Kanal und ein Wertkanal in Schicht 10 zum Einsatz. Das Modell (1) kodiert einfache Anführungszeichen in einem Residualkanal und doppelte Anführungszeichen in einem anderen. (2) verwendet eine MLP-Schicht, um dies in einen Kanal umzuwandeln, der beliebige Anführungszeichen erkennt, sowie in einen weiteren Kanal, der zwischen einfachen und doppelten Anführungszeichen unterscheidet. (3) nutzt eine Aufmerksamkeitsoperation, um dazwischenliegende Token zu ignorieren, das vorherige Anführungszeichen zu finden und dessen Typ auf das letzte Token zu kopieren. (4) prognostiziert schließlich das passende schließende Anführungszeichen.

In unserer Definition genügen die oben gezeigten exakten Verbindungen, um die Aufgabe zu erfüllen. Wenn wir den Rest des Modells entfernen, funktioniert dieser kleine Schaltkreis weiterhin. Sie sind auch notwendig, denn das Löschen dieser wenigen Verbindungen führt zum Scheitern des Modells.

Wir haben uns auch einige komplexere Verhaltensweisen angesehen. Die Schaltkreise für diese Verhaltensweisen (wie die unten gezeigte Variablenbindung) sind nur schwer vollständig zu erklären. Trotzdem können wir relativ einfache Teilerklärungen erzielen, die das Verhalten des Modells vorhersagen.

Diagramm, das ein Beispiel für einen Schaltkreis mit dünn besetztem Transformer innerhalb der Python-Funktion get_neighbors hervorhebt. Zwei Zuweisungen zu current = set() sind eingerahmt, wobei farbige Pfeile anzeigen, welche Aufmerksamkeitsköpfe (mit Q/K/V-Indizes gekennzeichnet) aktiviert werden, um jedes Vorkommen der Variablen current mit ihrer Verwendung in der Schleife zu verbinden.

Ein weiteres Beispiel für einen Schaltkreis, weniger detailliert. Um den Typ einer Variablen namens current zu bestimmen, kopiert eine Aufmerksamkeitsoperation den Variablennamen in das set()-Token, wenn er definiert wird, und ein weiterer späterer Vorgang kopiert den Typ aus dem set()-Token in eine nachfolgende Verwendung der Variablen, sodass das Modell das korrekte weitere Token ableiten kann.

Die Zukunft

Diese Arbeit ist ein erster Schritt in Richtung eines größeren Ziels: Modellberechnungen leichter verständlich zu machen. Doch der Weg dorthin ist noch lang. Unsere dünn besetzten Modelle sind viel kleiner als die Frontier-Modelle, und große Teile ihrer Berechnungen sind weiterhin nicht interpretierbar. 

Wir hoffen, unsere Techniken in Zukunft auf größere Modelle skalieren zu können und damit ein größeres Spektrum des Modellverhaltens erklären zu können. Durch die Aufzählung von Schaltkreismotiven, die dem komplexeren Denken in leistungsstarken, dünn besetzten Modellen zugrunde liegen, könnten wir ein Verständnis entwickeln, das uns dabei hilft, Untersuchungen von Frontier-Modellen gezielter durchzuführen.

Um die Ineffizienz beim Training dünn besetzter Modelle zu überwinden, sehen wir zwei Möglichkeiten. Eine Möglichkeit besteht darin, dünn besetzte Schaltkreise aus vorhandenen dichten Modellen zu extrahieren, anstatt spärliche Modelle von Grund auf neu zu trainieren. Grundsätzlich sind dichte Modelle effizienter bereitzustellen als spärliche Modelle. Eine andere Möglichkeit besteht darin, effizientere Techniken zu entwickeln, um Modelle für die Interpretierbarkeit zu trainieren, die möglicherweise leichter in die Produktion überführt werden können.

Unsere Erkenntnisse sind keine Garantie dafür, dass sich dieser Ansatz auf leistungsfähigere Systeme übertragen lässt. Diese ersten Ergebnisse sind jedoch vielversprechend. Unser Ziel ist es, den Umfang von Modellen, die wir zuverlässig interpretieren können, schrittweise zu erweitern und Werkzeuge zu entwickeln, mit denen sich zukünftige Systeme leichter analysieren, debuggen und bewerten lassen.

Autoren

Leo Gao, Achyuta Rajaram, Jacob Coxon, Soham V. Govande, Bowen Baker und Dan Mossing