Spojte se s námi

Umělá inteligence

OLMo: Posílení vědy o jazykových modelech

mm

Vývoj a pokrok jazykových modelů v posledních několika letech poznamenal 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ě. Nárůst komerční poptávky po jazykových modelech však do jisté míry brzdil růst komunity. Důvodem je, že většina nejmodernějších a schopných modelů je uzavřena za proprietárními rozhraními, což vývojářské komunitě znemožňuje přístup k zásadním detailům jejich školicí architektury, dat a vývojových procesů. Nyní je nepopiratelné, že tato školení a strukturální detaily jsou klíčové pro výzkumné studie, včetně přístupu k jejich potenciálním rizikům a předsudkům, což vytváří požadavek, aby výzkumná komunita měla přístup ke skutečně otevřenému a silnému jazykovému modelu.

Aby vývojáři splnili tento požadavek, vytvořili OLMo, nejmodernější, skutečně otevřený jazykový modelový framework. Tento rámec umožňuje výzkumníkům používat OLMo k vytváření a studiu jazykových modelů. Na rozdíl od většiny nejmodernějších jazykových modelů, které uvolnily pouze kód rozhraní a modelové váhy, je framework OLMo skutečně open source s veřejně přístupným vyhodnocovacím kódem, tréninkovými metodami a tréninkovými daty. Primárním cílem OLMo je posílit a posílit otevřenou výzkumnou komunitu a neustálý vývoj jazykových modelů.

V tomto článku podrobně probereme framework OLMo, prozkoumáme jeho architekturu, metodologii a výkon v porovnání se současnými nejmodernějšími frameworky. Takže, pojďme začít.

OLMo: Posílení vědy o jazykových modelech

Jazykový model byl pravděpodobně nejžhavějším trendem za posledních několik let, a to nejen v rámci komunity AI a ML, ale také v celém technologickém průmyslu, a to díky jeho pozoruhodným schopnostem při provádění úkolů v reálném světě s výkonem podobným lidskému. ChatGPT je ukázkovým příkladem potenciálních jazykových modelů, přičemž hlavní hráči v technologickém průmyslu zkoumají integraci jazykových modelů se svými produkty.

NLP, neboli zpracování přirozeného jazyka, je jedním z odvětví, které v posledních několika letech široce využívá jazykové modely. Od té doby, co průmysl začal používat lidské anotace pro zarovnání a rozsáhlé předškolení, jazykové modely zaznamenaly rychlé zlepšení jejich komerční životaschopnosti, což vedlo k tomu, že většina nejmodernějších jazykových a NLP rámců omezila proprietární rozhraní, přičemž vývojová komunita nemá přístup k důležitým detailům.

Pro zajištění pokroku jazykových modelů nabízí OLMo, nejmodernější, skutečně otevřený jazykový model, vývojářům rámec pro vytváření, studium a pokrok ve vývoji jazykových modelů. Poskytuje také výzkumníkům přístup ke svému školicímu a vyhodnocovacímu kódu, metodice školení, školicím datům, protokolům školení a kontrolním bodům středně pokročilých modelů. Stávající nejmodernější modely mají různou míru otevřenosti, zatímco model OLMo uvolnil celý rámec, od školení přes data až po nástroje pro hodnocení, čímž se zmenšila mezera ve výkonu ve srovnání s nejmodernějšími modely, jako je např. model LLaMA2.

Pro modelování a trénink obsahuje rámec OLMo tréninkový kód, úplné modelové váhy, ablace, tréninkové protokoly a tréninkové metriky ve formě kódu rozhraní, stejně jako protokoly Weights & Biases. Pro analýzu a tvorbu datové sady obsahuje rámec OLMo úplná trénovací data používaná pro modely Dolma a WIMBD AI2 spolu s kódem, který trénovací data vytváří. Pro účely hodnocení obsahuje rámec OLMo model Catwalk AI2 pro následné hodnocení a model Paloma pro hodnocení založené na zmatenosti.

OLMo: Model a architektura

Model OLMo využívá pouze dekodérovou transformátorovou architekturu založenou na Neural Information Processing Systems a poskytuje dva modely s 1 miliardou a 7 miliardami parametrů, s modelem 65 miliard parametrů, který je v současné době ve vývoji. 

Architektura rámce OLMo přináší několik vylepšení oproti rámcům včetně komponenty vanilla transformer v jejich architektuře včetně nejnovějšího stavu techniky. velké jazykové modely jako OpenLM, Falcon, LLaMA a PaLM. Následující obrázek srovnává model OLMo se 7 miliardami miliard parametrů s nedávnými LLM pracujícími na téměř stejném počtu parametrů. 

Rámec OLMo vybírá hyperparametry optimalizací modelu pro trénovací propustnost na hardwaru a zároveň minimalizuje riziko pomalé divergence a špiček ztrát. Jak již bylo řečeno, primární změny implementované rámcem OLMo, který se odlišuje od architektury vanilla transformátoru, jsou následující:

Žádné předsudky

Na rozdíl od Falcon, PaLM, LLaMA a dalších jazykových modelů, framework OLMo nezahrnuje ve své architektuře žádné zkreslení pro zvýšení stability tréninku. 

Norma neparametrické vrstvy

Rámec OLMo implementuje do své architektury neparametrickou formulaci normy vrstvy. Norma neparametrické vrstvy nenabízí žádnou afinní transformaci v rámci normy, tj. nenabízí žádný adaptivní zisk nebo zkreslení. Normy neparametrické vrstvy nejenže nabízejí větší zabezpečení než normy Parametric Layer Norms, ale jsou také rychlejší. 

Funkce aktivace SwiGLU

Stejně jako většina jazykových modelů, jako je PaLM a LLaMA, obsahuje rámec OLMo ve své architektuře aktivační funkci SwiGLU namísto aktivační funkce ReLU a zvyšuje velikost skryté aktivace na nejbližší násobek 128, aby se zlepšila propustnost. 

RoPE nebo rotační polohové zapuštění

Modely OLMo následují modely LLaMA a PaLM a vyměňují absolutní polohové uložení za RoPE nebo rotační polohové uložení. 

Předtrénink s Dolmou

Přestože má vývojová komunita nyní vylepšený přístup k parametrům modelu, dveře pro přístup k předtréninkovým datovým sadám zůstávají stále zavřené, protože předtréninková data nejsou zveřejňována spolu s uzavřenými modely ani s otevřenými modely. Kromě toho technická dokumentace pokrývající taková data často postrádá důležité podrobnosti potřebné k úplnému pochopení a replikaci modelu. Tato překážka ztěžuje pokračování výzkumu v určitých vláknech jazykový model výzkum včetně pochopení toho, jak tréninková data ovlivňují schopnosti a omezení modelu. Rámec OLMo vytvořil a vydal svůj datový soubor pro předškolení, Dolma, aby usnadnil otevřený výzkum předběžného školení jazykových modelů. Datový soubor Dolma je vícezdrojová a různorodá sbírka více než 3 bilionů tokenů napříč 5 miliardami dokumentů shromážděných ze 7 různých zdrojů, které běžně používají výkonné velké LLM pro předškolení a jsou přístupné širokému publiku. Složení datového souboru Dolma je shrnuto v následující tabulce. 

Datový soubor Dolma je vytvořen pomocí potrubí 5 komponent: filtrování jazyků, filtrování kvality, filtrování obsahu, mixování z více zdrojů, deduplikace a tokenizace. Společnost OLMo také vydala zprávu Dolma, která poskytuje více informací o principech návrhu a konstrukčních detailech spolu s podrobnějším shrnutím obsahu. Model také otevírá zdroje svých vysoce výkonných nástrojů pro správu dat, které umožňují snadnou a rychlou správu korpusů dat před školením. Vyhodnocení modelu se řídí dvoustupňovou strategií, počínaje online vyhodnocením pro rozhodování během modelového tréninku a konečným offline vyhodnocením pro agregované vyhodnocení z kontrolních bodů modelu. Pro offline hodnocení používá OLMo framework Catwalk, náš veřejně dostupný nástroj pro hodnocení, který má přístup k široké škále datových sad a formátů úloh. Rámec používá Catwalk pro následné hodnocení a také hodnocení vnitřního jazykového modelování na našem novém benchmarku zmatku, Paloma. OLMo jej poté porovnává s několika veřejnými modely pomocí svého pevného hodnotícího kanálu, a to jak pro následné hodnocení, tak pro vyhodnocení zmatenosti. 

OLMo spouští několik vyhodnocovacích metrik o architektuře modelu, inicializaci, optimalizátorech, rozvrhu rychlosti učení a směsích dat během trénování modelu. Vývojáři to nazývají „online hodnocení“ OLMo v tom smyslu, že se jedná o opakování ve smyčce po každých 1000 tréninkových krocích (nebo ∼4B tréninkových tokenů), aby se dal včasný a nepřetržitý signál o kvalitě trénovaného modelu. Nastavení těchto hodnocení závisí na většině základních úkolů a nastavení experimentů používaných pro naše offline hodnocení. OLMo si klade za cíl nejen srovnání OLMo-7B s jinými modely pro nejlepší výkon, ale také ukázat, jak umožňuje úplnější a kontrolovanější vědecké hodnocení. OLMo-7B je největší jazykový model s explicitní dekontaminací pro vyhodnocení zmatku. 

Školení OLMo

Je důležité poznamenat, že modely frameworku OLMo jsou trénovány pomocí optimalizační strategie ZeRO, kterou poskytuje framework FSDP prostřednictvím PyTorch, a tím podstatně snižuje spotřebu paměti GPU rozdělením vah modelů přes GPU. Díky tomu lze v měřítku 7B trénovat s mikrodávkou o velikosti 4096 tokenů na GPU na našem hardwaru. Trénovací framework pro modely OLMo-1B a -7B používá globálně konstantní velikost dávky přibližně 4 miliony tokenů (2048 instancí, každá s délkou sekvence 2048 tokenů). Pro model OLMo-65B (který je aktuálně v trénování) vývojáři používají zahřívací cyklus velikosti dávky, který začíná na přibližně 2 milionech tokenů (1024 instancí) a zdvojnásobuje se každých 100 miliard tokenů až do přibližně 16 milionů tokenů (8192 instancí). 

Pro zlepšení propustnosti využíváme školení se smíšenou přesností (Micikevicius et al., 2017) prostřednictvím vestavěných nastavení FSDP a modulu zesilovače PyTorch. Ten zajišťuje, že určité operace, jako je softmax, vždy běží s plnou přesností pro zlepšení stability, zatímco všechny ostatní operace běží s poloviční přesností ve formátu bfloat16. V rámci našich specifických nastavení jsou váhy modelu a stav optimalizátoru místní pro každý GPU udržovány s plnou přesností. Váhy v každém bloku transformátoru se přenášejí do formátu bfloat16 pouze tehdy, když se na každém GPU zhmotní parametry v plné velikosti během dopředného a zpětného průchodu. Přechody jsou redukovány napříč GPU s plnou přesností. 

Optimalizátor

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

U všech velikostí modelů se rychlost učení lineárně zahřívá během prvních 5000 kroků (~21 B tokenů) na maximální hodnotu a poté lineárně klesá s inverzní odmocninou čísla kroku na specifikovanou minimální rychlost učení. Po zahřívací periodě model ořízne gradienty tak, aby celková l-norma gradientů parametrů nepřesáhla 1.0. Následující tabulka uvádí srovnání našich nastavení optimalizátoru na stupnici 7B s těmi z jiných nedávných LM, které také používaly AdamW. 

Údaje o školení

Školení zahrnuje tokenizaci instancí školení podle slov a tokenizéru BPE pro model větného členu po přidání speciálního tokenu EOS na konec každého dokumentu a poté seskupujeme po sobě jdoucí kusy 2048 tokenů, abychom vytvořili instance školení. Tréninkové instance jsou zamíchány přesně stejným způsobem pro každý tréninkový běh. Pořadí dat a přesné složení každé tréninkové dávky lze rekonstruovat z artefaktů, které uvolňujeme. Všechny vydané modely OLMo byly trénovány na alespoň 2T tokeny (jedna epocha přes trénovací data) a některé byly trénovány nad rámec této epochy zahájením druhé epochy nad daty s jiným pořadím míchání. Vzhledem k malému množství dat, které se to opakuje, by to mělo mít zanedbatelný účinek. 

výsledky

Kontrolní bod používaný pro vyhodnocení OLMo-7B je trénován až do 2.46T tokenů na datové sadě Dolma s lineárním rozvrhem útlumů rychlosti učení zmíněným výše. Další vyladění tohoto kontrolního bodu na datové sadě Dolma na 1000 kroků s lineárně klesající rychlostí učení na 0 dále zvyšuje výkon modelu na složitostech a sadách hodnocení konečných úloh popsaných výše. Pro závěrečné hodnocení vývojáři porovnali OLMo s dalšími veřejně dostupnými modely – LLaMA-7B, LLaMA2-7B, Pythia-6.9B, Falcon-7B a RPJ-INCITE-7B. 

Následné hodnocení

Základní sada následného hodnocení je shrnuta v následující tabulce. 

Ve všech případech provádíme hodnocení zero-shot metodou klasifikace podle pořadí. V tomto přístupu kandidát doplňování textu (např. různé možnosti s výběrem z více možností) jsou seřazeny podle pravděpodobnosti (obvykle normalizovány nějakým normalizačním faktorem) a je uvedena přesnost předpovědi. 

Ačkoli Catwalk používá několik typických metod normalizace pravděpodobnosti, jako je normalizace na token a normalizace na znak, použité normalizační strategie jsou voleny samostatně pro každou datovou sadu a zahrnují bezpodmínečnou pravděpodobnost odpovědi. Konkrétněji se jednalo o nulovou normalizaci pro úlohy arc a openbookqa, normalizaci na token pro úlohy hellaswag, piqa a winogrande a nulovou normalizaci pro úlohy boolq, copa a sciq (tj. úlohy ve formulaci blízké úloze predikce jednoho tokenu).

Následující obrázek ukazuje průběh skóre přesnosti pro devět hlavních konečných úloh. Lze odvodit, že u všech úloh s výjimkou OBQA je obecně rostoucí trend v počtu přesnosti, protože OLMo-7B je dále trénován na více tokenech. Prudký vzestupný tikot přesnosti mnoha úkolů mezi posledním a předposledním krokem nám ukazuje výhodu lineárního snižování LR na 0 během posledních 1000 tréninkových kroků. Například v případě vnitřních hodnocení Paloma argumentuje řadou analýz, od inspekce výkonu v každé doméně samostatně až po souhrnnější výsledky v kombinacích domén. Uvádíme výsledky na dvou úrovních granularity: souhrnný výkon u 11 z 18 zdrojů v Palomě a také jemnější výsledky u každého z těchto zdrojů jednotlivě.

Závěrečné myšlenky

V tomto článku jsme hovořili o OLMo, nejmodernějším skutečně otevřeném jazykovém modelu, který vývojářům nabízí rámec pro vytváření, studium a pokrok ve vývoji jazykových modelů spolu s poskytováním přístupu výzkumníkům k jeho školicímu a hodnotícímu kódu, metodice školení, tréninková data, tréninkové protokoly a kontrolní body přechodného modelu. Stávající nejmodernější modely mají různou míru otevřenosti, zatímco model OLMo uvolnil celý rámec od školení přes data až po nástroje hodnocení, čímž se zmenšila mezera ve výkonu ve srovnání s nejmodernějšími modely, jako je model LLaMA2. 

„Povoláním inženýr, srdcem spisovatel“. Kunal je technický spisovatel s hlubokou láskou a porozuměním AI a ML, který se věnuje zjednodušování složitých konceptů v těchto oblastech prostřednictvím své poutavé a informativní dokumentace.