Modely a platformy AI

UltraFastBERT: Úvod do Exponenciálně Rychlejšího Jazykového Modelování

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Jazykové modely a generativní umělá inteligence, proslulé svými schopnostmi, jsou horkým tématem v oboru 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, využívajících neuronových 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, feedforward vrstvy velkých jazykových modelů obsahují nejvíce parametrů. Studie ukazují, že tyto modely používají pouze zlomek dostupných neuronů pro výpočet výstupu během inference.

Tento článek představuje UltraFastBERT, framework založený na BERT, který dosahuje stejné účinnosti jako přední BERT modely, ale používá pouze 0,3% neuronů během inference, konkrétně 12 z 4095 neuronů v každé vrstvě. Prozkoumáme architekturu, funkčnost a výsledky UltraFastBERT. Začneme.

UltraFastBERT : Úvod do Exponenciálně Rychlejšího Jazykového Modelování

Tradičně, jazykový model využívá různé komponenty pro vybavení schopností 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ů pro generování výstupu pro každý vstup během inference, což vede ke zbytečným zdrojům, které zvyšují složitost, výpočetní čas a výpočetní náklady.

V jádru, framework UltraFastBERT je variantou frameworku BERT, vychází z tohoto konceptu a nahrazuje feedforward vrstvy rychlejšími feedforward sítěmi ve své architektuře, což nakonec vede k tomu, že framework UltraFastBERT využívá pouze 0,3% dostupných neuronů, zatímco dosahuje výsledků srovnatelných s BERT modely stejné velikosti a trénovacího procesu, zejména na downstream úkolech. Díky svým designovým implementacím, meziprodukční vrstvy frameworku UltraFastBERT jsou exponenciálně rychlejší,

Daná rychlá feedforward (FFF) síť a feedforward (FF) síť, každá s n neuronů, časová složitost dopředného průchodu v feedforward síti je O(n), zatímco časová složitost je O(log2n) pro rychlou feedforward síť, a rozdíl v časové složitosti je primárně způsoben tím, že v rychlé feedforward síti jsou neurony 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í inference na rychlé 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áhovými sloupci jednotlivě, a výstup předchozí operace tečkovaného produktu určuje váhu sloupců pro pokračování. V důsledku toho, 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čkovaný produkt kontrastuje s DMM nebo hustou maticovou násobením, které počítá tečkovaný produkt všech vstupů se všemi váhovými sloupci.

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

  1. Využívá pouze 0,3% dostupných neuronů během interference, a zapojuje pouze 12 neuronů z celkového počtu 4095 neuronů pro každou interferenční vrstvu.
  2. Poskytuje silné výkony srovnatelné se státními BERT modely implementací fine-tuning strategií na downstream úkolech.
  3. Poskytuje nativní implementaci CMM nebo podmíněného maticového násobení, které tvoří základ pro rychlou feedforward síť, a nakonec vede k 78x zrychlení výkonu ve srovnání s nativními optimalizovanými 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 informacemi pouze ve směru dopředu, od vstupních uzlů k výstupním uzlům přes skryté uzly. Jedním z hlavních výšek feedforward neuronové sítě je, že v ní nejsou žádné smyčky nebo cykly, 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 feedforward neuronové sítě se skládá ze tří komponent, jmenovitě vstupních vrstev, skrytých vrstev a výstupních vrstev, a každá vrstva se skládá z jednotek nazývaných neurony, a každá vrstva je propojena s ostatními pomocí váh.

Neurony ve vstupních vrstvách přijímají vstupy a předávají je do další vrstvy. Počet neuronů v každé vstupní vrstvě je určen dimenzí vstupních dat. Dále, 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 a předávají výsledek do další 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ě feedforward sítě je propojen s každým neuronem v následující vrstvě, čímž se feedforward sítě stávají plně propojenými sítěmi. Váhy se používají k reprezentaci síly spojení mezi neurony, a síť aktualizuje tyto váhy, aby se naučila vzory aktualizací váh na základě chyby, ke které dochází ve výstupu.

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

Fáze Feedforward

V fázi feedforward, vstup je dán síti, a poté se propaguje 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, jako je ReLu, Sigmoid a TanH. Proces se opakuje, dokud váhy nedosáhnou výstupní vrstvy, a model dělá předpověď.

Fáze Backpropagation

Jakmile model dělá předpověď, počítá chybu mezi vygenerovaným výstupem a očekávaným výstupem. Chyba se poté zpětně propaguje skrze síť, a síť používá gradientní optimalizační algoritmus k úpravě váh v pokusu minimalizovat chybu.

UltraFastBERT : Architektura Modelu a Práce

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

  1. Framework se zbaví rozdílu mezi listovými a ne-listovými uzly pomocí funkce GeLu aktivace napříč uzly a vybavuje tyto uzly výstupními váhami a odstraňuje výstupní bias v celém rozsahu. Poté framework nastaví velikost listu na 1.
  2. Nakonec, framework umožňuje několik rychlých feedforward sítí v paralelním režimu tím, že společně počítá meziprodukční výstupní vrstvy. Framework zvládne tuto výpočetní operaci tím, že vezme součet jednotlivých stromů a poté představí součet jako meziprodukční výstupní vrstvu.

Pokračujeme, během trénování, framework UltraFastBERT následuje trénovací proceduru použité frameworkem crammedBERT, která zahrnuje zakázání dropoutu v předtrénování a použití 1-cyklického trojúhelníkového rozvržení učení. Model je poté fine-tuned pro maximalizaci jeho výkonu na široké škále úkolů, hlavně z GLUE benchmarku, po dobu 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ámé pro jejich výjimečné urychlení potenciál. Chcete-li pochopit tento urychlení potenciál, 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é transformer vrstvě obsahují více než 49 100 neuronů. Pokud by se dala trénovat, rychlá feedforward síť (maximální hloubka 15) mohla nahradit původní feedforward síť. Představená rychlá feedforward síť by měla více než 65 000 neuronů, ale bude využívat pouze 16 z těchto neuronů pro interference, což je zhruba 0,03% neuronů dostupných pro GPT-3.

Algoritmus a Kompatibilita

Framework UltraFastBERT využívá rekurzivní pseudokódový algoritmus pro rychlou feedforward interference, 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ší velkou příčinou obav s použitím přístupu Computational Matrix Multiplication 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 frameworky. Naštěstí, použití CMM neovlivňuje výkon nebo neintrodukuje nekompatibilitu, i když zvyšuje složitost cachování.

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 důsledku toho, nahrazení DMM s CMM přístupem bude prospěšné pro CPU, protože méně MAC instrukcí je potřeba pro výpočet vrstevního výstupu na prvek. Proto, navzdory skutečnosti, že se používá podmíněnost, která je obvykle spojena s větvemi, “neuronová větev” funguje jako přidání k paměťovému offsetu relevantních ukazatelů v frameworku. Proto, v frameworku UltraFastBERT, 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 jednotlivě. Kromě toho, protože framework provádí řádko-sloupcové tečkované produkty, SIMD nebo single instrukce multiple data vektorová paralelní zpracování je stále dobrá volba pro urychlení interference implementací pro konkrétní zařízení.

UltraFastBERT : Výkon a Výsledky

Budeme mluvit o výkonu frameworku UltraFastBERT pro fine-tuning i pro interference úkoly, abychom analyzovali, jak framework funguje ve srovnání se státními jazykovými modely.

Fine-Tuning 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 frameworkům pro trénování, “Avg” reprezentuje průměrný skór všech úkolů.

Jak je zřejmé, framework UltraFastBERT, 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 frameworkem BERT. Kromě toho, je také zřejmé, že se zvýšením hloubky rychlých feedforward sítí, výkon frameworků svědků pokles. Nicméně, většina degradace výkonu se vyskytuje pouze pro úkol CoLa. Pokud se úkol CoLa vynechá, framework UltraFastBERT vrací předpovědní výkon skóre o něco málo přes 98,6%.

Interference Výsledky

V této části, budeme srovnávat výkon několika feedforward nebo rychlých feedforward sítí na interference 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čkovaný produkt.
  2. Na úrovni 2, implementace využívá BLAS Level 2 rutiny, jmenovitě dávkový skalární-vektorový produkt a dávkový maticový-vektorový tečkovaný produkt.
  3. Na úrovni 3, implementace využívá non-dávkový BLAS Level 3 maticový-maticový 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 úroveň řídkosti Computational Matrix Multiplication.

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

Výše uvedená tabulka srovnává výkon frameworku UltraFastBERT s jeho předchůdci, BERT-založenými frameworky z hlediska feedforward a rychlých feedforward vrstev, kde každá sloupec obsahuje relativní inference rychlostní zrychlení, když se používají stejné lineární-algebraické rutinní operace.

Je však důležité poznamenat, že zrychlení uvedená v tabulce jsou určena pro “férové srovnání”, tj. obě rychlé feedforward a feedforward implementace používají stejné lineární-algebraické rutinní operace. Kromě toho, na úrovni 1 a úrovni 2, implementace rychlých feedforward sítí jsou schopny provést interference 48x a 78x rychleji než nejrychlejší feedforward implementace.

Závěrečné Mysli

V tomto článku, jsme mluvili o UltraFastBERT, variantě frameworku BERT, který vychází z konceptu, že feedforward vrstvy nevyužívají 100% dostupných neuronů pro generování výstupu pro každý vstup během inference, což vede ke zbytečným zdrojům, které zvyšují 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 framework UltraFastBERT využívá pouze 0,3% dostupných neuronů, zatímco dosahuje výsledků srovnatelných s BERT modely stejné velikosti a trénovacího procesu, zejména na downstream úkolech.

Díky svým designovým implementacím, meziprodukční vrstvy frameworku UltraFastBERT jsou exponenciálně rychlejší. Kromě toho, silný výkon dodaný frameworkem UltraFastBERT je důkazem, že LLMs mohou dodávat silný výkon zapojením pouze zlomek svých parametrů pro jednotlivé interference, protože framework UltraFastBERT využívá pouze 0,3% dostupných neuronů během inference a přesto dosahuje 78x zrychlení výkonu nad interference časy.

Kunal Kejriwal je backendový inženýr specializující se na Python, PostgreSQL, Redis a cloudovou infrastrukturu na GCP a AWS. Má tři roky zkušeností s vývojem a škálováním produkčních systémů a píše o AI infrastruktuře, distribuovaných systémech a architektuře nasazování pracovních zátěží strojového učení.