Spojte sa s nami

Umelá inteligencia

Pochopenie parametrov veľkého jazykového modelu a požiadaviek na pamäť: Hlboký ponor

mm

uverejnené

 on

Výpočet parametrov v LLM založených na transformátore

Veľké jazykové modely (LLMs) zaznamenala v posledných rokoch pozoruhodný pokrok. Modely ako GPT-4, Gemini od Google a Claude 3 stanovujú nové štandardy v možnostiach a aplikáciách. Tieto modely nielen vylepšujú generovanie a preklad textu, ale sú aj priekopníkom v oblasti multimodálneho spracovania, pričom kombinujú textové, obrazové, zvukové a obrazové vstupy s cieľom poskytnúť komplexnejšie riešenia AI.

Napríklad GPT-4 od OpenAI preukázal významné zlepšenia v porozumení a generovaní ľudského textu, zatiaľ čo modely Gemini od Google vynikajú v spracovaní rôznych typov údajov vrátane textu, obrázkov a zvuku, čo umožňuje bezproblémovejšie a kontextovo relevantnejšie interakcie. Podobne modely Claude 3 od Anthropic sú známe svojimi viacjazyčnými schopnosťami a vylepšeným výkonom v úlohách AI.

Ako sa vývoj LLM neustále zrýchľuje, pochopenie zložitosti týchto modelov, najmä ich parametrov a pamäťových požiadaviek, sa stáva kľúčovým. Cieľom tejto príručky je demystifikovať tieto aspekty a ponúka podrobné a ľahko pochopiteľné vysvetlenie.

Základy veľkých jazykových modelov

Čo sú veľké jazykové modely?

Veľké jazykové modely sú neurónové siete trénované na masívnych súboroch údajov na pochopenie a generovanie ľudského jazyka. Spoliehajú sa na architektúry ako Transformers, ktoré na spracovanie a produkciu textu využívajú mechanizmy ako sebapozornosť.

Význam parametrov v LLM

Parametre sú základnými komponentmi týchto modelov. Zahŕňajú váhy a odchýlky, ktoré model upravuje počas tréningu, aby sa minimalizovali chyby v predpovediach. Počet parametrov často koreluje s kapacitou a výkonom modelu, ale ovplyvňuje aj jeho výpočtové a pamäťové nároky.

Pochopenie architektúry transformátora

Transformátory-architektúra

Architektúra transformátorov

Prehľad

Architektúra transformátora predstavená v článku „Attention Is All You Need“ od Vaswaniho a kol. (2017), sa stala základom mnohých LLM. Pozostáva z kodéra a dekodéra, pričom každý pozostáva z niekoľkých rovnakých vrstiev.

Komponenty kódovača a dekodéra

  • Encoder: Spracuje vstupnú sekvenciu a vytvorí kontextovú reprezentáciu.
  • Decoder: Generuje výstupnú sekvenciu pomocou reprezentácie kódovača a predtým vygenerovaných tokenov.

Kľúčové stavebné bloky

  1. Pozornosť viacerých hláv: Umožňuje modelu sústrediť sa na rôzne časti vstupnej sekvencie súčasne.
  2. Feed-Forward neurónové siete: Pridáva modelu nelinearitu a zložitosť.
  3. Normalizácia vrstiev: Stabilizuje a urýchľuje tréning normalizáciou stredných výstupov.

Výpočet počtu parametrov

Školenie transformátora

Predtrénované modely pre efektívny tréning transformátorov

Výpočet parametrov v LLM založených na transformátore

Rozoberme výpočet parametrov pre každý komponent LLM na báze transformátora. Použijeme zápis z pôvodného príspevku, kde d_model predstavuje dimenziu skrytých stavov modelu.

  1. Vrstva vkladania:
    • Parametre = vocab_size * d_model
  2. Pozornosť viacerých hláv:
    • pre h hlavy, s d_k = d_v = d_model / h:
    • Parametre = 4 * d_model^2 (pre Q, K, V a výstupné projekcie)
  3. Feed-Forward Network:
    • Parametre = 2 * d_model * d_ff + d_model + d_ff
    • Kde d_ff zvyčajne je 4* d_model
  4. Normalizácia vrstiev:
    • Parametre = 2 * d_model (pre rozsah a zaujatosť)

Celkové parametre pre jednu vrstvu transformátora:

  • Parameters_layer = Parameters_attention + Parameters_ffn + 2 * Parameters_layernorm

Pre model s N vrstvy:

  • Celkové parametre = N * Parameters_layer + Parameters_embedding + Parameters_output

Príklad výpočtu

Zoberme si model s nasledujúcimi špecifikáciami:

  • d_model = 768
  • h (počet hláv pozornosti) = 12
  • N (počet vrstiev) = 12
  • vocab_size = 50,000
  1. Vrstva vkladania:
    • 50,000 * 768 = 38,400,000
  2. Pozornosť viacerých hláv:
    • 4 * 768^2 = 2,359,296
  3. Feed-Forward Network:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616 XNUMX XNUMX
  4. Normalizácia vrstiev:
    • 2 * 768 = 1,536

Celkové parametre na vrstvu:

  • 2,359,296 4,719,616 2 + 1,536 7,081,984 XNUMX + (XNUMX * XNUMX XNUMX) = XNUMX XNUMX XNUMX

Celkové parametre pre 12 vrstiev:

  • 12 * 7,081,984 = 84,983,808

Celkové parametre modelu:

  • 84,983,808 + 38,400,000 = 123,383,808

Tento model by mal približne 123 miliónov parametrov.

Typy využitia pamäte

Pri práci s LLM musíme zvážiť dva hlavné typy využitia pamäte:

  1. Pamäť modelu: Pamäť potrebná na uloženie parametrov modelu.
  2. Pracovná pamäť: Pamäť potrebná počas inferencie alebo tréningu na ukladanie prechodných aktivácií, gradientov a stavov optimalizátora.

Výpočet pamäte modelu

Pamäť modelu priamo súvisí s počtom parametrov. Každý parameter je zvyčajne uložený ako 32-bitové číslo s pohyblivou rádovou čiarkou, hoci niektoré modely používajú trénovanie so zmiešanou presnosťou so 16-bitovými pohyblivými čiarami.

Pamäť modelu (bajty) = Počet parametrov * Bajty na parameter

Pre náš vzorový model so 123 miliónmi parametrov:

  • Pamäť modelu (32-bit) = 123,383,808 4 493,535,232 * 494 bajty = XNUMX XNUMX XNUMX bajtov ≈ XNUMX MB
  • Pamäť modelu (16-bit) = 123,383,808 2 246,767,616 * 247 bajty = XNUMX XNUMX XNUMX bajtov ≈ XNUMX MB

Odhad pracovnej pamäte

Požiadavky na pracovnú pamäť sa môžu výrazne líšiť v závislosti od konkrétnej úlohy, veľkosti dávky a dĺžky sekvencie. Hrubý odhad pracovnej pamäte počas odvodzovania je:

Pracovná pamäť ≈ 2 * Pamäť modelu

To zodpovedá za uloženie parametrov modelu aj medziľahlých aktivácií. Počas tréningu môžu byť požiadavky na pamäť ešte vyššie kvôli potrebe ukladať gradienty a stavy optimalizátora:

Tréningová pamäť ≈ 4 * Pamäť modelu

Pre náš vzorový model:

  • Inferenčná pracovná pamäť ≈ 2 * 494 MB = 988 MB ≈ 1 GB
  • Tréningová pamäť ≈ 4 * 494 MB = 1,976 2 MB ≈ XNUMX GB

Využitie pamäte v ustálenom stave a maximálne využitie pamäte

Pri trénovaní veľkých jazykových modelov založených na architektúre Transformer je pochopenie využitia pamäte kľúčové pre efektívne prideľovanie zdrojov. Rozdeľme požiadavky na pamäť do dvoch hlavných kategórií: využitie pamäte v ustálenom stave a maximálne využitie pamäte.

Využitie pamäte v ustálenom stave

Využitie pamäte v ustálenom stave pozostáva z nasledujúcich komponentov:

  1. Váhy modelov: FP32 kópie parametrov modelu vyžadujúce 4N bajtov, kde N je počet parametrov.
  2. Stavy optimalizátora: Pre optimalizátor Adam to vyžaduje 8N bajtov (2 stavy na parameter).
  3. prechody: FP32 kópie prechodov vyžadujúce 4N bajtov.
  4. Vstupné Data: Za predpokladu int64 vstupov to vyžaduje 8BD bajtov, kde B je veľkosť dávky a D je vstupný rozmer.

Celkové využitie pamäte v ustálenom stave možno približne určiť:

  • M_steady = 16N + 8BD bajtov

Špičkové využitie pamäte

K maximálnemu využitiu pamäte dochádza počas spätného prechodu, keď sa ukladajú aktivácie na výpočet gradientu. Hlavnými prispievateľmi k špičkovej pamäti sú:

  1. Normalizácia vrstiev: Vyžaduje 4E bajtov na normu vrstvy, kde E = BSH (B: veľkosť dávky, S: dĺžka sekvencie, H: skrytá veľkosť).
  2. Blok pozornosti:
    • Výpočet QKV: 2E bajtov
    • Attention matrix: 4BSS bajty (S: dĺžka sekvencie)
    • Pozor výstup: 2E bajty
  3. Feed-Forward Block:
    • Prvá lineárna vrstva: 2E bajtov
    • Aktivácia GELU: 8E bajtov
    • Druhá lineárna vrstva: 2E bajtov
  4. Strata krížovej entropie:
    • Logits: 6BSV bajtov (V: veľkosť slovnej zásoby)

Celková aktivačná pamäť sa dá odhadnúť ako:

  • M_act = L* (14E + 4BSS) + 6BSV bajtov

Kde L je počet vrstiev transformátora.

Celkové maximálne využitie pamäte

Maximálne využitie pamäte počas tréningu sa dá aproximovať kombináciou pamäte v ustálenom stave a pamäte aktivácie:

  • M_peak = M_steady + M_act + 4 BSV bajtov

Dodatočný termín 4BSV predstavuje dodatočné pridelenie na začiatku spätného prechodu.

Pochopením týchto komponentov môžeme optimalizovať využitie pamäte počas tréningu a odvodzovania, čím sa zabezpečí efektívna alokácia zdrojov a zlepšený výkon veľkých jazykových modelov.

Zákony o škálovaní a úvahy o účinnosti

 Zákony o škálovaní pre LLM

Výskum ukázal, že výkon LLM má tendenciu dodržiavať určité zákony škálovania, keď sa zvyšuje počet parametrov. Kaplan a kol. (2020) zistili, že výkon modelu sa zlepšuje ako mocninný zákon počtu parametrov, výpočtového rozpočtu a veľkosti množiny údajov.

Vzťah medzi výkonnosťou modelu a počtom parametrov možno priblížiť:

Výkon ∝ N^α

Kde N je počet parametrov a α je škálovací exponent typicky okolo 0.07 pre úlohy jazykového modelovania.

To znamená, že na dosiahnutie 10% zlepšenia výkonu potrebujeme zvýšiť počet parametrov faktorom 10^(1/α) ≈ 3.7.

Techniky účinnosti

Keďže LLM neustále rastú, výskumníci a praktici vyvinuli rôzne techniky na zlepšenie efektívnosti:

a) Zmiešaný presný tréning: Použitie 16-bitových alebo dokonca 8-bitových čísel s pohyblivou rádovou čiarkou pre určité operácie na zníženie využitia pamäte a výpočtových požiadaviek.

b) Modelový paralelizmus: Distribúcia modelu na viacero GPU alebo TPU na zvládnutie väčších modelov, než sa zmestí na jedno zariadenie.

c) Gradient Checkpointing: Obchodovanie s výpočtom pre pamäť prepočítaním určitých aktivácií počas spätného prechodu namiesto ich uloženia.

d) Prerezávanie a kvantovanie: Odstránenie menej dôležitých závaží alebo zníženie ich presnosti po tréningu na vytvorenie menších, efektívnejších modelov.

e) destilácia: Trénovanie menších modelov, aby napodobňovali správanie väčších, čím sa potenciálne zachová veľká časť výkonu s menším počtom parametrov.

Praktický príklad a výpočty

GPT-3, jeden z najväčších jazykových modelov, má 175 miliárd parametrov. Využíva dekodérovú časť architektúry Transformer. Aby sme pochopili jeho rozsah, rozdeľme počet parametrov na hypotetické hodnoty:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • Počet vrstiev = 96

Pre jednu vrstvu dekodéra:

Celkové parametre = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 miliardy

Celkom pre 96 vrstiev:

1.1 miliardy * 96 = 105.6 miliardy

Zvyšné parametre pochádzajú z vkladania a iných komponentov.

záver

Pochopenie parametrov a pamäťových požiadaviek veľkých jazykových modelov je kľúčové pre efektívne navrhovanie, školenie a nasadenie týchto výkonných nástrojov. Rozčlenením komponentov architektúry Transformer a preskúmaním praktických príkladov, ako je GPT, získame hlbší prehľad o zložitosti a rozsahu týchto modelov.

Ak chcete lepšie porozumieť najnovším pokrokom vo veľkých jazykových modeloch a ich aplikáciách, pozrite si tieto komplexné príručky:

Posledných päť rokov som strávil ponorením sa do fascinujúceho sveta strojového učenia a hlbokého učenia. Moja vášeň a odborné znalosti ma viedli k tomu, že som prispel k viac ako 50 rôznym projektom softvérového inžinierstva s osobitným zameraním na AI/ML. Moja neustála zvedavosť ma tiež priviedla k spracovaniu prirodzeného jazyka, oblasti, ktorú by som chcel ďalej skúmať.