Inteligjenca artificiale
Kuptimi i parametrave të modelit të gjuhës së madhe dhe kërkesave të kujtesës: Një zhytje e thellë
Publikuar
ditë 6 më parëon
Përmbajtje
Modele të mëdha gjuhësore (LLM) ka parë përparime të jashtëzakonshme vitet e fundit. Modele si GPT-4, Gemini i Google dhe Claude 3 po vendosin standarde të reja në aftësi dhe aplikacione. Këto modele jo vetëm që përmirësojnë gjenerimin dhe përkthimin e tekstit, por gjithashtu po hapin terren të ri në përpunimin multimodal, duke kombinuar hyrjet e tekstit, imazhit, audio dhe video për të ofruar zgjidhje më gjithëpërfshirëse të AI.
Për shembull, GPT-4 i OpenAI ka treguar përmirësime të rëndësishme në të kuptuarit dhe gjenerimin e tekstit të ngjashëm me njeriun, ndërsa modelet e Google Gemini shkëlqejnë në trajtimin e llojeve të ndryshme të të dhënave, duke përfshirë tekstin, imazhet dhe audion, duke mundësuar ndërveprime më të pandërprera dhe të rëndësishme në kontekst. Në mënyrë të ngjashme, modelet Claude 3 të Anthropic janë shquar për aftësitë e tyre shumëgjuhëshe dhe performancën e përmirësuar në detyrat e AI.
Ndërsa zhvillimi i LLM-ve vazhdon të përshpejtohet, kuptimi i ndërlikimeve të këtyre modeleve, veçanërisht parametrave të tyre dhe kërkesave të kujtesës, bëhet thelbësor. Ky udhëzues synon të çmitizojë këto aspekte, duke ofruar një shpjegim të detajuar dhe të lehtë për t'u kuptuar.
Bazat e modeleve të mëdha gjuhësore
Cilat janë modelet e mëdha të gjuhës?
Modelet e mëdha të gjuhës janë rrjete nervore të trajnuara në grupe të dhënash masive për të kuptuar dhe gjeneruar gjuhën njerëzore. Ata mbështeten në arkitektura si Transformers, të cilat përdorin mekanizma të tillë si vetë-vëmendja për të përpunuar dhe prodhuar tekst.
Rëndësia e parametrave në LLM
Parametrat janë përbërësit kryesorë të këtyre modeleve. Ato përfshijnë peshat dhe paragjykimet, të cilat modeli i rregullon gjatë stërvitjes për të minimizuar gabimet në parashikime. Numri i parametrave shpesh lidhet me kapacitetin dhe performancën e modelit, por gjithashtu ndikon në kërkesat e tij llogaritëse dhe memorie.
Kuptimi i Arkitekturës së Transformerit
Përmbledhje
Arkitektura Transformer, e prezantuar në punimin "Vëmendja është gjithçka që ju nevojitet" nga Vaswani et al. (2017), është bërë themeli për shumë LLM. Ai përbëhet nga një kodues dhe një dekoder, secili i përbërë nga disa shtresa identike.
Komponentët e koduesit dhe dekoderit
- encoder: Përpunon sekuencën e hyrjes dhe krijon një paraqitje të vetëdijshme për kontekstin.
- decoder: Gjeneron sekuencën e daljes duke përdorur paraqitjen e koduesit dhe shenjat e krijuara më parë.
Blloqet kryesore të ndërtimit
- Vëmendje me shumë kokë: Mundëson modelin të fokusohet në pjesë të ndryshme të sekuencës hyrëse njëkohësisht.
- Rrjetet Neurale Feed-Forward: Shton jolinearitet dhe kompleksitet në model.
- Normalizimi i shtresave: Stabilizon dhe përshpejton stërvitjen duke normalizuar rezultatet e ndërmjetme.
Llogaritja e numrit të parametrave
Llogaritja e parametrave në LLM-të e bazuara në transformator
Le të zbërthejmë llogaritjen e parametrave për çdo komponent të një LLM të bazuar në transformator. Ne do të përdorim shënimin nga letra origjinale, ku d_model
paraqet dimensionin e gjendjeve të fshehura të modelit.
- Shtresa e ngulitjes:
- Parametrat =
vocab_size
*d_model
- Parametrat =
- Vëmendje me shumë kokë:
- Për
h
kokat, med_k = d_v = d_model / h
: - Parametrat = 4 *
d_model
^2 (për Q, K, V dhe projeksionet e daljes)
- Për
- Rrjeti Feed-Forward:
- Parametrat = 2 *
d_model
*d_ff
+d_model
+d_ff
- Ku
d_ff
është zakonisht 4 *d_model
- Parametrat = 2 *
- Normalizimi i shtresave:
- Parametrat = 2 *
d_model
(për shkallën dhe paragjykimin)
- Parametrat = 2 *
Parametrat totale për një shtresë transformatori:
Parameters_layer
=Parameters_attention
+Parameters_ffn
+ 2 *Parameters_layernorm
Për një model me N
shtresat:
- Parametrat totale =
N
*Parameters_layer
+Parameters_embedding
+Parameters_output
Shembull i llogaritjes
Le të shqyrtojmë një model me specifikimet e mëposhtme:
d_model
= 768h
(numri i kokave të vëmendjes) = 12N
(numri i shtresave) = 12vocab_size
= 50,000
- Shtresa e ngulitjes:
- 50,000 * 768 = 38,400,000
- Vëmendje me shumë kokë:
- 4 * 768^2 = 2,359,296
- Rrjeti Feed-Forward:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
- Normalizimi i shtresave:
- 2 * 768 = 1,536
Parametrat totale për shtresë:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
Parametrat gjithsej për 12 shtresa:
- 12 * 7,081,984 = 84,983,808
Parametrat totale të modelit:
- 84,983,808 + 38,400,000 = 123,383,808
Ky model do të kishte afërsisht 123 milionë parametra.
Llojet e përdorimit të memories
Kur punojmë me LLM, duhet të marrim parasysh dy lloje kryesore të përdorimit të kujtesës:
- Kujtesa e modelit: Kujtesa e nevojshme për të ruajtur parametrat e modelit.
- Memoria e punës: Kujtesa e nevojshme gjatë përfundimit ose stërvitjes për të ruajtur aktivizimet e ndërmjetme, gradientët dhe gjendjet e optimizuesit.
Llogaritja e kujtesës së modelit
Kujtesa e modelit lidhet drejtpërdrejt me numrin e parametrave. Çdo parametër zakonisht ruhet si një numër me pikë lundruese 32-bit, megjithëse disa modele përdorin trajnime me precizion të përzier me notues 16-bit.
Memoria e modelit (bajt) = Numri i parametrave * Bajt për parametër
Për shembullin tonë model me 123 milionë parametra:
- Kujtesa e modelit (32-bit) = 123,383,808 * 4 byte = 493,535,232 byte ≈ 494 MB
- Kujtesa e modelit (16-bit) = 123,383,808 * 2 byte = 246,767,616 byte ≈ 247 MB
Vlerësimi i kujtesës së punës
Kërkesat e memories së punës mund të ndryshojnë ndjeshëm bazuar në detyrën specifike, madhësinë e grupit dhe gjatësinë e sekuencës. Një vlerësim i përafërt për kujtesën e punës gjatë përfundimit është:
Memoria e punës ≈ 2 * Memoria model
Kjo vlen për ruajtjen e parametrave të modelit dhe aktivizimeve të ndërmjetme. Gjatë stërvitjes, kërkesat e kujtesës mund të jenë edhe më të larta për shkak të nevojës për të ruajtur gradientët dhe gjendjet e optimizuesit:
Memoria e Trajnimit ≈ 4 * Memoria Model
Për shembullin tonë të modelit:
- Memoria e punës e konkluzioneve ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- Kujtesa e trajnimit ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB
Përdorimi i memories në gjendje të qëndrueshme dhe përdorimi maksimal i memories
Kur trajnohen modele të mëdha gjuhësore të bazuara në arkitekturën e Transformer-it, kuptimi i përdorimit të memories është thelbësor për shpërndarjen efikase të burimeve. Le t'i ndajmë kërkesat e memories në dy kategori kryesore: përdorimi i kujtesës në gjendje të qëndrueshme dhe përdorimi maksimal i memories.
Përdorimi i memories në gjendje të qëndrueshme
Përdorimi i kujtesës në gjendje të qëndrueshme përbëhet nga komponentët e mëposhtëm:
- Peshat e modelit: FP32 kopje të parametrave të modelit, që kërkojnë 4N bajt, ku N është numri i parametrave.
- Shtetet e optimizuesit: Për optimizuesin Adam, kjo kërkon 8N bajt (2 gjendje për parametër).
- gradients: Kopje FP32 të gradientëve, që kërkojnë 4N bajt.
- Fut te dhenat: Duke supozuar hyrjet int64, kjo kërkon 8BD byte, ku B është madhësia e grupit dhe D është dimensioni i hyrjes.
Përdorimi total i kujtesës në gjendje të qëndrueshme mund të përafrohet nga:
- M_steady = 16N + 8BD bajt
Përdorimi i kujtesës së pikut
Piku i përdorimit të memories ndodh gjatë kalimit prapa kur aktivizimet ruhen për llogaritjen e gradientit. Kontribuesit kryesorë në kulmin e kujtesës janë:
- Normalizimi i shtresave: Kërkon 4E bajt për normë të shtresës, ku E = BSH (B: madhësia e grupit, S: gjatësia e sekuencës, H: madhësia e fshehur).
- Blloku i vëmendjes:
- Llogaritja e QKV: 2E bytes
- Matrica e vëmendjes: 4 bajt BSS (S: gjatësia e sekuencës)
- Dalja e vëmendjes: 2E bytes
- Blloku i furnizimit përpara:
- Shtresa e parë lineare: 2E bytes
- Aktivizimi GELU: 8E bytes
- Shtresa e dytë lineare: 2E bytes
- Humbje Ndër-Entropike:
- Logjis: 6 BSV bajt (V: madhësia e fjalorit)
Memoria totale e aktivizimit mund të vlerësohet si:
- M_act = L * (14E + 4BSS) + 6BSV bajt
Ku L është numri i shtresave të transformatorit.
Përdorimi maksimal i memories totale
Piku i përdorimit të memories gjatë stërvitjes mund të përafrohet duke kombinuar kujtesën në gjendje të qëndrueshme dhe kujtesën e aktivizimit:
- M_peak = M_steady + M_act + 4 BSV bajt
Afati shtesë 4BSV përbën një ndarje shtesë në fillimin e kalimit prapa.
Duke i kuptuar këta komponentë, ne mund të optimizojmë përdorimin e kujtesës gjatë trajnimit dhe konkluzioneve, duke siguruar shpërndarje efikase të burimeve dhe performancë të përmirësuar të modeleve të mëdha gjuhësore.
Ligjet e shkallëzimit dhe konsideratat e efikasitetit
Ligjet e shkallëzimit për LLM
Hulumtimet kanë treguar se performanca e LLM-ve priret të ndjekë disa ligje të shkallëzimit ndërsa numri i parametrave rritet. Kaplan etj. (2020) vuri re se performanca e modelit përmirësohet si një ligj fuqie i numrit të parametrave, buxhetit të llogaritur dhe madhësisë së të dhënave.
Marrëdhënia midis performancës së modelit dhe numrit të parametrave mund të përafrohet nga:
Performanca ∝ N^α
Ku N është numri i parametrave dhe α është një eksponent i shkallëzimit zakonisht rreth 0.07 për detyrat e modelimit të gjuhës.
Kjo nënkupton që për të arritur një përmirësim prej 10% në performancë, duhet të rrisim numrin e parametrave me një faktor prej 10^(1/α) ≈ 3.7.
Teknikat e Efikasitetit
Ndërsa LLM-të vazhdojnë të rriten, studiuesit dhe praktikuesit kanë zhvilluar teknika të ndryshme për të përmirësuar efikasitetin:
a) Trajnim me precizion të përzier: Përdorimi i numrave me pikë lundruese 16-bit ose edhe 8-bit për operacione të caktuara për të reduktuar përdorimin e memories dhe kërkesat llogaritëse.
b) Modeli i paralelizmit: Shpërndarja e modelit nëpër GPU ose TPU të shumta për të trajtuar modele më të mëdha se sa mund të përshtaten në një pajisje të vetme.
c) Pika e kontrollit të gradientit: Tregtimi i llogaritjes për kujtesën duke rillogaritur aktivizime të caktuara gjatë kalimit prapa në vend që t'i ruani ato.
d) Krasitja dhe kuantizimi: Heqja e peshave më pak të rëndësishme ose zvogëlimi i saktësisë së tyre pas stërvitjes për të krijuar modele më të vogla dhe më efikase.
e) distilim: Trajnimi i modeleve më të vogla për të imituar sjelljen e atyre më të mëdhenj, duke ruajtur potencialisht shumë nga performanca me më pak parametra.
Shembull praktik dhe llogaritje
GPT-3, një nga modelet më të mëdha gjuhësore, ka 175 miliardë parametra. Ai përdor pjesën e dekoderit të arkitekturës Transformer. Për të kuptuar shkallën e tij, le të zbërthejmë numërimin e parametrave me vlera hipotetike:
d_model = 12288
d_ff = 4 * 12288 = 49152
- Numri i shtresave = 96
Për një shtresë dekoderi:
Parametrat total = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 miliardë
Gjithsej për 96 shtresa:
1.1 miliardë * 96 = 105.6 miliardë
Parametrat e mbetur vijnë nga embedding dhe komponentë të tjerë.
Përfundim
Kuptimi i parametrave dhe kërkesave të kujtesës së modeleve të mëdha gjuhësore është thelbësor për dizajnimin, trajnimin dhe vendosjen në mënyrë efektive të këtyre mjeteve të fuqishme. Duke zbërthyer përbërësit e arkitekturës së Transformer dhe duke shqyrtuar shembuj praktikë si GPT, ne fitojmë një pasqyrë më të thellë në kompleksitetin dhe shkallën e këtyre modeleve.
Për të kuptuar më tej përparimet më të fundit në modelet e gjuhëve të mëdha dhe aplikimet e tyre, shikoni këto udhëzues gjithëpërfshirës:
- Eksploroni udhëzuesin e plotë për Gemma 2: Modeli i ri i hapur i gjuhës së madhe i Google për njohuri mbi performancën e përmirësuar dhe veçoritë inovative.
- Mësoni rreth Building LLM Agents for RAG from Scratch and Beyond: Një udhëzues gjithëpërfshirës i cili diskuton sfidat dhe zgjidhjet në gjenerimin e shtuar me rikthim.
- Zbuloni ndërlikimet e Vendosja e një trajnimi, rregullimi dhe konkludimi i LLM-ve me GPU-të NVIDIA dhe CUDA për optimizimin e sistemeve të AI.
Kam kaluar pesë vitet e fundit duke u zhytur në botën magjepsëse të Mësimit të Makinerisë dhe Mësimit të Thellë. Pasioni dhe ekspertiza ime më kanë shtyrë të kontribuoj në mbi 50 projekte të ndryshme inxhinierike softuerike, me një fokus të veçantë në AI/ML. Kurioziteti im i vazhdueshëm më ka tërhequr gjithashtu drejt Përpunimit të Gjuhëve Natyrore, një fushë që mezi pres ta eksploroj më tej.
Ju mund të dëshironi
MARKLLM: Një paketë mjetesh me burim të hapur për LLM Watermarking
Vendosja e modeleve të mëdha gjuhësore në Kubernetes: Një udhëzues gjithëpërfshirës
Kuptimi i kodifikuesve automatikë të rrallë, GPT-4 dhe Claude 3: Një Eksplorim Teknik i Thelluar
Qwen2 – Modeli më i fundit gjuhësor shumëgjuhësh i Alibaba sfidon SOTA si Llama 3
LLaVA-UHD: një LMM që percepton çdo raport aspekti dhe imazhe me rezolucion të lartë
Mbushja e modeleve të gjuhëve të mëdha me parashikim me shumë shenja
Postimet e fundit
- Llama 3.1: Modeli më i avancuar i AI me burim të hapur i Meta - Gjithçka që duhet të dini
- Revolucionizimi i përvojës së pajisjes suaj: Si AI i Apple po ripërcakton teknologjinë
- Çelësi i zgjidhjeve të suksesshme të AI? Të dhënat e sjelljes
- Roli i GAN-ve në Përmirësimin e Sigurisë Kibernetike
- 10 aplikacionet më të mira të stilit të flokëve me AI (korrik 2024)