Dirbtinis intelektas
Didelių kalbų modelio parametrų ir atminties reikalavimų supratimas: gilus nardymas
![mm](https://www.unite.ai/wp-content/uploads/2023/07/Aayush_mittal-150x150.jpg)
paskelbta
prieš 6 dienason
Turinys
![Parametrų skaičiavimas transformatorių pagrindu veikiančiose LLM](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)
Dideli kalbų modeliai (LLM) pastaraisiais metais padarė didelę pažangą. Tokie modeliai kaip GPT-4, Google Gemini ir Claude 3 nustato naujus galimybių ir programų standartus. Šie modeliai ne tik pagerina teksto generavimą ir vertimą, bet ir laužo naujus kelius daugiarūšio apdorojimo srityje, derindami teksto, vaizdo, garso ir vaizdo įvestis, kad pateiktų išsamesnius AI sprendimus.
Pavyzdžiui, „OpenAI GPT-4“ žymiai pagerino žmogaus panašaus teksto supratimą ir generavimą, o „Google“ „Gemini“ modeliai puikiai valdo įvairius duomenų tipus, įskaitant tekstą, vaizdus ir garsą, o tai leidžia sklandžiau ir pagal kontekstą sąveikauti. Panašiai, Anthropic's Claude 3 modeliai pasižymi daugiakalbystės galimybėmis ir geresniu DI užduočių našumu.
Kadangi LLM kūrimas ir toliau spartėja, labai svarbu suprasti šių modelių sudėtingumą, ypač jų parametrus ir atminties reikalavimus. Šiame vadove siekiama išsiaiškinti šiuos aspektus, pateikiant išsamų ir lengvai suprantamą paaiškinimą.
Didžiųjų kalbų modelių pagrindai
Kas yra didelių kalbų modeliai?
Dideli kalbų modeliai yra neuroniniai tinklai, parengti naudojant didžiulius duomenų rinkinius, kad suprastų ir generuotų žmonių kalbą. Jie remiasi tokiomis architektūromis kaip „Transformatoriai“, kurios naudoja tokius mechanizmus kaip dėmesys į save, kad apdorotų ir sukurtų tekstą.
Parametrų svarba LLM
Parametrai yra pagrindiniai šių modelių komponentai. Jie apima svorį ir paklaidas, kurias modelis koreguoja treniruotės metu, kad sumažintų prognozių klaidas. Parametrų skaičius dažnai koreliuoja su modelio talpa ir našumu, bet taip pat turi įtakos jo skaičiavimo ir atminties reikalavimams.
Transformatorių architektūros supratimas
Apžvalga
Transformatoriaus architektūra, pristatyta Vaswani ir kt. dokumente „Attention Is All You Need“. (2017), tapo daugelio LLM pagrindu. Jį sudaro kodavimo įrenginys ir dekoderis, kurių kiekvienas sudarytas iš kelių vienodų sluoksnių.
Kodavimo ir dekoderio komponentai
- Daviklių: apdoroja įvesties seką ir sukuria kontekstinį vaizdą.
- dekoderis: generuoja išvesties seką, naudodamas kodavimo įrenginio atvaizdą ir anksčiau sugeneruotus prieigos raktus.
Pagrindiniai statybiniai blokai
- Daugiagalvis dėmesys: leidžia modeliui vienu metu sutelkti dėmesį į skirtingas įvesties sekos dalis.
- Neuroniniai tinklai: suteikia modeliui netiesiškumo ir sudėtingumo.
- Sluoksnio normalizavimas: stabilizuoja ir pagreitina treniruotę normalizuodamas tarpinius rezultatus.
Parametrų skaičiaus apskaičiavimas
Parametrų skaičiavimas transformatorių pagrindu veikiančiose LLM
Išskaidykime kiekvieno transformatoriumi pagrįsto LLM komponento parametrų skaičiavimą. Naudosime žymą iš originalaus popieriaus, kur d_model
atspindi modelio paslėptų būsenų dimensiją.
- Sluoksnio įterpimas:
- Parametrai =
vocab_size
*d_model
- Parametrai =
- Daugiagalvis dėmesys:
- Dėl
h
galvos, sud_k = d_v = d_model / h
: - Parametrai = 4 *
d_model
^2 (skirta Q, K, V ir išvesties projekcijoms)
- Dėl
- „Fed-Forward“ tinklas:
- Parametrai = 2 *
d_model
*d_ff
+d_model
+d_ff
- Kur
d_ff
paprastai yra 4*d_model
- Parametrai = 2 *
- Sluoksnio normalizavimas:
- Parametrai = 2 *
d_model
(dėl masto ir šališkumo)
- Parametrai = 2 *
Bendri vieno transformatoriaus sluoksnio parametrai:
Parameters_layer
=Parameters_attention
+Parameters_ffn
+ 2*Parameters_layernorm
Modeliui su N
sluoksniai:
- Iš viso parametrų =
N
*Parameters_layer
+Parameters_embedding
+Parameters_output
Skaičiavimo pavyzdys
Panagrinėkime modelį su šiomis specifikacijomis:
d_model
= 768h
(dėmesio galvų skaičius) = 12N
(sluoksnių skaičius) = 12vocab_size
= 50,000
- Sluoksnio įterpimas:
- 50,000 * 768 = 38,400,000
- Daugiagalvis dėmesys:
- 4 * 768^ 2 = 2,359,296
- „Fed-Forward“ tinklas:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616 XNUMX XNUMX
- Sluoksnio normalizavimas:
- 2 * 768 = 1,536
Bendras sluoksnio parametrų skaičius:
- 2,359,296 4,719,616 2 + 1,536 7,081,984 XNUMX + (XNUMX * XNUMX XNUMX) = XNUMX XNUMX XNUMX
Bendri parametrai 12 sluoksnių:
- 12 * 7,081,984 = 84,983,808
Bendri modelio parametrai:
- 84,983,808 + 38,400,000 = 123,383,808
Šis modelis turėtų maždaug 123 milijonus parametrų.
Atminties naudojimo tipai
Dirbdami su LLM, turime atsižvelgti į du pagrindinius atminties naudojimo tipus:
- Modelio atmintis: atmintis, reikalinga modelio parametrams išsaugoti.
- Darbinė atmintis: atmintis, reikalinga atliekant išvadas arba treniruojantis tarpiniams aktyvinimams, gradientams ir optimizavimo būsenoms išsaugoti.
Modelio atminties skaičiavimas
Modelio atmintis yra tiesiogiai susijusi su parametrų skaičiumi. Kiekvienas parametras paprastai išsaugomas kaip 32 bitų slankiojo kablelio skaičius, nors kai kuriuose modeliuose naudojamas mišrus tikslumo mokymas su 16 bitų slankiuoju kableliu.
Modelio atmintis (baitai) = parametrų skaičius * baitai vienam parametrui
Mūsų pavyzdiniam modeliui su 123 milijonais parametrų:
- Modelio atmintis (32 bitų) = 123,383,808 4 493,535,232 * 494 baitai = XNUMX XNUMX XNUMX baitai ≈ XNUMX MB
- Modelio atmintis (16 bitų) = 123,383,808 2 246,767,616 * 247 baitai = XNUMX XNUMX XNUMX baitai ≈ XNUMX MB
Darbinės atminties įvertinimas
Darbinės atminties reikalavimai gali labai skirtis priklausomai nuo konkrečios užduoties, partijos dydžio ir sekos ilgio. Apytikslis darbinės atminties įvertinimas atliekant išvadas yra toks:
Darbinė atmintis ≈ 2 * Modelio atmintis
Tai apima ir modelio parametrų, ir tarpinių aktyvavimų saugojimą. Treniruotės metu atminties reikalavimai gali būti dar didesni, nes reikia saugoti gradientus ir optimizavimo būsenas:
Treniruočių atmintis ≈ 4 * Modelio atmintis
Mūsų modelio pavyzdys:
- Išvados darbinė atmintis ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- Treniruočių atmintis ≈ 4 * 494 MB = 1,976 2 MB ≈ XNUMX GB
Pastovios būsenos atminties naudojimas ir didžiausias atminties naudojimas
Treniruojant didelius kalbos modelius, pagrįstus Transformer architektūra, norint efektyviai paskirstyti išteklius, labai svarbu suprasti atminties naudojimą. Suskirstykime atminties reikalavimus į dvi pagrindines kategorijas: pastovios būsenos atminties naudojimą ir didžiausią atminties naudojimą.
Pastovios būsenos atminties naudojimas
Pastovios būsenos atminties naudojimą sudaro šie komponentai:
- Modelio svoriai: FP32 modelio parametrų kopijos, reikalaujančios 4N baitų, kur N yra parametrų skaičius.
- Optimizavimo būsenos: Adam optimizatoriui tam reikia 8N baitų (2 būsenos vienam parametrui).
- Gradientai: FP32 gradientų kopijos, reikalaujančios 4N baitų.
- Įvesties duomenys: Darant prielaidą, kad int64 įvestis, tam reikia 8BD baitų, kur B yra partijos dydis, o D yra įvesties matmenys.
Bendras pastovios būsenos atminties naudojimas gali būti apytikslis:
- M_steady = 16N + 8BD baitai
Didžiausias atminties naudojimas
Didžiausias atminties panaudojimas įvyksta grįžtant atgal, kai suaktyvinimai išsaugomi gradiento skaičiavimui. Pagrindiniai didžiausios atminties veiksniai yra šie:
- Sluoksnio normalizavimas: Reikia 4E baitų vienai sluoksnio normai, kur E = BSH (B: partijos dydis, S: sekos ilgis, H: paslėptas dydis).
- Dėmesio blokas:
- QKV skaičiavimas: 2E baitai
- Dėmesio matrica: 4BSS baitai (S: sekos ilgis)
- Dėmesio išvestis: 2E baitai
- Tiekimo pirmyn blokas:
- Pirmasis linijinis sluoksnis: 2E baitai
- GELU aktyvinimas: 8E baitai
- Antrasis linijinis sluoksnis: 2E baitai
- Kryžminės entropijos praradimas:
- Logitai: 6BSV baitai (V: žodyno dydis)
Bendra aktyvinimo atmintis gali būti apskaičiuota taip:
- M_act = L * (14E + 4BSS) + 6BSV baitai
Kur L yra transformatoriaus sluoksnių skaičius.
Visas didžiausias atminties naudojimas
Didžiausią atminties sunaudojimą treniruotės metu galima apytiksliai apskaičiuoti derinant pastovios būsenos atmintį ir aktyvinimo atmintį:
- M_peak = M_steady + M_act + 4BSV baitai
Papildomas 4BSV terminas sudaro papildomą paskirstymą atgalinio leidimo pradžioje.
Suprasdami šiuos komponentus, galime optimizuoti atminties naudojimą mokymo ir išvadų metu, užtikrindami efektyvų išteklių paskirstymą ir geresnį didelių kalbų modelių veikimą.
Mastelio keitimo įstatymai ir efektyvumo svarstymai
LLM mastelio keitimo įstatymai
Tyrimai parodė, kad LLM našumas linkęs laikytis tam tikrų mastelio dėsnių, kai didėja parametrų skaičius. Kaplan ir kt. (2020) pastebėjo, kad modelio našumas gerėja kaip parametrų skaičiaus, apskaičiuojamo biudžeto ir duomenų rinkinio dydžio galios dėsnis.
Ryšys tarp modelio veikimo ir parametrų skaičiaus gali būti apytikslis:
Spektaklis ∝ N^α
Kur N yra parametrų skaičius, o α yra mastelio keitimo eksponentas, paprastai apie 0.07 kalbos modeliavimo užduotims.
Tai reiškia, kad norint pasiekti 10 % našumo pagerėjimą, turime padidinti parametrų skaičių 10^(1/α) ≈ 3.7.
Efektyvumo metodai
Kadangi LLM ir toliau auga, mokslininkai ir praktikai sukūrė įvairius metodus, kad pagerintų efektyvumą:
a) Mišrus tikslumo mokymas: 16 bitų ar net 8 bitų slankiojo kablelio skaičių naudojimas tam tikroms operacijoms, siekiant sumažinti atminties naudojimą ir skaičiavimo reikalavimus.
b) Modelio lygiagretumas: modelio paskirstymas keliuose GPU arba TPU, kad būtų galima valdyti didesnius modelius, nei telpa viename įrenginyje.
c) Gradiento tikrinimas: Prekybos atmintis skaičiavimas iš naujo apskaičiuojant tam tikrus aktyvavimus perėjimo atgal metu, o ne juos išsaugant.
d) Genėjimas ir kvantavimas: pašalinkite mažiau svarbius svorius arba sumažinkite jų tikslumą po treniruotės, kad būtų sukurti mažesni, efektyvesni modeliai.
e) Distiliavimas: mažesnių modelių mokymas imituoti didesnių modelių elgesį, potencialiai išsaugant daugumą našumo naudojant mažiau parametrų.
Praktinis pavyzdys ir skaičiavimai
GPT-3, vienas didžiausių kalbos modelių, turi 175 milijardus parametrų. Jis naudoja transformatoriaus architektūros dekoderio dalį. Norėdami suprasti jo mastą, suskaidykime parametrų skaičių hipotetinėmis reikšmėmis:
d_model = 12288
d_ff = 4 * 12288 = 49152
- Sluoksnių skaičius = 96
Vienam dekoderio sluoksniui:
Iš viso parametrų = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 mlrd.
Iš viso 96 sluoksniai:
1.1 milijardo * 96 = 105.6 milijardo
Likę parametrai gaunami iš įterpimo ir kitų komponentų.
Išvada
Norint efektyviai kurti, mokyti ir naudoti šiuos galingus įrankius, labai svarbu suprasti didelių kalbų modelių parametrus ir atminties reikalavimus. Išskaidę Transformatoriaus architektūros komponentus ir nagrinėdami praktinius pavyzdžius, tokius kaip GPT, įgyjame gilesnę įžvalgą apie šių modelių sudėtingumą ir mastą.
Norėdami geriau suprasti naujausius didelių kalbų modelių ir jų taikomųjų programų pasiekimus, peržiūrėkite šiuos išsamius vadovus:
- Ištirkite visą „Gemma 2“ vadovą: naujas „Google“ atviros didelės kalbos modelis kad sužinotumėte apie patobulintą našumą ir naujoviškas funkcijas.
- Sužinokite apie RAG kūrimo LLM agentus nuo nulio ir ne tik: Išsamus vadovas kuriame aptariami paieškos papildytos kartos iššūkiai ir sprendimai.
- Atraskite subtilybes LLM mokymų, koregavimo ir išvadų su NVIDIA GPU ir CUDA nustatymas AI sistemų optimizavimui.
![](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)
Pastaruosius penkerius metus praleidau pasinerdamas į žavų mašininio mokymosi ir giluminio mokymosi pasaulį. Mano aistra ir patirtis paskatino mane prisidėti prie daugiau nei 50 įvairių programinės įrangos inžinerijos projektų, ypatingą dėmesį skiriant AI/ML. Mano nuolatinis smalsumas taip pat patraukė mane į natūralios kalbos apdorojimą – sritį, kurią noriu tyrinėti toliau.
Jums gali patikti
MARKLLM: atvirojo kodo įrankių rinkinys, skirtas LLM vandenženkliams
Didelių kalbų modelių diegimas „Kubernetes“: išsamus vadovas
Retų automatinių kodavimo įrenginių, GPT-4 ir Claude 3 supratimas: nuodugnus techninis tyrimas
Qwen2 – naujausias „Alibaba“ daugiakalbių kalbų modelis meta iššūkius SOTA kaip „Llama 3“
LLaVA-UHD: LMM, suvokiantis bet kokį kraštinių santykį ir didelės raiškos vaizdus
Didelės kalbos modelių įkrovimas naudojant kelių žetonų numatymą
Naujausios žinutės
- „Llama 3.1“: pažangiausias „Meta“ atvirojo kodo AI modelis – viskas, ką reikia žinoti
- Įrenginio naudojimo perversmas: kaip Apple AI iš naujo apibrėžia technologiją
- Raktas į sėkmingus AI sprendimus? Elgesio duomenys
- GAN vaidmuo gerinant kibernetinį saugumą
- 10 geriausių AI šukuosenų programų (2024 m. liepos mėn.)