Lidhu me ne

Inteligjenca artificiale

Kuptimi i parametrave të modelit të gjuhës së madhe dhe kërkesave të kujtesës: Një zhytje e thellë

mm

Publikuar

 on

Llogaritja e parametrave në LLM-të e bazuara në transformator

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

Transformatorë-arkitekturë

Arkitektura e transformatorëve

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

  1. Vëmendje me shumë kokë: Mundëson modelin të fokusohet në pjesë të ndryshme të sekuencës hyrëse njëkohësisht.
  2. Rrjetet Neurale Feed-Forward: Shton jolinearitet dhe kompleksitet në model.
  3. Normalizimi i shtresave: Stabilizon dhe përshpejton stërvitjen duke normalizuar rezultatet e ndërmjetme.

Llogaritja e numrit të parametrave

Trajnim Transformator

Modele të paratrajnuara për trajnim efikas të transformatorëve

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.

  1. Shtresa e ngulitjes:
    • Parametrat = vocab_size * d_model
  2. Vëmendje me shumë kokë:
    • Për h kokat, me d_k = d_v = d_model / h:
    • Parametrat = 4 * d_model^2 (për Q, K, V dhe projeksionet e daljes)
  3. Rrjeti Feed-Forward:
    • Parametrat = 2 * d_model * d_ff + d_model + d_ff
    • Ku d_ff është zakonisht 4 * d_model
  4. Normalizimi i shtresave:
    • Parametrat = 2 * d_model (për shkallën dhe paragjykimin)

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 = 768
  • h (numri i kokave të vëmendjes) = 12
  • N (numri i shtresave) = 12
  • vocab_size = 50,000
  1. Shtresa e ngulitjes:
    • 50,000 * 768 = 38,400,000
  2. Vëmendje me shumë kokë:
    • 4 * 768^2 = 2,359,296
  3. Rrjeti Feed-Forward:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. 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:

  1. Kujtesa e modelit: Kujtesa e nevojshme për të ruajtur parametrat e modelit.
  2. 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:

  1. Peshat e modelit: FP32 kopje të parametrave të modelit, që kërkojnë 4N bajt, ku N është numri i parametrave.
  2. Shtetet e optimizuesit: Për optimizuesin Adam, kjo kërkon 8N bajt (2 gjendje për parametër).
  3. gradients: Kopje FP32 të gradientëve, që kërkojnë 4N bajt.
  4. 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ë:

  1. 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).
  2. 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
  3. Blloku i furnizimit përpara:
    • Shtresa e parë lineare: 2E bytes
    • Aktivizimi GELU: 8E bytes
    • Shtresa e dytë lineare: 2E bytes
  4. 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:

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.