Connect with us

Umělá inteligence

OLMo: Rozšiřování vědy o jazycích modelů

mm

Vývoj a pokrok jazykových modelů v posledních letech zaznamenal jejich přítomnost téměř všude, nejen ve výzkumu NLP, ale také v komerčních nabídkách a aplikacích v reálném světě. Nicméně, růst komerční poptávky po jazycích modelů zpomalil růst komunity do jisté míry. To je způsobeno tím, že většina špičkových a schopných modelů je uzamčena za proprietárními rozhraními, což znemožňuje vývojářské komunitě přístup k vitalním detailům jejich tréninkové architektury, dat a vývojových procesů. Nyní je nepochybné, že tyto tréninkové a strukturální detaily jsou nezbytné pro výzkumné studie, včetně přístupu k jejich potenciálním rizikům a biasům, a tím vytváří požadavky pro výzkumnou komunitu mít přístup k skutečně otevřenému a silnému jazykovému modelu.

Aby se splnil tento požadavek, vývojáři vytvořili OLMo, špičkový, skutečně otevřený jazykový modelový rámec. Tento rámec umožňuje výzkumníkům používat OLMo k budování a studiu jazykových modelů. Na rozdíl od většiny špičkových jazykových modelů, které mají pouze vydaný interface kód a modelové váhy, je rámec OLMo skutečně otevřený, s veřejně přístupným vyhodnocovacím kódem, tréninkovými metodami a tréninkovými daty. Hlavním cílem OLMo je posílit a podpořit otevřenou výzkumnou komunitu a nepřetržitý vývoj jazykových modelů.

V tomto článku budeme diskutovat o rámci OLMo podrobněji, zkoumáním jeho architektury, metodologie a výkonu ve srovnání se současnými špičkovými rámci. Takže, pojďme začít.

OLMo: Rozšiřování vědy o jazycích modelů

Jazykový model byl bezpochyby nejžhavějším trendem v posledních letech, nejen ve společenství AI a ML, ale také napříč technologickým průmyslem, díky jeho pozoruhodným schopnostem vykonávat úkoly v reálném světě s lidskou podobnou výkonností. ChatGPT je příkladem potenciálu jazykových modelů, s hlavními hráči v technologickém průmyslu, kteří zkoumají integraci jazykových modelů se svými produkty.

NLP, nebo Přirozený jazykový zpracování, je jedním z odvětví, které extenzivně využívalo jazykové modely v posledních letech. Nicméně, od doby, kdy průmysl začal využívat lidské anotace pro zarovnání a velkou předtrénink, jazykové modely prošly rychlým zlepšením jejich komerční viability, což vedlo k většině špičkových jazykových a NLP rámců, které mají omezená proprietární rozhraní, s výzkumnou komunitou, která nemá přístup k vitalním detailům.

Aby se zajistil pokrok jazykových modelů, OLMo, špičkový, skutečně otevřený jazykový model, nabízí vývojářům rámec pro budování, studium a rozvoj jazykových modelů. Poskytuje také výzkumníkům přístup k jeho tréninkovému a vyhodnocovacímu kódu, tréninkové metodě, tréninkovým datům, tréninkovým logům a mezilehlým modelovým kontrolním bodům. Existující špičkové modely mají různé stupně otevřenosti, zatímco model OLMo vydal celý rámec, od tréninku po data až po vyhodnocovací nástroje, čímž se zúžil výkonový rozdíl ve srovnání se špičkovými modely, jako je model LLaMA2.

Pro modelování a trénink, rámec OLMo zahrnuje tréninkový kód, plné modelové váhy, ablace, tréninkové logy a tréninkové metriky ve formě interface kódu, stejně jako Weights & Biases logy. Pro analýzu a budování dat, rámec OLMo zahrnuje plná tréninková data používaná pro AI2’s Dolma a WIMBD modely, spolu s kódem, který produkuje tréninková data. Pro vyhodnocovací účely, rámec OLMo zahrnuje AI2’s Catwalk model pro downstream vyhodnocení a Paloma model pro perplexity-založené vyhodnocení.

OLMo : Model a architektura

Model OLMo采用uje dekodér-only transformátorovou architekturu založenou na Neural Information Processing Systems a dodává dva modely s 1 miliardou a 7 miliardami parametrů, s modelem 65 miliard parametrů目前 ve vývoji.

Architektura rámce OLMo dodává několik vylepšení oproti rámcům, včetně vanilla transformátorového komponentu v jejich architektuře, včetně nedávných špičkových velkých jazykových modelů, jako je OpenLM, Falcon, LLaMA a PaLM. Následující obrázek porovnává model OLMo s 7B miliardami parametrů proti nedávným LLMs, které fungují na téměř stejném počtu parametrů.

Rámec OLMo vybírá hyperparametry optimalizací modelu pro tréninkový průběh na hardwaru, zatímco současně minimalizuje riziko pomalého rozdílu a ztrátových špiček. S tím řečeno, primární změny implementované rámcem OLMo, které jej odlišují od vanilla transformátorové architektury, jsou následující:

Žádné biasy

Na rozdíl od Falcon, PaLM, LLaMA a dalších jazykových modelů, rámec OLMo neobsahuje žádné biasy ve své architektuře, aby se zlepšila tréninková stabilita.

Non-parametrická vrstevná normalizace

Rámec OLMo implementuje non-parametrickou formulaci vrstevné normalizace ve své architektuře. Non-parametrická vrstevná normalizace nenabízí žádné afinitní transformace uvnitř normy, t.j. nenabízí žádné adaptivní zisk nebo bias. Non-parametrická vrstevná normalizace nejen nabízí více bezpečnosti než parametrická vrstevná normalizace, ale je také rychlejší.

SwiGLU aktivační funkce

Stejně jako většina jazykových modelů, jako je PaLM a LLaMA, rámec OLMo zahrnuje SwiGLU aktivační funkci ve své architektuře místo ReLU aktivační funkce a zvyšuje skrytou aktivační velikost na nejbližší násobek 128, aby se zlepšil průběh.

RoPE nebo Rotary Positional Embeddings

Modely OLMo následují modely LLaMA a PaLM a nahrazují absolutní positionální embeddings za RoPE nebo Rotary Positional Embeddings.

Předtrénink s Dolma

Ačkoli vývojářská komunita nyní má lepší přístup k modelovým parametrům, dveře k přístupu k předtréninkovým datům zůstávají uzavřeny, protože předtréninková data nejsou vydána spolu s uzavřeným modelem, ani spolu s otevřeným modelem. Kromě toho, technické dokumentace pokrývající taková data často postrádají vitalní detaily, které jsou nutné pro plné pochopení a replikaci modelu. Tato překážka činí obtížným pokračovat ve výzkumu v určitých vláknech jazykového modelu výzkumu, včetně pochopení, jak tréninková data ovlivňují schopnosti a omezení modelu. Rámec OLMo vytvořil a vydal svůj předtréninkový dataset, Dolma, aby usnadnil otevřený výzkum jazykového modelu předtréninku. Dataset Dolma je multi-zdrojový a rozmanitý sbírka více než 3 bilionů tokenů napříč 5 miliardami dokumentů shromážděných z 7 různých zdrojů, které jsou běžně používány silnými velkými jazykovými modely pro předtrénink a jsou přístupné široké veřejnosti. Složení datasetu Dolma je shrnuto v následující tabulce.

Dataset Dolma je vytvořen pomocí pipeline 5 komponent: jazykové filtrování, kvalitativní filtrování, obsahové filtrování, multi-zdrojového míchání, deduplikace a tokenizace. OLMo také vydal zprávu Dolma, která poskytuje více informací o designových principech a konstrukčních detailech, spolu s podrobnějším obsahovým souhrnem. Model také otevřeně zpřístupňuje svá vysokovýkonnostní data kurátorská nástroje, aby ermögnil snadnou a rychlou kuraci předtréninkových datových sbírek. Vyhodnocení modelu následuje dvoufázovou strategii, začínající online vyhodnocením pro rozhodování během modelového tréninku a konečným offline vyhodnocením pro agregované vyhodnocení z modelových kontrolních bodů. Pro offline vyhodnocení, OLMo používá rámec Catwalk, náš veřejně dostupný vyhodnocovací nástroj, který má přístup k široké diverzitě dat a úkolových formátů. Rámec používá Catwalk pro downstream vyhodnocení, stejně jako intrinsic jazykové modelování vyhodnocení na naší nové perplexity benchmark, Paloma. OLMo pak porovnává jej proti několika veřejným modelům pomocí svého pevného vyhodnocovacího pipeline, pro obě downstream a perplexity vyhodnocení.

OLMo spouští několik vyhodnocovacích metrik o modelové architektuře, inicializaci, optimalizátorech, učebním sazbách a směsích dat během tréninku modelu. Vývojáři jej nazývají OLMo’s “online vyhodnocení” v tom smyslu, že je to smyčka iterace na každém 1000 tréninkovém kroku (∼4B tréninkových tokenů) pro poskytování raného a kontinuálního signálu o kvalitě modelu, který je trénován. Nastavení těchto vyhodnocování závisí na většině core úkolů a experimentálních nastaveních, které se používají pro naše offline vyhodnocení. OLMo cílí nejen na srovnání OLMo-7B proti jiným modelům pro nejlepší výkon, ale také na to, aby ukázal, jak ermögňuje plnější a kontrolovanější vědecké vyhodnocení. OLMo-7B je největší jazykový model s explicitním dekontaminací pro perplexity vyhodnocení.

OLMo Trénink

Je důležité poznamenat, že modely OLMo jsou trénovány pomocí ZeRO optimalizační strategie, která je poskytována rámcem FSDP prostřednictvím PyTorch a tímto způsobem podstatně snižuje spotřebu GPU paměti šarďováním modelových vah přes GPU. S tím, na 7B škále, trénink může být proveden s mikro-batch velikostí 4096 tokenů na GPU na našem hardwaru. Tréninkový rámec pro modely OLMo-1B a -7B používá globálně konstantní batch velikost asi 4M tokenů (2048 instancí), každá s sekvencí délky 2048 tokenů. Pro model OLMo-65B (nyní ve tréninku), vývojáři používají batch velikost warmup, který začíná asi 2M tokeny (1024 instance), zdvojnásobující se každých 100B tokenů, až asi 16M tokenů (8192 instance).

Pro zlepšení průchodu, používáme mixed-precision trénink (Micikevicius et al., 2017) prostřednictvím FSDP’s built-in nastavení a PyTorch’s amp modulu. Posledně zajišťuje, že určité operace, jako je softmax, vždy běží v plné přesnosti, aby se zlepšila stabilita, zatímco všechny ostatní operace běží v poloviční přesnosti s bfloat16 formátem. Pod našimi specifickými nastaveními, šarďované modelové váhy a optimalizační stav lokální na každém GPU jsou uchovávány v plné přesnosti. Váhy uvnitř každého transformátorového bloku jsou pouze castovány na bfloat16 formát, když jsou plné velikosti parametrů materializovány na každém GPU během forward a backward passů. Gradients jsou redukovány přes GPU v plné přesnosti.

Optimalizátor

Rámec OLMo používá AdamW optimalizátor s následujícími hyperparametry.

Pro všechny modelové velikosti, učební sazba se zahřívá lineárně během prvních 5000 kroků (∼21B tokenů) na maximální hodnotu a poté klesá lineárně s inverzním čtvercem krokového čísla na specifikovanou minimální učební sazbu. Po zahřívacím období, model klipuje gradienty tak, aby celková l-norma parametrů gradientů nepřesáhla 1,0. Následující tabulka poskytuje srovnání našich optimalizačních nastavení na 7B škále s těmi z ostatních nedávných LMs, které také použily AdamW.

Tréninková data

Trénink zahrnuje tokenizaci tréninkových instancí slovem a BPE tokenizérem pro sentence piece model po přidání speciálního EOS tokenu na konec každého dokumentu a poté skupinujeme po sobě jdoucí části 2048 tokenů, aby se vytvořily tréninkové instance. Tréninkové instance jsou náhodně rozloženy stejným způsobem pro každý tréninkový běh. Data pořadí a přesné složení každého tréninkového batchu lze rekonstruovat z artifactů, které vydáme. Všechny vydané modely OLMo byly trénovány alespoň na 2T tokenů (jednu epochu přes svá tréninková data) a některé byly trénovány za touto hranicí, začínající druhou epochou přes data s jiným náhodným pořadím. Vzhledem k malému množství dat, které se opakuje, by to mělo zanedbatelný efekt.

Výsledky

Kontrolní bod použitý pro vyhodnocení OLMo-7B je trénován až na 2,46T tokenů na datasetu Dolma s lineárním učebním sazbou poklesu, který je zmíněn dříve. Další doladění tohoto kontrolního bodu na datasetu Dolma pro 1000 kroků s lineárně klesající učební sazbou na 0 dále zvyšuje modelový výkon na perplexity a end-task vyhodnocovací sady, které jsou popsány dříve. Pro konečné vyhodnocení, vývojáři porovnali OLMo s ostatními veřejně dostupnými modely – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B a RPJ-INCITE-7B.

Downstream vyhodnocení

Core downstream vyhodnocovací sada je shrnuta v následující tabulce.

Provádíme zero-shot vyhodnocení rankovací klasifikační metodou ve všech případech. V tomto přístupu, kandidátské textové dokončování (například různé multiple-choice možnosti) jsou řazeny podle pravděpodobnosti (obvykle normalizované nějakým normalizačním faktorem) a je hlášena předpovědní přesnost.

Zatímco Catwalk používá několik typických pravděpodobnostních normalizačních metod, jako je per-token normalizace a per-charakter normalizace, normalizační strategie aplikované jsou zvoleny samostatně pro každé datasetu a zahrnují nezávislou pravděpodobnost odpovědi. Konkrétněji, to zahrnovalo žádnou normalizaci pro arc a openbookqa úkoly, per-token normalizaci pro hellaswag, piqa a winogrande úkoly a žádnou normalizaci pro boolq, copa a sciq úkoly (tj. úkoly ve formulaci blízké jednoduché tokenové předpovědi).

Následující obrázek ukazuje pokrok přesnosti skóre pro devět core end-úkolů. Můžeme vyvodit, že existuje obecně rostoucí trend v přesnosti čísla pro všechny úkoly, kromě OBQA, protože OLMo-7B je dále trénován na více tokenů. Rychlý vzestupný tick v přesnosti mnoha úkolů mezi posledním a druhým krokem ukazuje nám benefit lineárního snižování LR na 0 během posledních 1000 tréninkových kroků. Pro instance intrinsic vyhodnocení, Paloma argumentuje prostřednictvím série analýz, od inspekce výkonu v každém doméně zvlášť až po více sumarizované výsledky přes kombinace domén. Hlášíme výsledky na dvou úrovních granularity: agregovaný výkon přes 11 z 18 zdrojů v Paloma, stejně jako jemnější výsledky přes každý z těchto zdrojů individuálně.

Konečné myšlenky

V tomto článku, jsme mluvili o OLMo, špičkovém, skutečně otevřeném jazykovém modelu, který nabízí vývojářům rámec pro budování, studium a rozvoj jazykových modelů, spolu s poskytováním výzkumníkům přístupu k jeho tréninkovému a vyhodnocovacímu kódu, tréninkové metodě, tréninkovým datům, tréninkovým logům a mezilehlým modelovým kontrolním bodům. Existující špičkové modely mají různé stupně otevřenosti, zatímco model OLMo vydal celý rámec, od tréninku po data až po vyhodnocovací nástroje, čímž se zúžil výkonový rozdíl ve srovnání se špičkovými modely, jako je model LLaMA2.

Inženýr z povolání, spisovatel ze srdce. Kunal je technický spisovatel s hlubokou láskou a porozuměním pro AI a ML, který se věnuje zjednodušování složitých konceptů v těchto oblastech prostřednictvím svých přitažlivých a informačních dokumentací.