Tengja við okkur

Artificial Intelligence

Skilningur á stórum tungumálalíkönum og minniskröfum: Djúp kafa

mm

Útgefið

 on

Reikna færibreytur í Transformer-undirstaða LLMs

Stór tungumálalíkön (LLMs) hefur séð ótrúlegar framfarir á undanförnum árum. Líkön eins og GPT-4, Gemini frá Google og Claude 3 eru að setja nýja staðla í getu og forritum. Þessar gerðir eru ekki aðeins að auka textagerð og þýðingu heldur eru einnig að brjóta blað í fjölþættri vinnslu, sameina texta, mynd, hljóð og myndbandsinntak til að veita yfirgripsmeiri gervigreindarlausnir.

Til dæmis, OpenAI's GPT-4 hefur sýnt verulegar framfarir í skilningi og gerð mannslíkan texta, á meðan Gemini módel Google skara fram úr í meðhöndlun fjölbreyttra gagnategunda, þar á meðal texta, myndir og hljóð, sem gerir hnökralausari og samhengislega viðeigandi samskipti. Að sama skapi eru Claude 3 gerðir Anthropic þekktar fyrir fjöltyngda getu og aukna frammistöðu í gervigreindarverkefnum.

Þegar þróun LLMs heldur áfram að hraða, verður mikilvægt að skilja ranghala þessara líkana, sérstaklega breytur þeirra og minnisþörf. Þessi handbók miðar að því að afmáa þessa þætti og bjóða upp á nákvæma og auðskiljanlega skýringu.

Grunnatriði stórra tungumálalíkana

Hvað eru stór tungumálalíkön?

Stór tungumálalíkön eru taugakerfi sem eru þjálfuð á stórum gagnasöfnum til að skilja og búa til mannamál. Þeir treysta á arkitektúr eins og Transformers, sem nota kerfi eins og sjálfsathygli til að vinna og framleiða texta.

Mikilvægi færibreyta í LLM

Færibreytur eru kjarnaþættir þessara líkana. Þau innihalda þyngd og hlutdrægni, sem líkanið stillir á meðan á þjálfun stendur til að lágmarka villur í spám. Fjöldi færibreyta er oft í samræmi við getu og frammistöðu líkansins en hefur einnig áhrif á reikni- og minnisþörf þess.

Að skilja Transformer Architecture

Transformers-arkitektúr

Transformers arkitektúr

Yfirlit

Transformer arkitektúrinn, kynntur í „Attention Is All You Need“ grein eftir Vaswani o.fl. (2017), hefur orðið grunnurinn að mörgum LLMs. Það samanstendur af kóðara og afkóðara, sem hvert er gert úr nokkrum eins lögum.

Kóðunar- og afkóðarahlutir

  • kóðun: Vinnur úr inntaksröðinni og býr til samhengisvitaða framsetningu.
  • Leyniletri: Myndar úttaksröðina með því að nota framsetningu kóðarans og áður mynduðu táknin.

Helstu byggingareiningar

  1. Multi-Head Athygli: Gerir líkaninu kleift að einbeita sér að mismunandi hlutum inntaksröðarinnar samtímis.
  2. Feed-Forward taugakerfi: Bætir ólínuleika og margbreytileika við líkanið.
  3. Layer Normalization: Stöðugir og flýtir fyrir þjálfun með því að staðla milliafköst.

Útreikningur á fjölda færibreyta

Transformer þjálfun

Forþjálfaðar gerðir fyrir skilvirka spennuþjálfun

Reikna færibreytur í Transformer-undirstaða LLMs

Við skulum brjóta niður færibreytuútreikninginn fyrir hvern þátt í Transformer-undirstaða LLM. Við munum nota merkinguna frá upprunalegu blaðinu, þar sem d_model táknar vídd falinna ástands líkansins.

  1. Innfellingarlag:
    • Færibreytur = vocab_size * d_model
  2. Multi-Head Athygli:
    • fyrir h höfuð, með d_k = d_v = d_model / h:
    • Færibreytur = 4 * d_model^2 (fyrir Q, K, V og úttaksspár)
  3. Feed-Forward net:
    • Færibreytur = 2 * d_model * d_ff + d_model + d_ff
    • hvar d_ff er venjulega 4 * d_model
  4. Layer Normalization:
    • Færibreytur = 2 * d_model (fyrir mælikvarða og hlutdrægni)

Heildarfæribreytur fyrir eitt Transformer lag:

  • Parameters_layer = Parameters_attention + Parameters_ffn + 2 * Parameters_layernorm

Fyrir fyrirmynd með N lög:

  • Heildarfæribreytur = N * Parameters_layer + Parameters_embedding + Parameters_output

Dæmi um útreikning

Við skulum íhuga líkan með eftirfarandi forskriftum:

  • d_model = 768
  • h (fjöldi athyglishausa) = 12
  • N (fjöldi laga) = 12
  • vocab_size = 50,000
  1. Innfellingarlag:
    • 50,000 * 768 = 38,400,000
  2. Multi-Head Athygli:
    • 4 * 768^2 = 2,359,296
  3. Feed-Forward net:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. Layer Normalization:
    • 2 * 768 = 1,536

Heildarfæribreytur á hverju lagi:

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

Heildarfæribreytur fyrir 12 lög:

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

Heildarfæribreytur líkans:

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

Þetta líkan myndi hafa um það bil 123 milljónir breytur.

Tegundir minnisnotkunar

Þegar við vinnum með LLM, þurfum við að huga að tvenns konar minnisnotkun:

  1. Fyrirmyndarminni: Minni sem þarf til að geyma færibreytur líkansins.
  2. Vinnsluminni: Minnið sem þarf við ályktun eða þjálfun til að geyma millivirkjanir, halla og fínstillingarstöðu.

Að reikna líkanminni

Minni líkansins er beintengt fjölda breytu. Hver færibreyta er venjulega geymd sem 32-bita flottala, þó að sumar gerðir noti blandaða nákvæmniþjálfun með 16-bita flotum.

Gerðminni (bæti) = Fjöldi færibreyta * Bæti á færibreytu

Fyrir dæmið okkar með 123 milljón breytum:

  • Gerðminni (32-bita) = 123,383,808 * 4 bæti = 493,535,232 bæti ≈ 494 MB
  • Gerðminni (16-bita) = 123,383,808 * 2 bæti = 246,767,616 bæti ≈ 247 MB

Mat á vinnuminni

Kröfur um vinnsluminni geta verið verulega mismunandi eftir tilteknu verkefni, lotustærð og röð lengd. Gróft mat á vinnsluminni meðan á ályktun stendur er:

Vinnuminni ≈ 2 * Gerðminni

Þetta gerir ráð fyrir að geyma bæði líkanbreytur og millivirkjanir. Meðan á þjálfun stendur geta minnisþörfin verið enn meiri vegna nauðsyn þess að geyma halla og fínstillingarstöðu:

Þjálfunarminni ≈ 4 * Model Memory

Fyrir dæmið okkar:

  • Ályktunarvinnuminni ≈ 2 * 494 MB = 988 MB ≈ 1 GB
  • Þjálfunarminni ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB

Stöðugt minnisnotkun og hámarksminnisnotkun

Þegar þjálfað er stór tungumálalíkön byggð á Transformer arkitektúr er skilningur á minnisnotkun afar mikilvægur fyrir skilvirka úthlutun auðlinda. Við skulum skipta minnisþörfunum niður í tvo meginflokka: stöðugt minnisnotkun og hámarksminnisnotkun.

Stöðugt minnisnotkun

Stöðugt minnisnotkun samanstendur af eftirfarandi hlutum:

  1. Módelþyngd: FP32 afrit af færibreytum líkansins, sem krefjast 4N bæta, þar sem N er fjöldi færibreytna.
  2. Fínstillingarríki: Fyrir Adam fínstillinguna þarf þetta 8N bæti (2 ríki á hverja færibreytu).
  3. Yfirlit: FP32 afrit af halla, sem þarfnast 4N bæta.
  4. Inntaksgögn: Miðað við int64 inntak þarf þetta 8BD bæti, þar sem B er lotustærð og D er inntaksvídd.

Hægt er að áætla heildar minnisnotkun í stöðugu ástandi með því að:

  • M_steady = 16N + 8BD bæti

Hámarks minni notkun

Hámarksminnisnotkun á sér stað meðan á bakhliðinni stendur þegar virkjunar eru geymdar fyrir útreikning á halla. Helstu þátttakendur í hámarksminni eru:

  1. Layer Normalization: Krefst 4E bæta fyrir hvert lag norm, þar sem E = BSH (B: lotustærð, S: röð lengd, H: falin stærð).
  2. Athygli blokk:
    • QKV útreikningur: 2E bæti
    • Athyglisfylki: 4BSS bæti (S: lengd röð)
    • Athyglisframleiðsla: 2E bæti
  3. Feed-Forward blokk:
    • Fyrsta línulega lagið: 2E bæti
    • GELU virkjun: 8E bæti
    • Annað línulegt lag: 2E bæti
  4. Cross-entropy tap:
    • Innskráningar: 6BSV bæti (V: stærð orðaforða)

Heildar virkjunarminni má áætla sem:

  • M_act = L * (14E + 4BSS) + 6BSV bæti

Þar sem L er fjöldi spennulaga.

Heildarhámarksminninotkun

Hægt er að ná hámarksminnisnotkun meðan á þjálfun stendur með því að sameina stöðugt minni og virkjunarminni:

  • M_peak = M_steady + M_act + 4BSV bæti

Viðbótartímabilið 4BSV gerir ráð fyrir aukaúthlutun í upphafi afturábaks.

Með því að skilja þessa þætti getum við fínstillt minnisnotkun við þjálfun og ályktanir, tryggt skilvirka úthlutun auðlinda og bætta frammistöðu stórra tungumálalíkana.

Skalalög og hagkvæmnisjónarmið

 Stærðarlög fyrir LLM

Rannsóknir hafa sýnt að frammistaða LLMs hefur tilhneigingu til að fylgja ákveðnum stærðarlögmálum eftir því sem breytum fjölgar. Kaplan o.fl. (2020) tók fram að afköst líkans batna sem kraftlögmál fjölda færibreyta, reikna fjárhagsáætlun og stærð gagnasafns.

Sambandið á milli frammistöðu líkans og fjölda færibreyta er hægt að nálgast með því að:

Afköst ∝ N^α

Þar sem N er fjöldi færibreytna og α er mælikvarði, venjulega um 0.07 fyrir mállíkanaverkefni.

Þetta gefur til kynna að til að ná 10% framförum í frammistöðu þurfum við að fjölga færibreytum um stuðulinn 10^(1/α) ≈ 3.7.

Skilvirkni tækni

Eins og LLMs halda áfram að vaxa, hafa vísindamenn og sérfræðingar þróað ýmsar aðferðir til að bæta skilvirkni:

a) Blandað nákvæmnisþjálfun: Notkun 16-bita eða jafnvel 8-bita fljótandi tölur fyrir ákveðnar aðgerðir til að draga úr minnisnotkun og reikningskröfum.

b) Fyrirmynd Parallelism: Dreifir líkaninu á marga GPU eða TPU til að takast á við stærri gerðir en rúmast í einu tæki.

c) Gradient Checkpointing: Viðskiptaútreikning fyrir minni með því að endurreikna ákveðnar virkjanir á meðan á afturábakinu stendur í stað þess að geyma þær.

d) Snyrting og magngreining: Að fjarlægja minna mikilvægar lóðir eða draga úr nákvæmni þeirra eftir þjálfun til að búa til smærri, skilvirkari gerðir.

e) Eimingu: Þjálfa smærri líkön til að líkja eftir hegðun stærri, hugsanlega varðveita mikið af frammistöðu með færri breytum.

Hagnýtt dæmi og útreikningar

GPT-3, eitt stærsta tungumálalíkanið, hefur 175 milljarða færibreytur. Það notar afkóðara hluta Transformer arkitektúrsins. Til að skilja mælikvarða þess skulum við sundurliða fjölda færibreytu með tilgátum gildum:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • Fjöldi laga = 96

Fyrir eitt afkóðaralag:

Heildarfæribreytur = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 milljarður

Samtals fyrir 96 lög:

1.1 milljarður * 96 = 105.6 milljarðar

Eftirstöðvarnar koma frá innfellingu og öðrum hlutum.

Niðurstaða

Skilningur á breytum og minniskröfum stórra tungumálalíkana er lykilatriði til að hanna, þjálfa og nota þessi öflugu verkfæri á áhrifaríkan hátt. Með því að brjóta niður þætti Transformer arkitektúrs og skoða hagnýt dæmi eins og GPT, fáum við dýpri innsýn í flókið og umfang þessara líkana.

Til að skilja frekar nýjustu framfarirnar í stórum tungumálalíkönum og forritum þeirra, skoðaðu þessar ítarlegu leiðbeiningar:

Ég hef eytt síðustu fimm árum í að sökkva mér niður í heillandi heim vélanáms og djúpnáms. Ástríða mín og sérfræðiþekking hefur leitt mig til að leggja mitt af mörkum til yfir 50 fjölbreyttra hugbúnaðarverkefna, með sérstakri áherslu á gervigreind/ML. Áframhaldandi forvitni mín hefur einnig dregið mig að náttúrulegri málvinnslu, svið sem ég er fús til að kanna frekar.