Connect with us

Umělá inteligence

UltraFastBERT: Exponenciálně rychlejší jazykové modelování

mm

Jazykové modely a generativní umělá inteligence, proslulé svými schopnostmi, jsou horkým tématem v odvětví umělé inteligence. Globální výzkumníci zlepšují jejich účinnost a schopnosti. Tyto systémy, obvykle hluboké učící modely, jsou předtrénovány na rozsáhlých označených datech, které zahrnují neuronové sítě pro sebe-pozornost. Používají různé vrstvy – feedforward, rekurentní, vložené a pozornost – pro zpracování vstupního textu a produkci relevantních výstupů.

Většinou velké jazykové modely mají feedforward vrstvy, které drží většinu parametrů. Studie ukazují, že tyto modely používají pouze zlomek dostupných neuronů pro výpočet výstupu během inferenci.

Tento článek představuje UltraFastBERT, BERT-založený rámec, který odpovídá účinnosti vedoucích BERT modelů, ale používá pouze 0,3% neuronů během inferenci, konkrétně 12 z 4095 v každé vrstvě. Prozkoumáme architekturu UltraFastBERT, funkčnost a výsledky. Pojďme začít.

UltraFastBERT : Úvod do exponenciálně rychlejšího jazykového modelování

Tradičně, jazykový model využívá různé komponenty, aby se vybavil schopnostmi generování obsahu, včetně feedforward vrstev, rekurentních vrstev, vložených vrstev a pozornostních vrstev. Tyto komponenty jsou odpovědné za učení rozpoznávat vzory během trénování a nakonec generovat přesné výstupy na základě vstupních textů. Každá z těchto komponent má některé parametry a v jazykových modelech, většina těchto parametrů je držena feedforward vrstvami. Nicméně, tyto feedforward vrstvy nevyužívají 100% dostupných neuronů k generování výstupu pro každý vstup v době inferenci, což vede ke zbytečnému využití zdrojů, které zvyšuje složitost, výpočetní čas a výpočetní náklady.

V jádru, UltraFastBERT rámec je varianta BERT rámce, který staví na tomto konceptu a nahrazuje feedforward vrstvy rychlejšími feedforward sítěmi ve své architektuře, což nakonec vede k tomu, že UltraFastBERT rámec využívá pouze 0,3% dostupných neuronů, zatímco dodává výsledky srovnatelné s BERT modely podobné velikosti a trénovacího procesu, zejména na downstream úkolech. Díky svým designovým implementacím, mezilehlé vrstvy v UltraFastBERT rámci jsou exponenciálně rychlejší.

Daný rychlý feedforward (FFF) síť a feedforward (FF) síť, každý s n číslem neuronů, časová složitost forward pasu v feedforward síti je O(n), zatímco časová složitost je O(log2n) pro rychlý feedforward síť a rozdíl v časové složitosti je primárně způsoben tím, že v rychlém feedforward síti, neurony jsou organizovány do vyváženého binárního stromu a když je vstup poskytnut, síť vykonává pouze jednu větev stromu podmíněně. Kromě toho, provádění inferenci na rychlém feedforward síti vede k CMM nebo podmíněnému maticovému násobení, ve kterém vstupní řádky tečkují s přirozenými váhami sloupců individuálně a výstup předchozí tečkové operace určuje váhu sloupců pro pokračování. Výsledkem je, že síť využívá všechny neurony pouze pro několik vstupů a žádný vstup nevyžaduje více než několik neuronů pro zpracování sítě. CMM tečkový produkt kontrastuje DMM nebo husté maticové násobení, které počítá tečkový produkt všech vstupů s všemi váhami sloupců.

Shrnutí, UltraFastBERT je BERT-založený rámec, který poskytuje výsledky srovnatelné se státními BERT jazykovými modely, které

  1. Využívají pouze 0,3% dostupných neuronů během fáze inferenci a zapojují pouze 12 neuronů z celkového počtu 4095 neuronů pro každou interferenční vrstvu.
  2. Dodávají silné výkony srovnatelné se státními BERT modely implementací jemných úprav na downstream úkolech.
  3. Poskytují nativní implementaci CMM nebo podmíněného maticového násobení, které tvoří základ pro rychlý feedforward síť a nakonec vede k 78x zrychlení výkonu ve srovnání s nativní optimalizovanou DMM nebo hustou maticovou násobením.

Feed Forward Neural Sítě

Feedforward neuronová síť je jednou z nejjednodušších umělých neuronových sítí, která pohybuje informaci pouze ve forward směru, od vstupních uzlů k výstupním uzlům přes skryté uzly. Jedním z hlavních highlightů rychlé feedforward neuronové sítě je, že nejsou žádné smyčky nebo cykly v těchto sítích a jsou jednodušší na konstrukci ve srovnání s RNN nebo rekurentními neuronovými sítěmi a CNN nebo konvenčními neuronovými sítěmi. Architektura rychlé feedforward neuronové sítě se skládá ze tří komponent, jmenovitě vstupní vrstvy, skryté vrstvy a výstupní vrstvy a každá vrstva se skládá z jednotek nazývaných neurony a každá vrstva je propojena s ostatními pomocí vah.

Neurony ve vstupních vrstvách přijímají vstupy a předávají je do následující vrstvy. Počet neuronů ve každé vstupní vrstvě je určen dimenzí vstupních dat. Další, máme skryté vrstvy, které nejsou vystaveny ani vstupu, ani výstupu a jsou odpovědné za nezbytné výpočty. Neurony ve každé skryté vrstvě berou vážený součet výstupů poskytnutých předchozí vrstvou, aplikují aktivaci funkci a předávají výsledek do následující vrstvy a proces se opakuje. Nakonec, máme výstupní vrstvu, která produkuje výstup pro dané vstupy. Každý neuron v každé vrstvě rychlé feedforward sítě je propojen s každým neuronem v následující vrstvě, což dělá FFF neuronové sítě plně propojenou sítí. Váhy jsou použity k reprezentaci síly spojení mezi neurony a síť aktualizuje tyto váhy, aby se naučila vzory aktualizací vah na základě chyby, která nastane ve výstupu.

Pokračujeme, jsou dvě klíčové fáze v fungování rychlé feedforward neuronové sítě: feedforward fáze a backpropagation fáze.

Feedforward Fáze

V feedforward fázi, vstup je dán do sítě a poté se pohybuje dopředu. Skryté vrstvy poté počítají vážený součet vstupů a zavádějí nelinearitu do modelu tím, že předávají součet vstupů přes aktivaci funkci, jako je ReLu, Sigmoid a TanH. Proces se opakuje, dokud váhy nedosáhnou výstupní vrstvy a model dělá předpověď.

Backpropagation Fáze

Jakmile model dělá předpověď, počítá chybu mezi vygenerovaným výstupem a očekávaným výstupem. Chyba je poté zpětně propagována skrz síť a síť používá gradientní sestupní optimalizační algoritmus, aby upravila váhy v pokusu minimalizovat chybu.

UltraFastBERT : Modelová Architektura a Fungování

UltraFastBERT rámec je postaven na crammedBERT architektuře a UltraFastBERT rámec využívá všechny komponenty crammedBERT rámce, kromě povahy mezilehlých vrstev. Místo toho, UltraFastBERT rámec nahrazuje transformer encoder v feedforward sítích obsažených v mezilehlých vrstvách crammedBERT rámce rychlými feedforward sítěmi. UltraFastBERT rámec dělá následující změny původním feedforward sítím.

  1. Rámec se zbaví rozdílu mezi listovými a nelistovými uzly pomocí GeLu aktivace funkce napříč uzly a vybavuje tyto uzly s výstupními váhami a odstraňuje výstupní biasy v celém.
  2. Nakonec, rámec umožňuje více rychlých feedforward sítí v paralelu tím, že společně počítá mezilehlé výstupní vrstvy. Rámec zvládne tuto výpočet tím, že vezme součet jednotlivých stromů a poté představí součet jako mezilehlou výstupní vrstvu.

Pokračujeme, v trénování, UltraFastBERT rámec následuje trénovací proceduru použité crammedBERT rámcem, která zahrnuje zakázání dropoutu v předtrénování a použití 1-cyklu trojúhelníkové učící se rychlosti. Model je poté jemně upraven, aby maximalizoval jeho výkon na širokém spektru úkolů,主要ně z GLUE benchmarku pro celkem 5 epoch.

Interference

Interference je důležitou částí pro rychlou feedforward síť a tyto rychlé feedforward sítě samy o sobě tvoří velkou část velkých jazykových modelů a jsou známy pro svou výjimečnou urychlovací potenci. Chcete-li pochopit tuto urychlovací potenci, pojďme se podívat na příklad jednoho z nej pokročilejších jazykových modelů, GPT-3, ve kterém feedforward sítě v každém transformer vrstvě se skládají z více než 49 100 neuronů. Pokud by byla trénovatelná, rychlá feedforward síť (maximální hloubka 15) mohla nahradit původní feedforward síť. Zavedená rychlá feedforward síť by měla více než 65 000 neuronů, ale bude využívat pouze 16 z těchto neuronů pro interferenci, což je asi 0,03% neuronů dostupných pro GPT-3.

Algoritmus a Kompatibilita

UltraFastBERT rámec využívá rekurzivní pseudokódový algoritmus pro rychlou feedforward interferenci a algoritmus je zobrazen na obrázku níže.

Zde, B reprezentuje velikost dávky, H reprezentuje šířku vstupních vrstev a M reprezentuje sloupce. Další důležitou příčinou obav s použitím Computational Matrix Multiplication přístupu je, zda to činí rychlé feedforward sítě nekompatibilními s procesem, který je již v použití pro Dense Matrix Multiplication a existující Deep Learning rámce. Naštěstí, použití CMM neovlivňuje výkon nebo introduces nekompatibilitu, i když to zvyšuje caching složitost.

Je důležité poznamenat, že jako součást rychlé feedforward sítě, single-threaded Dense Matrix Multiplication závisí na provádění MAC nebo Multiplication a Accumulation instrukcí a výsledkem, nahrazení DMM s CMM přístupem bude prospěšné pro CPU, protože méně MAC instrukcí je potřeba k výpočtu vrstevního výstupu pro každý prvek. Proto, navzdory použití podmíněnosti, která je obvykle spojena s větví, „neuronová větev“ funguje jako přidání paměťového offsetu pro relevantní ukazatele v rámci. Proto, v UltraFastBERT rámci, instrukční větev předpovědi je nikdy plně zapojena, aby usnadnila podmíněnost CMM a pouze načte relevantní sloupce váhové matice individuálně. Kromě toho, protože rámec provádí řádkovo-sloupcové tečkové produkty, SIMD nebo single instrukce, multiple data vektorová paralelní zpracování je stále dobrá volba pro urychlení interferenčních implementací pro konkrétní zařízení.

UltraFastBERT : Výkon a Výsledky

Budeme mluvit o výkonu UltraFastBERT rámce pro jemné úpravy i pro interferenční úkoly, abychom analyzovali, jak rámec funguje ve srovnání se státními jazykovými modely.

Jemné Úpravy Výsledky

Následující obrázek ukazuje výkon různých modelů na GLUE-dev testovacích datech. Zde, N reprezentuje počet neuronů dostupných pro rámce pro trénování, „Avg“ reprezentuje průměrný skór všech úkolů.

Jako je zřejmé, UltraFastBERT rámec, který byl trénován na A6000 GPU po dobu více než 24 hodin, dokáže zachovat téměř 96% předpovědního výkonu na GLUE downstream úkolech ve srovnání s původním BERT rámcem. Kromě toho, je také zřejmé, že se zvyšující se hloubkou rychlých feedforward sítí, výkon rámců svědků pokles. Nicméně, většina poklesu výkonu nastává pouze pro CoLa úkol. Pokud je CoLa úkol zanedbán, UltraFastBERT rámec vrátí předpovědní výkon skóre asi 98,6%.

Interferenční Výsledky

V této části, budeme srovnávat výkon několika feedforward nebo rychlých feedforward sítí na interferenčních implementacích a tyto implementace jsou rozloženy na tři úrovně.

  1. Na úrovni 1, implementace je konstruována pomocí BLAS Level 1 rutin, jmenovitě skalární-vektorový produkt a vektor-vektorový tečkový produkt.
  2. Na úrovni 2, implementace využívá BLAS Level 2 rutin, jmenovitě dávkový skalární-vektorový produkt a dávkový maticový-vektorový tečkový produkt.
  3. Na úrovni 3, implementace využívá nebátěžnou BLAS Level 3 maticovou-maticovou násobení přístup, a i když je to nejrychlejší implementace dostupná pro feedforward sítě, takové implementace nejsou dostupné pro rychlé feedforward sítě, protože knihovna nepodporuje vektorovou hustotu Computational Matrix Multiplication.

Kromě toho, UltraFastBERT rámec nasazuje GPU implementace pomocí vlastních CUDA nebo PyTorch jader.

Výše uvedená tabulka, srovnává výkon UltraFastBERT rámce s jeho předchůdci, BERT-založenými rámci, ve smyslu feedforward a rychlých feedforward vrstev, kde každá sloupec obsahuje relativní inferenční rychlost rychlé feedforward oproti feedforward implementaci, když využívají stejné lineární algebroidní rutinní primitiva.

Nicméně, je důležité poznamenat, že rychlosti hlášené v tabulce jsou určeny pro „fair srovnání“, tj. obě rychlé feedforward a feedforward implementace využívají stejné lineární algebroidní rutinní operace. Kromě toho, na úrovni 1 a úrovni 2, implementace rychlých feedforward sítí jsou schopny provádět interferenci 48x a 78x rychleji než nejrychlejší feedforward implementace, resp.

Závěrečné Myšlenky

V tomto článku, jsme mluvili o UltraFastBERT, variantě BERT rámce, který staví na konceptu, že feedforward vrstvy nevyužívají 100% dostupných neuronů k generování výstupu pro každý vstup v době inferenci, což vede ke zbytečnému využití zdrojů, které zvyšuje složitost, výpočetní čas a výpočetní náklady a nahrazuje feedforward vrstvy rychlejšími feedforward sítěmi ve své architektuře, což nakonec vede k tomu, že UltraFastBERT rámec využívá pouze 0,3% dostupných neuronů, zatímco dodává výsledky srovnatelné s BERT modely podobné velikosti a trénovacího procesu, zejména na downstream úkolech.

Díky svým designovým implementacím, mezilehlé vrstvy v UltraFastBERT rámci jsou exponenciálně rychlejší. Kromě toho, silný výkon dodávaný UltraFastBERT rámcem je důkazem, že LLM mohou dodávat silný výkon zapojením pouze zlomek svých parametrů pro jednotlivé interferenční, protože UltraFastBERT rámec využívá pouze 0,3% dostupných neuronů během inferenci a přesto dokáže dosáhnout 78x zrychlení oproti inferenčním časům.

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í.