Umelá inteligencia
Pochopenie parametrov veľkého jazykového modelu a požiadaviek na pamäť: Hlboký ponor
![mm](https://www.unite.ai/wp-content/uploads/2023/07/Aayush_mittal-150x150.jpg)
uverejnené
6 dní staréon
Obsah
![Výpočet parametrov v LLM založených na transformátore](https://www.unite.ai/wp-content/uploads/2024/07/DALL·E-2024-07-16-16.06.52-A-16_9-aspect-ratio-clean-minimal-theme-illustration-of-computer-memory-and-a-2D-matrix.-The-artwork-features-simple-and-sleek-lines-representing-com.webp)
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
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
- Pozornosť viacerých hláv: Umožňuje modelu sústrediť sa na rôzne časti vstupnej sekvencie súčasne.
- Feed-Forward neurónové siete: Pridáva modelu nelinearitu a zložitosť.
- Normalizácia vrstiev: Stabilizuje a urýchľuje tréning normalizáciou stredných výstupov.
Výpočet počtu parametrov
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.
- Vrstva vkladania:
- Parametre =
vocab_size
*d_model
- Parametre =
- Pozornosť viacerých hláv:
- pre
h
hlavy, sd_k = d_v = d_model / h
: - Parametre = 4 *
d_model
^2 (pre Q, K, V a výstupné projekcie)
- pre
- Feed-Forward Network:
- Parametre = 2 *
d_model
*d_ff
+d_model
+d_ff
- Kde
d_ff
zvyčajne je 4*d_model
- Parametre = 2 *
- Normalizácia vrstiev:
- Parametre = 2 *
d_model
(pre rozsah a zaujatosť)
- Parametre = 2 *
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
= 768h
(počet hláv pozornosti) = 12N
(počet vrstiev) = 12vocab_size
= 50,000
- Vrstva vkladania:
- 50,000 * 768 = 38,400,000
- Pozornosť viacerých hláv:
- 4 * 768^2 = 2,359,296
- Feed-Forward Network:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616 XNUMX XNUMX
- 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:
- Pamäť modelu: Pamäť potrebná na uloženie parametrov modelu.
- 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:
- Váhy modelov: FP32 kópie parametrov modelu vyžadujúce 4N bajtov, kde N je počet parametrov.
- Stavy optimalizátora: Pre optimalizátor Adam to vyžaduje 8N bajtov (2 stavy na parameter).
- prechody: FP32 kópie prechodov vyžadujúce 4N bajtov.
- 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ú:
- 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ť).
- Blok pozornosti:
- Výpočet QKV: 2E bajtov
- Attention matrix: 4BSS bajty (S: dĺžka sekvencie)
- Pozor výstup: 2E bajty
- Feed-Forward Block:
- Prvá lineárna vrstva: 2E bajtov
- Aktivácia GELU: 8E bajtov
- Druhá lineárna vrstva: 2E bajtov
- 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:
- Preskúmajte kompletného sprievodcu Gemma 2: Nový model otvoreného veľkého jazyka od spoločnosti Google pre prehľad o jeho vylepšenom výkone a inovatívnych funkciách.
- Získajte informácie o budovaní agentov LLM pre RAG od nuly a ďalej: Komplexný sprievodca ktorý pojednáva o výzvach a riešeniach v generácii rozšírenej o vyhľadávanie.
- Objavte zložitosť Nastavenie školenia, jemného ladenia a odvodzovania LLM pomocou GPU NVIDIA a CUDA na optimalizáciu systémov AI.
![](https://www.unite.ai/wp-content/uploads/2022/10/join-the-future-newsletter.png)
![](https://www.unite.ai/wp-content/uploads/2024/01/Unite-AI-Mobile-Newsletter-1.png)
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ť.
Možno budete chcieť
MARKLLM: Open-Source Toolkit pre LLM vodoznaky
Nasadenie veľkých jazykových modelov na Kubernetes: Komplexná príručka
Pochopenie riedkych automatických kódovačov, GPT-4 a Claude 3: Hĺbkový technický prieskum
Qwen2 – Najnovší viacjazyčný jazykový model Alibaba spochybňuje SOTA ako Llama 3
LLaVA-UHD: LMM vnímajúci akýkoľvek pomer strán a obrázky vo vysokom rozlíšení
Preplňovanie veľkých jazykových modelov s predikciou viacerých tokenov
Posledné príspevky
- Llama 3.1: Najpokročilejší model umelej inteligencie s otvoreným zdrojom od spoločnosti Meta – všetko, čo potrebujete vedieť
- Revolúcia vo vašom zariadení: Ako AI spoločnosti Apple predefinuje technológiu
- Kľúč k úspešným riešeniam AI? Údaje o správaní
- Úloha GAN pri zlepšovaní kybernetickej bezpečnosti
- 10 najlepších aplikácií na úpravu účesu AI (júl 2024)