AI-modeller och plattformar

OLMo: Förbättring av språkmodellens vetenskap

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Utvecklingen och framstegen inom språkmodeller under de senaste åren har gjort dem närvarande nästan överallt, inte bara inom NLP-forskning utan också inom kommersiella erbjudanden och verkliga tillämpningar. Men den ökade kommersiella efterfrågan på språkmodeller har, i viss mån, hämmat tillväxten av samhället. Detta beror på att de flesta av de bästa och mest kapabla modellerna är stängda bakom proprietära gränssnitt, vilket gör det omöjligt för utvecklingsgemenskapen att få tillgång till viktiga detaljer om deras träningsarkitektur, data och utvecklingsprocesser. Det är nu odiskutabelt att dessa tränings- och strukturdetaljer är avgörande för forskningsstudier, inklusive tillgång till deras potentiella risker och fördomar, vilket skapar ett krav för forskargemenskapen att ha tillgång till en riktigt öppen och kraftfull språkmodell.

För att tillgodose detta krav har utvecklare skapat OLMo, en toppmodell för öppen språkmodellram. Denna ram tillåter forskare att använda OLMo för att bygga och studera språkmodeller. Till skillnad från de flesta toppmodellerna för språkmodeller, som endast har släppt gränssnittskod och modellvikter, är OLMo-ramen riktigt öppen källkod, med offentligt tillgänglig utvärderingskod, träningsmetoder och träningsdata. OLMos primära mål är att stärka och främja den öppna forskargemenskapen och den kontinuerliga utvecklingen av språkmodeller.

I den här artikeln kommer vi att diskutera OLMo-ramen i detalj, undersöka dess arkitektur, metodik och prestanda i jämförelse med nuvarande toppmodellramar. Så, låt oss börja.

OLMo: Förbättring av språkmodellens vetenskap

Språkmodellen har utan tvekan varit den hetaste trenden under de senaste åren, inte bara inom AI- och ML-gemenskapen utan också inom hela teknikindustrin, på grund av dess anmärkningsvärda förmåga att utföra verkliga uppgifter med mänsklig prestanda. ChatGPT är ett exempel på den potential som språkmodeller besitter, med stora spelare inom teknikindustrin som undersöker språkmodellintegration med sina produkter.

NLP, eller Natural Language Processing, är en av de industrier som har använt språkmodeller under de senaste åren. Men sedan industrin började använda mänsklig annotering för justering och storstskalig förträning, har språkmodellerna upplevt en snabb förbättring av sin kommersiella livskraft, vilket har resulterat i att de flesta toppmodellerna för språk och NLP har begränsade proprietära gränssnitt, med utvecklargemenskapen som inte har tillgång till viktiga detaljer.

För att säkerställa framstegen för språkmodeller erbjuder OLMo, en toppmodell för öppen språkmodell, utvecklare en ram för att bygga, studera och förbättra utvecklingen av språkmodeller. Den ger också forskare tillgång till dess tränings- och utvärderingskod, träningsmetodik, träningsdata, träningsloggar och mellanliggande modellkontrollpunkter. Existerande toppmodeller har varierande grad av öppenhet, medan OLMo-modellen har släppt hela ramen, från träningsdata till utvärderingsverktyg, vilket minskar prestandagapet när det jämförs med toppmodeller som LLaMA2-modellen.

För modellering och träningsändamål innehåller OLMo-ramen träningskod, fullständiga modellvikter, avvikelser, träningsloggar och träningsmått i form av gränssnittskod, samt Weights & Biases-loggar. För analys och datamängdsbyggnad innehåller OLMo-ramen den fullständiga träningsdatamängden som används för AI2:s Dolma- och WIMBD-modeller, tillsammans med koden som genererar träningsdatamängden. För utvärderingsändamål innehåller OLMo-ramen AI2:s Catwalk-modell för nedströmsutvärdering och Paloma-modellen för förvirringsbaserad utvärdering.

OLMo : Modell och arkitektur

OLMo-modellen antar en decoder-only transformerarkitektur baserad på Neural Information Processing Systems, och levererar två modeller med 1 miljard och 7 miljarder parametrar, med en 65 miljarders parametermodell som för närvarande är under utveckling.

Arkitekturen för OLMo-ramen levererar flera förbättringar jämfört med ramarna som innehåller den vanliga transformerkomponenten i sin arkitektur, inklusive nyligen toppmodeller som stora språkmodeller som OpenLM, Falcon, LLaMA och PaLM. Följande figur jämför OLMo-modellen med 7 miljarder parametrar mot nyligen stora språkmodeller som körs på nästan lika många parametrar.

OLMo-ramen väljer hyperparametrarna genom att optimera modellen för träningsgenomströmning på hårdvaran samtidigt som den minskar risken för långsam divergens och förlustspikar. Med det sagt är de primära ändringarna som implementerats av OLMo-ramen som skiljer sig från den vanliga transformerarkitekturen följande:

Inga fördomar

Till skillnad från Falcon, PaLM, LLaMA och andra språkmodeller innehåller OLMo-ramen inga fördomar i sin arkitektur för att förbättra träningsstabiliteten.

Icke-parametrisk lagernorm

OLMo-ramen implementerar den icke-parametriska formuleringen av lagernormen i sin arkitektur. Den icke-parametriska lagernormen erbjuder ingen affin transformation inom normen, d.v.s. den erbjuder ingen adaptiv vinst eller fördom. Den icke-parametriska lagernormen erbjuder inte bara mer säkerhet än parametriska lagernormer, utan de är också snabbare.

SwiGLU-aktiveringsfunktion

Liksom de flesta språkmodeller som PaLM och LLaMA innehåller OLMo-ramen SwiGLU-aktiveringsfunktionen i sin arkitektur istället för ReLU-aktiveringsfunktionen och ökar den dolda aktiveringsstorleken till närmaste multipel av 128 för att förbättra genomströmningen.

RoPE eller roterande positionella inbäddningar

OLMo-modellerna följer LLaMA- och PaLM-modellerna och byter ut de absoluta positionella inbäddningarna mot RoPE eller roterande positionella inbäddningar.

Förträning med Dolma

Även om utvecklargemenskapen nu har förbättrad tillgång till modellparametrar, förblir dörrarna till förträningsdatamängder fortfarande stängda, eftersom förträningsdatamängden inte släpps tillsammans med de stängda modellerna eller tillsammans med de öppna modellerna. Dessutom saknar tekniska dokumentationer som täcker sådana datamängder ofta viktiga detaljer som krävs för att fullständigt förstå och replikera modellen. Vägen blockerar det och gör det svårt att fortsätta forskningen i vissa trådar av språkmodellforskning, inklusive förståelsen av hur träningsdatamängden påverkar modellens förmågor och begränsningar. OLMo-ramen byggde och släppte sin förträningsdatamängd, Dolma, för att underlätta öppen forskning om språkmodellförträning. Dolma-datamängden är en multisource- och diversifierad samling av över 3 biljoner token över 5 miljarder dokument som samlats in från 7 olika källor som vanligtvis används av kraftfulla storskaliga språkmodeller för förträning och som är tillgängliga för allmänheten. Sammansättningen av Dolma-datamängden sammanfattas i följande tabell.

Dolma-datamängden byggdes med hjälp av en pipeline med 5 komponenter: språkfiltrering, kvalitetsfiltrering, innehållsfiltrering, multisourceblandning, dublettavlägsnande och tokenisering. OLMo har också släppt Dolma-rapporten som ger mer insikt i designprinciperna och konstruktionsdetaljerna, tillsammans med en mer detaljerad innehållssammanfattning. Modellen öppnar också källkoden för sina högpresterande datakureringverktyg för att möjliggöra enkel och snabb kurering av förträningsdatamängder. Utvärderingen av modellen följer en tvåstegsstrategi, som börjar med onlineutvärdering för beslutsfattning under modellträning och en slutlig offlineutvärdering för en sammanslagen utvärdering från modellkontrollpunkter. För offlineutvärdering använder OLMo Catwalk-ramen, vårt offentligt tillgängliga utvärderingsverktyg som har tillgång till en bred diversifiering av datamängder och uppgiftsformat. Ramen använder Catwalk för nedströmsutvärdering, samt inbyggd språkmodellutvärdering på vår nya förvirringsbenchmark, Paloma. OLMo jämför sedan med flera offentliga modeller med hjälp av sin fasta utvärderingspipeline, för både nedströms- och förvirringsutvärdering.

OLMo kör flera utvärderingsmått om modellarkitekturen, initialiseringen, optimerarna, lärandeschemat och blandningar av data under modellträningen. Utvecklare kallar det OLMos “onlineutvärdering”, eftersom det är en in-loop-iteration var 1000:e träningssteg (eller ∼4B tränings-token) för att ge en tidig och kontinuerlig signal om modellens kvalitet. Inställningarna för dessa utvärderingar beror på de flesta kärnuppgifter och experimentinställningar som används för vår offlineutvärdering. OLMo syftar inte bara till att jämföra OLMo-7B med andra modeller för bästa prestanda, utan också till att visa hur det möjliggör en fullständigare och mer kontrollerad vetenskaplig utvärdering. OLMo-7B är den största språkmodellen med explicit dekontaminering för förvirringsutvärdering.

OLMo-träning

Det är viktigt att notera att OLMo-rammodellerna tränas med hjälp av ZeRO-optimeringsstrategin, som tillhandahålls av FSDP-ramen via PyTorch, och som på så sätt avsevärt minskar GPU-minneskonsumtionen genom att dela modellvikter över GPU:er. Med detta kan träningsprocessen för OLMo-1B- och -7B-modellerna utföras med en mikrobatchstorlek på 4096 token per GPU på vår hårdvara. Träningsramen för OLMo-1B- och -7B-modellerna använder en globalt konstant batchstorlek på cirka 4M token (2048 instanser, var och en med en sekvenslängd på 2048 token). För modellen OLMo-65B (som för närvarande är under träningsprocess) använder utvecklare en batchstorlek som börjar på cirka 2M token (1024 instanser) och fördubblas var 100B token tills cirka 16M token (8192 instanser).

För att förbättra genomströmningen använder vi blandad precisionsutbildning (Micikevicius et al., 2017) via FSDP:s inbyggda inställningar och PyTorch:s amp-modul. Den senare säkerställer att vissa operationer som softmax alltid körs i full precision för att förbättra stabiliteten, medan alla andra operationer körs i halv precision med bfloat16-formatet. Under våra specifika inställningar hålls de delade modellvikterna och optimerarstaten lokalt på varje GPU i full precision. Vikterna inom varje transformerblock castas till bfloat16-format när de fullständiga parametrarna materialiseras på varje GPU under framåt- och bakåtpass. Gradients reduceras över GPU:er i full precision.

Optimerare

OLMo-ramen använder AdamW-optimeraren med följande hyperparametrar.

För alla modellstorlekar värms lärandehastigheten upp linjärt under de första 5000 stegen (∼21B token) till ett maximalt värde, och sedan minskar den linjärt med den inversa kvadratrotten av stegnumret till det angivna minimilärandehastighetsvärdet. Efter uppvärmningsperioden klipper modellen gradienter så att den totala l-normen av parametergradienterna inte överstiger 1,0. Följande tabell ger en jämförelse av våra optimeringsinställningar på 7B-skalan med de som används av andra nyligen publicerade språkmodeller som också använde AdamW.

Träningsdata

Träning innebär tokenisering av träningsinstanser med ord och BPE-tokenizer för meningsdelsmodellen efter att ha lagt till en special EOS-token i slutet av varje dokument, och sedan grupperar vi på varandra följande chunkar om 2048 token för att bilda träningsinstanser. Träningsinstanserna blandas på samma sätt för varje träningskörning. Dataordningen och den exakta sammansättningen av varje träningsbatch kan rekonstrueras från de artefakter som vi släpper. Alla släppta OLMo-modeller har tränats till minst 2T token (en enda epoch över dess träningsdata), och vissa har tränats längre genom att starta en andra epoch över data med en annan blandningsordning. Med tanke på den lilla mängden data som detta upprepar bör det ha en försumbar effekt.

Resultat

Kontrollpunkten som används för utvärdering av OLMo-7B är tränad upp till 2,46T token på Dolma-datamängden med den linjära lärandehastighetsnedgången som nämns tidigare. Ytterligare finjustering av denna kontrollpunkt på Dolma-datamängden under 1000 steg med linjärt minskad lärandehastighet till 0 ökar ytterligare modellens prestanda på förvirring och slutuppgiftsutvärderingssviter som beskrivs tidigare. För den slutliga utvärderingen jämförde utvecklare OLMo med andra offentligt tillgängliga modeller – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B och RPJ-INCITE-7B.

Nedströmsutvärdering

Den centrala nedströmsutvärderingssviten sammanfattas i följande tabell.

Vi genomför nollskottsutvärdering med hjälp av rangklassificeringsmetoden i alla fall. I denna metod rangordnas kandidat textkompletioner (t.ex. olika flervalsalternativ) efter sannolikhet (vanligtvis normaliserad med någon normaliseringsfaktor), och förutsägelseexaktheten rapporteras.

Medan Catwalk använder flera typiska sannolikhetsnormaliseringsmetoder, såsom tokenper normalisering och teckenper normalisering, väljs normaliseringsstrategierna separat för varje datamängd och inkluderar det obetingade svarsannolikheten. Mer specifikt innebär detta att det inte finns någon normalisering för arc- och openbookqa-uppgifterna, tokenper normalisering för hellaswag-, piqa- och winogrande-uppgifterna, och ingen normalisering för boolq-, copa- och sciq-uppgifterna (d.v.s. uppgifter i en formulering nära en enda tokenprediktionsuppgift).

Följande figur visar förbättringen av exakthetsscore för de nio centrala slutuppgifterna. Det kan konstateras att det finns en allmänt ökande trend i exakthetsantalet för alla uppgifter, förutom för OBQA, när OLMo-7B tränas på fler token. En skarp uppgång i exakthet för många uppgifter mellan den sista och näst sista steget visar oss fördelen med att linjärt minska LR till 0 under de sista 1000 träningsstegen. För exempel på inbyggd utvärdering argumenterar Paloma genom en serie analyser, från inspektion av prestanda i varje domän separat till mer sammanfattade resultat över kombinationer av domäner. Vi rapporterar resultat på två nivåer av granularitet: den sammanslagna prestandan över 11 av de 18 källorna i Paloma, samt mer detaljerade resultat över var och en av dessa källor separat.

Slutliga tankar

I den här artikeln har vi talat om OLMo, en toppmodell för öppen språkmodell som erbjuder utvecklare en ram för att bygga, studera och förbättra utvecklingen av språkmodeller, samt ger forskare tillgång till dess tränings- och utvärderingskod, träningsmetodik, träningsdata, träningsloggar och mellanliggande modellkontrollpunkter. Existerande toppmodeller har varierande grad av öppenhet, medan OLMo-modellen har släppt hela ramen från träningsdata till utvärderingsverktyg, vilket minskar prestandagapet när det jämförs med toppmodeller som LLaMA2-modellen.

En ingenjör till yrket, en författare av hjärtat. Kunal är en teknisk skribent med ett djupt kärlek och förståelse för AI och ML, dedikerad till att förenkla komplexa begrepp inom dessa områden genom sin engagerande och informativa dokumentation.