AI-modellen en platforms

OLMo: De wetenschap van taalmodellen verbeteren

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

De ontwikkeling en vooruitgang van taalmodellen in de afgelopen jaren hebben hun aanwezigheid gemarkeerd bijna overal, niet alleen in NLP-onderzoek, maar ook in commerciële aanbiedingen en echte toepassingen. Echter, de toename in commerciële vraag naar taalmodellen heeft, in zekere zin, de groei van de gemeenschap belemmerd. Dit komt doordat de meeste state-of-the-art- en capabele modellen achter propriëtaire interfaces zijn gemarkeerd, waardoor het voor de ontwikkelingsgemeenschap onmogelijk is om toegang te krijgen tot vitale details van hun trainingsarchitectuur, gegevens en ontwikkelingsprocessen. Het is nu onmiskenbaar dat deze trainings- en structuurgegevens cruciaal zijn voor onderzoeksstudies, waaronder toegang tot hun potentiële risico’s en vooroordelen, waardoor een vereiste ontstaat voor de onderzoeksgemeenschap om toegang te hebben tot een echt open en krachtig taalmodel.

Om aan deze vereiste te voldoen, hebben ontwikkelaars OLMo gemaakt, een state-of-the-art, echt open taalmodelkader. Dit kader stelt onderzoekers in staat om OLMo te gebruiken om taalmodellen te bouwen en te bestuderen. In tegenstelling tot de meeste state-of-the-art-taalmodellen, die alleen interfacecode en modelgewichten hebben vrijgegeven, is het OLMo-kader echt open source, met openbaar toegankelijke evaluatiecode, trainingsmethoden en trainingsgegevens. De primaire doelstelling van OLMo is om de open onderzoeksgemeenschap te empoweren en de continue ontwikkeling van taalmodellen te stimuleren.

In dit artikel zullen we het OLMo-kader in detail bespreken, waarbij we zijn architectuur, methodologie en prestaties zullen onderzoeken in vergelijking met huidige state-of-the-art-kaders. Laten we dus beginnen.

OLMo: De wetenschap van taalmodellen verbeteren

Het taalmodel is de afgelopen jaren ongetwijfeld de heetste trend geweest, niet alleen binnen de AI- en ML-gemeenschap, maar ook in de hele technologie-industrie, vanwege zijn opmerkelijke capaciteiten om echte taken uit te voeren met mensachtige prestaties. ChatGPT is een voorbeeld van het potentieel van taalmodellen, met grote spelers in de technologie-industrie die taalmodelintegratie met hun producten onderzoeken.

NLP, of Natural Language Processing, is een van de industrieën die de afgelopen jaren uitgebreid taalmodellen heeft gebruikt. Echter, sinds de industrie begon met het gebruik van menselijke annotatie voor alignering en grote-schaalpre-training, hebben taalmodellen een snelle verbetering van hun commerciële levensvatbaarheid gezien, waardoor de meeste state-of-the-art-taal- en NLP-kaders beperkte propriëtaire interfaces hebben, met de ontwikkelingsgemeenschap die geen toegang heeft tot vitale details.

Om de vooruitgang van taalmodellen te garanderen, biedt OLMo, een state-of-the-art, echt open taalmodel, ontwikkelaars een kader om taalmodellen te bouwen, te bestuderen en te verbeteren. Het biedt onderzoekers ook toegang tot zijn trainings- en evaluatiecode, trainingsmethodologie, trainingsgegevens, trainingslogboeken en tussenliggende modelcontrolepunten. Bestaande state-of-the-art-modellen hebben verschillende graden van openheid, terwijl het OLMo-model het hele kader heeft vrijgegeven, van training tot gegevens tot evaluatiehulpmiddelen, waardoor de prestatieverschillen met state-of-the-art-modellen zoals het LLaMA2-model worden verkleind.

Voor modellering en training omvat het OLMo-kader de trainingscode, volledige modelgewichten, ablaties, trainingslogboeken en trainingsmetrieken in de vorm van interfacecode, evenals Weights & Biases-logboeken. Voor analyse en datasetopbouw omvat het OLMo-kader de volledige trainingsgegevens die worden gebruikt voor AI2’s Dolma- en WIMBD-modellen, samen met de code die de trainingsgegevens produceert. Voor evaluatiedoeleinden omvat het OLMo-kader AI2’s Catwalk-model voor downstream-evaluatie en het Paloma-model voor perplexiteitgebaseerde evaluatie.

OLMo : Model en architectuur

Het OLMo-model gebruikt een decoder-only-transformatiearchitectuur op basis van het Neural Information Processing Systems, en levert twee modellen met 1 miljard en 7 miljard parameters, met een 65 miljard parametermodel dat momenteel in ontwikkeling is.

De architectuur van het OLMo-kader levert verschillende verbeteringen ten opzichte van kaders, waaronder de vanilla-transformatiecomponent in hun architectuur, waaronder recente state-of-the-art-grote taalmodellen zoals OpenLM, Falcon, LLaMA en PaLM. De volgende figuur vergelijkt het OLMo-model met 7 miljard parameters met recente LLM’s die opereren met bijna gelijke aantallen parameters.

Het OLMo-kader selecteert de hyperparameters door het model te optimaliseren voor trainingsdoorvoer op de hardware, terwijl tegelijkertijd het risico van langzame divergentie en verliespieken wordt geminimaliseerd. Met dat gezegd hebbende, zijn de primaire veranderingen die door het OLMo-kader zijn geïmplementeerd en die het onderscheiden van de vanilla-transformatiearchitectuur, de volgende:

Geen vooroordelen

In tegenstelling tot Falcon, PaLM, LLaMA en andere taalmodellen, bevat het OLMo-kader geen vooroordelen in zijn architectuur om de trainingsstabiliteit te verbeteren.

Niet-parametrische laag-norm

Het OLMo-kader implementeert de niet-parametrische formulering van de laag-norm in zijn architectuur. De niet-parametrische laag-norm biedt geen affiene transformatie binnen de norm, d.w.z. het biedt geen adaptieve versterking of vooroordeel. Niet-parametrische laag-normen bieden niet alleen meer veiligheid dan parametrische laag-normen, maar zijn ook sneller.

SwiGLU-activeringsfunctie

Net als de meeste taalmodellen, zoals PaLM en LLaMA, bevat het OLMo-kader de SwiGLU-activeringsfunctie in zijn architectuur in plaats van de ReLU-activeringsfunctie, en verhoogt de verborgen activeringsgrootte tot het dichtstbijzijnde veelvoud van 128 om de doorvoer te verbeteren.

RoPE of Rotary Positional Embeddings

De OLMo-modellen volgen de LLaMA- en PaLM-modellen en wisselen de absolute positionele embeddings voor RoPE of Rotary Positional Embeddings.

Pre-training met Dolma

Hoewel de ontwikkelingsgemeenschap nu verbeterde toegang heeft tot modelparameters, blijven de deuren naar toegang tot pre-trainingsgegevens nog steeds gesloten, aangezien de pre-trainingsgegevens niet worden vrijgegeven samen met de gesloten modellen, noch samen met de open modellen. Bovendien ontbreken in technische documenten over dergelijke gegevens vaak vitale details die nodig zijn om het model volledig te begrijpen en te repliceren. De blokkade maakt het moeilijk om onderzoek in bepaalde draden van taalmodelonderzoek voort te zetten, waaronder het begrijpen van hoe de trainingsgegevens de capaciteiten en beperkingen van het model beïnvloeden. Het OLMo-kader heeft zijn pre-trainingsdataset, Dolma, gebouwd en vrijgegeven om open onderzoek naar taalmodelpre-training te faciliteren. De Dolma-dataset is een multi-bron en diverse verzameling van meer dan 3 biljoen tokens over 5 miljard documenten verzameld uit 7 verschillende bronnen die algemeen worden gebruikt door krachtige grote-schaal-LLM’s voor pre-training en die toegankelijk zijn voor het algemene publiek. De samenstelling van de Dolma-dataset wordt samengevat in de volgende tabel.

De Dolma-dataset is gebouwd met behulp van een pijplijn van 5 componenten: taalfiltering, kwaliteitsfiltering, inhoudsfiltering, multi-bron-menging, deduplicatie en tokenisatie. OLMo heeft ook het Dolma-rapport vrijgegeven, dat meer inzicht biedt in de ontwerpprincipes en constructiedetails, evenals een meer gedetailleerde inhoudssamenvatting. Het model heeft ook zijn hoge-prestatiegegevenscuratietools openbaar gemaakt om gemakkelijke en snelle curatie van pre-trainingsgegevenscorpora mogelijk te maken. De evaluatie van het model volgt een tweestapsstrategie, beginnend met online-evaluatie voor besluitvorming tijdens modeltraining en een definitieve offline-evaluatie voor een geaggregeerde evaluatie van modelcontrolepunten. Voor offline-evaluatie gebruikt OLMo het Catwalk-kader, ons openbaar beschikbare evaluatiehulpmiddel dat toegang heeft tot een brede diversiteit aan datasets en taakformaten. Het kader gebruikt Catwalk voor downstream-evaluatie, evenals intrinsieke taalmodel-evaluatie op onze nieuwe perplexiteitbenchmark, Paloma. OLMo vergelijkt het vervolgens met verschillende openbare modellen met behulp van zijn vaste evaluatiepijplijn, zowel voor downstream- als perplexiteitsevaluatie.

OLMo voert verschillende evaluatiemetrics uit over de modelarchitectuur, initialisatie, optimizers, leercurve en mengsels van gegevens tijdens de training van het model. Ontwikkelaars noemen dit de “online-evaluatie” van OLMo, omdat het een in-lus-iteratie is bij elke 1000 trainingsstappen (∼4B trainings tokens) om een vroege en continue signaal te geven over de kwaliteit van het getrainde model. De instelling van deze evaluaties is afhankelijk van de meeste core-taken en experimentinstellingen die worden gebruikt voor onze offline-evaluatie. OLMo streeft ernaar om niet alleen vergelijkingen van OLMo-7B met andere modellen voor de beste prestaties te maken, maar ook om te laten zien hoe het een vollere en meer gecontroleerde wetenschappelijke evaluatie mogelijk maakt. OLMo-7B is het grootste taalmodel met expliciete decontaminatie voor perplexiteitsevaluatie.

OLMo-training

Het is belangrijk om op te merken dat de OLMo-kadermodellen worden getraind met behulp van de ZeRO-optimizerstrategie, die wordt geboden door het FSDP-kader via PyTorch en op deze manier het GPU-geheugengebruik aanzienlijk vermindert door modelgewichten over GPU’s te sharden. Met dit, kan de training op een schaal van 7B worden uitgevoerd met een micro-batchgrootte van 4096 tokens per GPU op onze hardware. Het trainingskader voor OLMo-1B- en -7B-modellen gebruikt een wereldwijd constante batchgrootte van ongeveer 4M tokens (2048 instanties, elk met een sequentielengte van 2048 tokens). Voor het model OLMo-65B (momenteel in training) gebruiken ontwikkelaars een batchgrootte-warmup die begint bij ongeveer 2M tokens (1024 instanties), verdubbelt elke 100B tokens tot ongeveer 16M tokens (8192 instanties).

Om de doorvoer te verbeteren, gebruiken we gemengde precisietraining (Micikevicius et al., 2017) via FSDP’s ingebouwde instellingen en PyTorch’s amp-module. De laatste zorgt ervoor dat bepaalde bewerkingen, zoals de softmax, altijd in volle precisie worden uitgevoerd om de stabiliteit te verbeteren, terwijl alle andere bewerkingen in halfprecisie worden uitgevoerd met het bfloat16-formaat. Onder onze specifieke instellingen worden de gesharde modelgewichten en optimizerstatus lokaal op elke GPU in volle precisie bewaard. De gewichten binnen elke transformatieblok worden alleen omgezet in bfloat16-formaat wanneer de volledige parameters op elke GPU tijdens de voorwaartse en achterwaartse passes worden gematerialiseerd. Gradients worden over GPU’s in volle precisie gereduceerd.

Optimizer

Het OLMo-kader maakt gebruik van de AdamW-optimizer met de volgende hyperparameters.

Voor alle modelgroottes warmt de leercurve lineair op over de eerste 5000 stappen (∼21B tokens) tot een maximumwaarde en daalt vervolgens lineair met de inverse vierkantswortel van de stapsnelheid tot de gespecificeerde minimumleercurve. Na de warm-upperiode klapt het model gradients zodanig dat de totale l-norm van de parametergradients niet meer dan 1,0 bedraagt. De volgende tabel geeft een vergelijking van onze optimizerinstellingen op schaal 7B met die van andere recente LLM’s die ook AdamW gebruikten.

Trainingsgegevens

De training omvat het tokeniseren van trainingsinstanties per woord en BPE-tokenizer voor het zinsdeelmodel na toevoeging van een speciaal EOS-token aan het einde van elk document, en vervolgens groepeert het opeenvolgende stukken van 2048 tokens om trainingsinstanties te vormen. Trainingsinstanties worden op exact dezelfde manier geschud voor elke trainingsrun. De gegevensvolgorde en exacte samenstelling van elke trainingsbatch kunnen worden gereconstrueerd uit de artefacten die we vrijgeven. Alle vrijgegeven OLMo-modellen zijn getraind tot ten minste 2T tokens (één epoch over hun trainingsgegevens) en sommige werden getraind tot verder dan dat door een tweede epoch over de gegevens te starten met een andere schuddende volgorde. Gezien de kleine hoeveelheid gegevens die dit herhaalt, zou dit een verwaarloosbaar effect moeten hebben.

Resultaten

Het controlepunt dat wordt gebruikt voor de evaluatie van OLMo-7B is getraind tot 2,46T tokens op de Dolma-dataset met de lineaire leercurvedaling die eerder is vermeld. Verdere afstemming van dit controlepunt op de Dolma-dataset gedurende 1000 stappen met lineair aflopende leercurve tot 0 verhoogt de modelprestaties op perplexiteit en eindtaakevaluatiesuites die eerder zijn beschreven. Voor de definitieve evaluatie hebben ontwikkelaars OLMo vergeleken met andere openbaar beschikbare modellen – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B en RPJ-INCITE-7B.

Downstream-evaluatie

De core-downstream-evaluatiesuite wordt samengevat in de volgende tabel.

We voeren zero-shot-evaluatie uit met behulp van de rangclassificatiebenadering in alle gevallen. In deze benadering worden de kandidaat-tekstvoltooiingen (bijv. verschillende multiple-choice-opties) gerangschikt op basis van waarschijnlijkheid (meestal genormaliseerd door een normalisatiefactor) en wordt de voorspellingsnauwkeurigheid gerapporteerd.

Terwijl Catwalk verschillende typische waarschijnlijkheidsnormalisatiemethoden gebruikt, zoals per token-normalisatie en per-karakter-normalisatie, worden de normalisatiestrategieën die worden toegepast afzonderlijk voor elke dataset gekozen en omvatten de onvoorwaardelijke waarschijnlijkheid van het antwoord. Meer concreet hield dit in dat er geen normalisatie werd toegepast voor de arc- en openbookqa-taken, per-token-normalisatie voor hellaswag-, piqa- en winogrande-taken en geen normalisatie voor boolq-, copa- en sciq-taken (d.w.z. taken in een formulering die dicht bij een enkele tokenvoorspellingstaak ligt).

De volgende figuur toont de voortgang van de nauwkeurigheidsscore voor de negen core-eindtaken. Het kan worden afgeleid dat er een algemene stijging is in de nauwkeurigheid voor alle taken, behalve voor OBQA, naarmate OLMo-7B verder wordt getraind op meer tokens. Een scherpe stijging in nauwkeurigheid van veel taken tussen de laatste en de voorlaatste stap toont het voordeel van lineair verlagen van de LR tot 0 over de laatste 1000 trainingsstappen. Voor intrinsieke evaluaties betoogt Paloma via een reeks analyses, van het onderzoeken van de prestaties in elke domein afzonderlijk tot meer samengevatte resultaten over combinaties van domeinen. We rapporteren resultaten op twee niveaus van granulariteit: de geaggregeerde prestatie over 11 van de 18 bronnen in Paloma, evenals meer fijngemende resultaten over elke van deze bronnen afzonderlijk.

Slotgedachten

In dit artikel hebben we het over OLMo gehad, een state-of-the-art, echt open taalmodel dat ontwikkelaars een kader biedt om taalmodellen te bouwen, te bestuderen en te verbeteren, evenals onderzoekers toegang tot zijn trainings- en evaluatiecode, trainingsmethodologie, trainingsgegevens, trainingslogboeken en tussenliggende modelcontrolepunten. Bestaande state-of-the-art-modellen hebben verschillende graden van openheid, terwijl het OLMo-model het hele kader heeft vrijgegeven, van training tot gegevens tot evaluatiehulpmiddelen, waardoor de prestatieverschillen met state-of-the-art-modellen zoals het LLaMA2-model worden verkleind.

Een ingenieur van beroep, een schrijver van hart. Kunal is een technisch schrijver met een diepe liefde en begrip voor AI en ML, toegewijd aan het vereenvoudigen van complexe concepten in deze gebieden door middel van zijn boeiende en informatieve documentatie.