KI-Modelle und Plattformen
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, und somit ein Bedürfnis für die Forschungsgemeinschaft entsteht, Zugang zu einem wirklich offenen und leistungsfähigen Sprachmodell zu haben.
Um diesem Bedürfnis nachzukommen, haben Entwickler OLMo erstellt, ein State-of-the-Art- und 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 und zu fördern.
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 in den letzten Jahren zweifellos der heißeste Trend gewesen, nicht nur innerhalb der AI- und ML-Gemeinschaft, sondern auch in der gesamten Tech-Industrie, aufgrund seiner bemerkenswerten Fähigkeiten, reale Aufgaben mit menschlicher Leistung auszuführen. ChatGPT ist ein Beispiel für das Potenzial von Sprachmodellen, und große Spieler in der Tech-Industrie erkunden die Integration von Sprachmodellen in ihre Produkte.
NLP, oder Natural Language Processing, ist eine der Branchen, die Sprachmodelle in den letzten Jahren umfassend eingesetzt hat. Allerdings hat die Branche, seitdem sie menschliche Annotation für Ausrichtung und groß angelegte Vor-Trainingsverfahren eingesetzt 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 proprietäre Schnittstellen haben, und die Entwicklergemeinschaft keinen Zugang zu wichtigen Details hat.
Um den Fortschritt von Sprachmodellen sicherzustellen, bietet OLMo, ein State-of-the-Art- und wirklich offenes Sprachmodell, Entwicklern ein Framework, um Sprachmodelle zu erstellen, zu untersuchen und zu verbessern. Es bietet auch Forschern Zugang zu Trainings- und Evaluierungscode, Trainingsmethoden, Trainingsdaten, Trainingsprotokollen 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 Evaluierungs-Tools, veröffentlicht hat, und somit 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 Trainingscode, vollständige Modellgewichte, Ablationen, Trainingsprotokolle und Trainingsmetriken in Form von Schnittstellencode sowie Weights & Biases-Protokolle. Für die Analyse und die Erstellung von Datensätzen umfasst das OLMo-Framework die vollständigen Trainingsdaten, die für die AI2-Modelle Dolma und WIMBD verwendet werden, sowie den Code, der die Trainingsdaten erzeugt. Für die Evaluierung umfasst das OLMo-Framework das AI2-Modell Catwalk 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, die auf dem Neural Information Processing Systems basiert, 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 aktueller State-of-the-Art-Modelle 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 langsamer Abweichung und Verlustspitzen minimiert. Die primären Änderungen, die das OLMo-Framework im Vergleich zur Vanilla-Transformer-Architektur vornimmt, sind wie folgt:
Keine Vorurteile
Im Gegensatz zu Falcon, PaLM, LLaMA und anderen Sprachmodellen enthält das OLMo-Framework keine Vorurteile in seiner Architektur, um die Trainingsstabilität zu verbessern.
Nicht-parametrische Schicht-Norm
Das OLMo-Framework implementiert die nicht-parametrische Formulierung der Schicht-Norm in seiner Architektur. Die nicht-parametrische Schicht-Norm bietet keine affine Transformation innerhalb der Norm, d. h. sie bietet keine adaptive Gewichtung oder Vorurteile. Nicht-parametrische Schicht-Normen bieten nicht nur mehr Sicherheit als parametrische Schicht-Normen, sondern sind auch schneller.
SwiGLU-Aktivierungsfunktion
Wie die meisten Sprachmodelle, wie PaLM und LLaMA, verwendet 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 den LLaMA- und PaLM-Modellen und ersetzt die absoluten Positional-Embeddings 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 noch 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, die solche Daten abdecken, oft wichtige Details, die erforderlich sind, um das Modell vollständig zu verstehen und zu replizieren. Diese Blockade macht es schwierig, bestimmte Forschungsstränge in der Sprachmodell-Forschung voranzutreiben, einschließlich des Verständnisses, wie die Trainingsdaten die Fähigkeiten und Einschränkungen des Modells beeinflussen. Das OLMo-Framework hat sein Vor-Trainings-Dataset, Dolma, veröffentlicht, um offene Forschung auf dem Gebiet der Sprachmodell-Vor-Trainings zu ermöglichen. Das Dolma-Dataset ist eine vielfältige Sammlung von über 3 Billionen Token über 5 Milliarden Dokumente, die aus 7 verschiedenen Quellen stammen, die häufig von leistungsfähigen großen Sprachmodellen für die Vor-Trainingsverfahren verwendet werden und der allgemeinen Öffentlichkeit zugänglich sind. Die Zusammensetzung des Dolma-Datasets wird 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 veröffentlicht auch seine Hochleistungs-Datenkurierungs-Tools, um eine einfache und schnelle Kurierung von Vor-Trainings-Datensätzen 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 zugängliches Evaluierungstool, das Zugang zu einer breiten Vielfalt von Datensätzen und Aufgabenformaten hat. Das Framework verwendet Catwalk für die downstream-Evaluierung sowie die intrinsische Sprachmodell-Evaluierung auf unserem neuen Perplexitäts-Benchmark, Paloma. OLMo vergleicht es dann mit mehreren öffentlichen Modellen mithilfe seiner festen Evaluierungs-Pipeline, sowohl für die downstream- als auch die Perplexitäts-Evaluierung.
OLMo führt mehrere Evaluierungs-Metriken über die Modellarchitektur, Initialisierung, Optimierer, Lernrate-Schema und Mischungen von Daten während des Trainings des Modells durch. Entwickler nennen es OLMo’s “Online-Evaluierung”, da es eine in-loop-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 gegen andere Modelle 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 Dekontamination für die Perplexitäts-Evaluierung.
OLMo-Training
Es ist wichtig zu beachten, dass die OLMo-Framework-Modelle mit der ZeRO-Optimizer-Strategie trainiert werden, die durch das FSDP-Framework über PyTorch bereitgestellt wird und somit 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 Trainings-Framework für die OLMo-1B- und -7B-Modelle verwendet eine global konstante Batch-Größe von etwa 4M Token (2048 Instanzen mit einer Sequenzlänge von 2048 Token). Für das Modell OLMo-65B (derzeit in Entwicklung) verwenden die Entwickler eine Batch-Größe, 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 FSDP’s integrierte Einstellungen 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 Optimierer-Zustand, der lokal auf jeder GPU gespeichert ist, in voller Präzision gehalten. Die Gewichte innerhalb jedes Transformer-Blocks werden nur im bfloat16-Format materialisiert, wenn die vollständigen Parameter auf jeder GPU während der Vorwärts- und Rückwärts-Pässe erstellt werden. Gradienten werden in voller Präzision über GPUs reduziert.
Optimizer
Das OLMo-Framework verwendet den AdamW-Optimizer mit den folgenden Hyperparametern.

Für alle Modellgrößen wird die Lernrate linear über die ersten 5000 Schritte (∼21B Token) aufgewärmt und dann linear mit dem inversen Quadratwurzel des Schrittnummers auf den angegebenen Mindestlernwert abgeklippt. Nach der Aufwärmmphase werden die Gradienten so abgeklippt, dass die Gesamtl-Norm der Parameter-Gradienten 1,0 nicht überschreitet. Die folgende Tabelle gibt einen Vergleich unserer Optimierer-Einstellungen bei der 7-Milliarden-Skala mit denen anderer aktueller 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 die Gruppierung von aufeinanderfolgenden Blöcken von 2048 Token, um Trainingsinstanzen zu bilden. Trainingsinstanzen werden in der gleichen Weise für jeden Trainingslauf gemischt. Die Reihenfolge und die genaue Zusammensetzung jeder Trainingsbatch können aus den von uns veröffentlichten Artefakten rekonstruiert werden. Alle veröffentlichten OLMo-Modelle wurden mindestens 2T Token (eine einzelne Epoch über ihre Trainingsdaten) trainiert, und einige wurden darüber hinaus trainiert, indem sie eine zweite Epoch über die Daten mit einer anderen Mischungsreihenfolge starteten. Angesichts der geringen Menge an Daten, die diese Wiederholung aufweist, sollte dies einen vernachlässigbaren Effekt haben.
Ergebnisse
Der Checkpoint, der für die Evaluierung von OLMo-7B verwendet wird, ist bis zu 2,46T Token auf dem Dolma-Datensatz mit dem linearen Lernrate-Abfall-Schema trainiert. Eine weitere Anpassung dieses Checkpoints auf dem Dolma-Datensatz für 1000 Schritte mit linear abfallender Lernrate auf 0 erhöht die Modellleistung auf Perplexität und End-Aufgaben-Evaluierungssuiten. 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 wird 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 die Rangklassifizierungs-Approach bewerten und die Vorhersagegenauigkeit melden.
Während Catwalk mehrere typische Wahrscheinlichkeitsnormalisierungsmethoden verwendet, wie z. B. Token-Normalisierung und Charakter-Normalisierung, werden die Normalisierungsstrategien für jeden Datensatz separat 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 hellaswag-, piqa- und winogrande-Aufgaben und keine Normalisierung für boolq-, copa- und sciq-Aufgaben (d. h. Aufgaben in einem Format, das einer einzelnen Token-Vorhersage-Aufgabe ähnelt).

Die folgende Abbildung zeigt den Fortschritt der Genauigkeitsscore für die neun Kern-End-Aufgaben. Es kann abgeleitet werden, dass es eine allgemein ansteigende Tendenz in der Genauigkeitszahl für alle Aufgaben gibt, außer für OBQA, wenn OLMo-7B weiter auf mehr Token trainiert wird. Ein scharfer Aufwärtstrend in der Genauigkeit vieler Aufgaben zwischen dem letzten und dem zweiten letzten Schritt zeigt uns den Vorteil der linearen Reduzierung der Lernrate auf 0 über die letzten 1000 Trainings-Schritte. Beispielsweise zeigt Paloma durch eine Reihe von Analysen, von der Inspektion der Leistung in jedem Bereich separat bis hin zu mehr zusammengefassten Ergebnissen über Kombinationen von Bereichen, dass es einen Vorteil gibt. 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.

Abschließende Gedanken
In diesem Artikel haben wir über OLMo gesprochen, ein State-of-the-Art- und wirklich offenes Sprachmodell, das Entwicklern ein Framework bietet, um Sprachmodelle zu erstellen, zu untersuchen und zu verbessern, sowie Forschern Zugang zu Trainings- und Evaluierungscode, Trainingsmethoden, Trainingsdaten, Trainingsprotokollen 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 Evaluierungs-Tools veröffentlicht hat, und somit die Leistungsunterschiede im Vergleich zu State-of-the-Art-Modellen wie dem LLaMA2-Modell verringert.












