Künstliche Intelligenz
OLMo: Die Verbesserung der Wissenschaft von Sprachmodellen
Die Entwicklung und der Fortschritt von Sprachmodellen in den letzten Jahren haben ihre Präsenz fast überall markiert, nicht nur in der NLP-Forschung, sondern auch in kommerziellen Angeboten und realen Anwendungen. Allerdings hat der Anstieg der kommerziellen Nachfrage nach Sprachmodellen das Wachstum der Gemeinschaft in gewissem Maße behindert. Dies liegt daran, dass die meisten state-of-the-art- und leistungsfähigen Modelle hinter proprietären Schnittstellen verschlossen sind, was es der Entwicklergemeinschaft unmöglich macht, auf vitale Details ihrer Trainingsarchitektur, Daten und Entwicklungsprozesse zuzugreifen. Es ist nun unbestreitbar, dass diese Trainings- und Strukturdetails für Forschungsstudien, einschließlich des Zugriffs auf ihre potenziellen Risiken und Vorurteile, von entscheidender Bedeutung sind, was eine Anforderung für die Forschungsgemeinschaft schafft, Zugang zu einem wirklich offenen und leistungsfähigen Sprachmodell zu haben.
Um diese Anforderung zu erfüllen, haben Entwickler OLMo erstellt, ein state-of-the-art-, wirklich offenes Sprachmodell-Framework. Dieses Framework ermöglicht es Forschern, OLMo zu verwenden, um Sprachmodelle zu erstellen und zu untersuchen. Im Gegensatz zu den meisten state-of-the-art-Sprachmodellen, die nur Schnittstellencode und Modellgewichte veröffentlicht haben, ist das OLMo-Framework wirklich Open-Source, mit öffentlich zugänglichem Evaluierungscode, Trainingsmethoden und Trainingsdaten. Das primäre Ziel von OLMo ist es, die offene Forschungsgemeinschaft und die kontinuierliche Entwicklung von Sprachmodellen zu stärken.
In diesem Artikel werden wir das OLMo-Framework im Detail diskutieren, indem wir seine Architektur, Methodik und Leistung im Vergleich zu aktuellen state-of-the-art-Frameworks untersuchen. Also los geht’s.
OLMo: Die Verbesserung der Wissenschaft von Sprachmodellen
Das Sprachmodell ist wohl der heißeste Trend der letzten Jahre, nicht nur innerhalb der AI- und ML-Gemeinschaft, sondern auch in der gesamten Tech-Industrie, aufgrund seiner bemerkenswerten Fähigkeiten, realweltliche Aufgaben mit menschlicher Leistung auszuführen. ChatGPT ist ein Beispiel für das Potenzial von Sprachmodellen, mit großen Spielern in der Tech-Industrie, die die Integration von Sprachmodellen in ihre Produkte erkunden.
NLP, oder Natural Language Processing, ist eine der Branchen, die Sprachmodelle in den letzten Jahren umfassend eingesetzt hat. Allerdings hat die Branche, seit sie mit der Verwendung von Human-Annotation für Ausrichtung und groß angelegte Vor-Trainings begonnen hat, eine schnelle Verbesserung der kommerziellen Machbarkeit von Sprachmodellen erlebt, was dazu geführt hat, dass die meisten state-of-the-art-Sprach- und NLP-Frameworks eingeschränkte proprietäre Schnittstellen haben, wobei die Entwicklergemeinschaft keinen Zugang zu vitalen Details hat.
Um den Fortschritt von Sprachmodellen zu gewährleisten, bietet OLMo, ein state-of-the-art-, wirklich offenes Sprachmodell, Entwicklern ein Framework, um Sprachmodelle zu erstellen, zu untersuchen und ihre Entwicklung voranzutreiben. Es bietet auch Forschern Zugang zu seinem Trainings- und Evaluierungscode, Trainingsmethodik, Trainingsdaten, Trainingslogs und Zwischenmodell-Checkpoints. Bestehende state-of-the-art-Modelle haben unterschiedliche Grade an Offenheit, während das OLMo-Modell das gesamte Framework, von der Trainings- bis zur Evaluierung, veröffentlicht hat, was die Leistungsunterschiede im Vergleich zu state-of-the-art-Modellen wie dem LLaMA2-Modell verringert.
Für die Modellierung und das Training umfasst das OLMo-Framework den Trainingscode, die vollständigen Modellgewichte, Ablationen, Trainingslogs und Trainingsmetriken in Form von Schnittstellencode sowie Weights & Biases-Logs. Für die Analyse und die Erstellung von Datensätzen umfasst das OLMo-Framework die vollständigen Trainingsdaten, die für die AI2-Dolma- und WIMBD-Modelle verwendet wurden, sowie den Code, der die Trainingsdaten erzeugt. Für die Evaluierung umfasst das OLMo-Framework das AI2-Catwalk-Modell für die downstream-Evaluierung und das Paloma-Modell für die Perplexitäts-Evaluierung.
OLMo : Modell und Architektur
Das OLMo-Modell verwendet eine decoder-only-Transformer-Architektur basierend auf dem Neural Information Processing Systems und liefert zwei Modelle mit 1 Milliarde und 7 Milliarden Parametern, wobei ein Modell mit 65 Milliarden Parametern derzeit in Entwicklung ist.

Die Architektur des OLMo-Frameworks bietet mehrere Verbesserungen gegenüber Frameworks, die die Vanilla-Transformer-Komponente in ihrer Architektur verwenden, einschließlich der jüngsten state-of-the-art-großen Sprachmodelle wie OpenLM, Falcon, LLaMA und PaLM. Die folgende Abbildung vergleicht das OLMo-Modell mit 7 Milliarden Parametern mit aktuellen LLMs, die auf fast gleicher Anzahl von Parametern operieren.

Das OLMo-Framework wählt die Hyperparameter aus, indem es das Modell für die Trainingsdurchsatz auf der Hardware optimiert, während es gleichzeitig das Risiko von langsamen Abweichungen und Verlustspitzen minimiert. Mit anderen Worten, die primären Änderungen, die das OLMo-Framework implementiert, um sich von der Vanilla-Transformer-Architektur abzuheben, sind wie folgt:
Keine Voreingenommenheit
Im Gegensatz zu Falcon, PaLM, LLaMA und anderen Sprachmodellen enthält das OLMo-Framework keine Voreingenommenheit in seiner Architektur, um die Trainingsstabilität zu verbessern.
Nicht-parametrische Layer-Norm
Das OLMo-Framework implementiert die nicht-parametrische Formulierung der Layer-Norm in seiner Architektur. Die nicht-parametrische Layer-Norm bietet keine affine Transformation innerhalb der Norm, d. h. sie bietet keine adaptive Gewichtung oder Voreingenommenheit. Die nicht-parametrische Layer-Norm bietet nicht nur mehr Sicherheit als die parametrische Layer-Norm, sondern ist auch schneller.
SwiGLU-Aktivierungsfunktion
Wie die meisten Sprachmodelle, wie PaLM und LLaMA, enthält das OLMo-Framework die SwiGLU-Aktivierungsfunktion in seiner Architektur anstelle der ReLU-Aktivierungsfunktion und erhöht die versteckte Aktivierungsgröße auf das nächste Vielfache von 128, um die Durchsatzrate zu verbessern.
RoPE oder Rotary Positional Embeddings
Das OLMo-Modell folgt dem LLaMA- und PaLM-Modell und ersetzt die absoluten Positionseingaben durch RoPE oder Rotary Positional Embeddings.
Vor-Training mit Dolma
Obwohl die Entwicklergemeinschaft nun verbesserten Zugang zu Modellparametern hat, bleiben die Türen zum Zugang zu Vor-Trainingsdaten geschlossen, da die Vor-Trainingsdaten nicht zusammen mit den geschlossenen Modellen oder den offenen Modellen veröffentlicht werden. Darüber hinaus fehlen in den technischen Dokumentationen oft wichtige Details, die erforderlich sind, um das Modell vollständig zu verstehen und zu replizieren. Dieser Hindernis macht es schwierig, die Forschung in bestimmten Bereichen der Sprachmodellforschung voranzutreiben, einschließlich des Verständnisses, wie die Trainingsdaten die Fähigkeiten und Einschränkungen des Modells beeinflussen. Das OLMo-Framework hat sein Vor-Trainingsdataset, Dolma, veröffentlicht, um offene Forschung auf dem Gebiet der Sprachmodell-Vor-Trainings zu ermöglichen. Das Dolma-Dataset ist eine vielfältige und mehrquellige Sammlung von über 3 Billionen Token aus 5 Milliarden Dokumenten, die aus 7 verschiedenen Quellen stammen, die häufig von leistungsfähigen großen Sprachmodellen für die Vor-Trainings verwendet werden und der allgemeinen Öffentlichkeit zugänglich sind. Die Zusammensetzung des Dolma-Datasets ist in der folgenden Tabelle zusammengefasst.

Das Dolma-Dataset wird mithilfe einer Pipeline von 5 Komponenten erstellt: Sprachfilterung, Qualitätsfilterung, Inhaltsfilterung, Multi-Quellen-Mischung, Entduplizierung und Tokenisierung. OLMo hat auch den Dolma-Bericht veröffentlicht, der weitere Einblicke in die Designprinzipien und Konstruktionsdetails sowie eine detailliertere Inhaltszusammenfassung bietet. Das Modell hat auch seine Hochleistungs-Datencurating-Tools als Open-Source veröffentlicht, um eine einfache und schnelle Curation von Vor-Trainingsdaten zu ermöglichen. Die Evaluierung des Modells erfolgt in zwei Stufen, beginnend mit der Online-Evaluierung für Entscheidungen während des Modelltrainings und einer abschließenden Offline-Evaluierung für eine aggregierte Evaluierung aus Modell-Checkpoints. Für die Offline-Evaluierung verwendet OLMo das Catwalk-Framework, unser öffentlich verfügbares Evaluierungstool, das Zugang zu einer breiten Vielfalt von Datensätzen und Aufgabenformaten hat. Das Framework verwendet Catwalk für die downstream-Evaluierung sowie für die intrinsische Sprachmodell-Evaluierung auf unserem neuen Perplexitäts-Benchmark, Paloma. OLMo vergleicht es dann mit mehreren öffentlichen Modellen mithilfe seiner festen Evaluierungspipeline, sowohl für die downstream- als auch für die Perplexitäts-Evaluierung.
OLMo führt mehrere Evaluierungsmetriken über die Modellarchitektur, Initialisierung, Optimierer, Lernrate-Schedule und Mischungen von Daten während des Trainings des Modells aus. Entwickler nennen es OLMo’s “Online-Evaluierung”, da es eine schrittweise Iteration bei jedem 1000. Trainings-Schritt (∼4B Trainings-Token) ist, um ein frühes und kontinuierliches Signal über die Qualität des trainierten Modells zu geben. Die Einrichtung dieser Evaluierungen hängt von den meisten Kern-Aufgaben und Experiment-Einstellungen ab, die für unsere Offline-Evaluierung verwendet werden. OLMo zielt nicht nur darauf ab, OLMo-7B mit anderen Modellen für die beste Leistung zu vergleichen, sondern auch, um zu zeigen, wie es eine vollständigere und kontrolliertere wissenschaftliche Evaluierung ermöglicht. OLMo-7B ist das größte Sprachmodell mit expliziter Entkontaminierung für die Perplexitäts-Evaluierung.
OLMo-Training
Es ist wichtig zu beachten, dass die OLMo-Framework-Modelle mit der ZeRO-Optimierer-Strategie trainiert werden, die durch das FSDP-Framework über PyTorch bereitgestellt wird und auf diese Weise den GPU-Speicherbedarf erheblich reduziert, indem Modellgewichte über GPUs verteilt werden. Mit diesem Ansatz kann das Training bei der 7-Milliarden-Skala mit einer Mikro-Batch-Größe von 4096 Token pro GPU auf unserer Hardware durchgeführt werden. Das Trainingsframework für die OLMo-1B- und -7B-Modelle verwendet eine global konstante Batch-Größe von etwa 4M Token (2048 Instanzen mit jeweils 2048 Token). Für das Modell OLMo-65B (derzeit in Training) verwenden die Entwickler eine Batch-Größe-Warmup, die bei etwa 2M Token (1024 Instanzen) beginnt und alle 100B Token verdoppelt, bis etwa 16M Token (8192 Instanzen) erreicht sind.
Um die Durchsatzrate zu verbessern, verwenden wir gemischte Präzisionstraining (Micikevicius et al., 2017) über die integrierten Einstellungen von FSDP und PyTorch’s amp-Modul. Letzteres stellt sicher, dass bestimmte Operationen wie die Softmax immer in voller Präzision ausgeführt werden, um die Stabilität zu verbessern, während alle anderen Operationen in halber Präzision mit dem bfloat16-Format ausgeführt werden. Unter unseren spezifischen Einstellungen werden die Modellgewichte und der Optimiererzustand, der lokal auf jeder GPU gespeichert ist, in voller Präzision gehalten. Die Gewichte innerhalb jedes Transformer-Blocks werden nur im bfloat16-Format umgewandelt, wenn die vollständigen Parameter auf jeder GPU während der Vorwärts- und Rückwärts-Pässe materialisiert werden. Gradienten werden in voller Präzision über GPUs reduziert.
Optimierer
Das OLMo-Framework verwendet den AdamW-Optimierer mit den folgenden Hyperparametern.

Für alle Modellgrößen wird die Lernrate linear über die ersten 5000 Schritte (∼21B Token) auf einen Maximalwert aufgewärmt und danach linear mit dem inversen Quadratwurzel des Schrittnummers auf den angegebenen Mindestlernwert abgeklungen. Nach der Warm-up-Phase begrenzt das Modell die Gradienten so, dass die Gesamtl-Norm der Parameter-Gradienten 1,0 nicht überschreitet. Die folgende Tabelle gibt einen Vergleich unserer Optimierereinstellungen bei der 7-Milliarden-Skala mit denen anderer jüngster LMs, die auch AdamW verwendet haben.

Trainingsdaten
Das Training umfasst die Tokenisierung von Trainingsinstanzen durch Wort- und BPE-Tokenizer für das Satzstück-Modell nach dem Hinzufügen eines speziellen EOS-Tokens am Ende jedes Dokuments und dann gruppieren aufeinanderfolgender Chunks von 2048 Token, um Trainingsinstanzen zu bilden. Trainingsinstanzen werden in der gleichen Weise für jeden Trainingslauf geschüttelt. Die Datenreihenfolge und die genaue Zusammensetzung jedes Trainingsbatches können aus den veröffentlichten Artikeln rekonstruiert werden. Alle veröffentlichten OLMo-Modelle wurden bis zu mindestens 2T Token (eine einzelne Epoche über ihre Trainingsdaten) trainiert, und einige wurden darüber hinaus trainiert, indem sie eine zweite Epoche über die Daten mit einer anderen Schüttelreihenfolge starteten. Angesichts der geringen Menge an Daten, die dies wiederholt, sollte dies einen vernachlässigbaren Effekt haben.
Ergebnisse
Der Checkpoint, der für die Evaluierung von OLMo-7B verwendet wird, wurde bis 2,46T Token auf dem Dolma-Datensatz mit dem linearen Lernrate-Abfall-Schedule trainiert. Eine weitere Feinabstimmung dieses Checkpoints auf dem Dolma-Datensatz für 1000 Schritte mit linear abgeklungener Lernrate auf 0 erhöht die Modellleistung auf Perplexität und End-Aufgaben-Evaluierungssuiten, wie zuvor beschrieben. Für die abschließende Evaluierung verglichen die Entwickler OLMo mit anderen öffentlich verfügbaren Modellen – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B und RPJ-INCITE-7B.
Downstream-Evaluierung
Die Kern-Downstream-Evaluierungssuite ist in der folgenden Tabelle zusammengefasst.

Wir führen eine Zero-Shot-Evaluierung durch, indem wir die Kandidaten-Textvollendungen (z. B. verschiedene Multiple-Choice-Optionen) durch eine Rangklassifizierungsmethode bewerten und die Vorhersagegenauigkeit melden.
Während Catwalk mehrere typische Wahrscheinlichkeitsnormalisierungsmethoden verwendet, wie z. B. Token-Normalisierung und Zeichen-Normalisierung, werden die Normalisierungsstrategien separat für jeden Datensatz ausgewählt und umfassen die unbedingte Wahrscheinlichkeit der Antwort. Konkret umfasst dies keine Normalisierung für die arc- und openbookqa-Aufgaben, Token-Normalisierung für die hellaswag-, piqa- und winogrande-Aufgaben und keine Normalisierung für die boolq-, copa- und sciq-Aufgaben (d. h. Aufgaben in einer Formulierung, die einer einzelnen Token-Vorhersage ähnlich ist).

Die folgende Abbildung zeigt den Fortschritt der Genauigkeitswerte für die neun Kern-Endaufgaben. Es kann abgeleitet werden, dass es einen allgemein ansteigenden Trend in der Genauigkeitszahl für alle Aufgaben gibt, außer für OBQA, wenn OLMo-7B auf mehr Token weiter trainiert wird. Ein scharfer Aufwärtstrend in der Genauigkeit vieler Aufgaben zwischen dem letzten und vorletzten Schritt zeigt uns den Vorteil der linearen Reduzierung der Lernrate auf 0 über die letzten 1000 Trainings-Schritte. Beispielsweise argumentiert Paloma durch eine Reihe von Analysen, von der Inspektion der Leistung in jedem Bereich getrennt bis hin zu zusammengefassten Ergebnissen über Kombinationen von Bereichen. Wir berichten Ergebnisse auf zwei Ebenen der Granularität: die aggregierte Leistung über 11 der 18 Quellen in Paloma sowie feinere Ergebnisse über jede dieser Quellen einzeln.

Letzte Gedanken
In diesem Artikel haben wir über OLMo gesprochen, ein state-of-the-art-, wirklich offenes Sprachmodell, das Entwicklern ein Framework bietet, um Sprachmodelle zu erstellen, zu untersuchen und ihre Entwicklung voranzutreiben, sowie Forschern Zugang zu seinem Trainings- und Evaluierungscode, Trainingsmethodik, Trainingsdaten, Trainingslogs und Zwischenmodell-Checkpoints bietet. Bestehende state-of-the-art-Modelle haben unterschiedliche Grade an Offenheit, während das OLMo-Modell das gesamte Framework von der Trainings- bis zur Evaluierung veröffentlicht hat, was die Leistungsunterschiede im Vergleich zu state-of-the-art-Modellen wie dem LLaMA2-Modell verringert.












