Connect with us

Tekoäly

Syventymistila suurten kielen mallien parametreihin ja muistivaatimuksiin: Tarkastelua

mm
Calculating Parameters in Transformer-based LLMs

Suuret kielen mallit (LLM) ovat kehittyneet merkittävästi viime vuosina. Malleja kuten GPT-4, Google’n Gemini ja Claude 3 asettavat uudet standardit kyvyissä ja sovelluksissa. Nämä mallit parantavat tekstien luomista ja kääntämistä ja ovat myös mullistamassa monimodaalista prosessointia yhdistämällä teksti-, kuva-, ääni- ja videodataa tarjoamaan kattavampia tekoälyratkaisuja.

Esimerkiksi OpenAI:n GPT-4 on osoittanut merkittäviä parannuksia ymmärtäessään ja luodessaan ihmismäistä tekstiä, kun taas Google’n Gemini-mallit ovat erittäin kykeneviä käsittelemään monenlaisia tietoja, kuten tekstiä, kuvia ja ääntä, mahdollistaen sulavammat ja kontekstuaalisesti relevantimmat vuorovaikutukset. Vastaavasti Anthropicin Claude 3 -mallit tunnetaan monikielisistä kyvyistään ja parantuneesta suorituskyvystä tekoälytehtävissä.

Kun suurten kielen mallien kehitys jatkuu kiihtyvällä tahdilla, on tärkeää ymmärtää näiden mallien yksityiskohtia, erityisesti niiden parametreja ja muistivaatimuksia. Tämä opas pyrkii selventämään nämä asiat tarjoamalla yksityiskohtaisen ja helppotajuisen selityksen.

Suuret kielen mallien perusteet

Mikä ovat suuret kielen mallit?

Suuret kielen mallit ovat neurverkkoja, jotka on koulutettu massiivisilla tietojoukoilla ymmärtämään ja luomaan ihmisten kieltä. Ne perustuvat arkkitehtuureihin kuten Transformer, joka käyttää mekanismeja kuten itsehuomioita prosessoidakseen ja tuottamaan tekstiä.

Parametrien merkitys LLM:ssä

Parametrit ovat näiden mallien ydin. Ne sisältävät painot ja harhat, joita malli säätää koulutuksen aikana minimoidakseen virheitä ennusteissa. Parametrien määrä usein korreloi mallin kapasiteetin ja suorituskyvyn kanssa, mutta vaikuttaa myös laskennallisiin ja muistivaatimuksiin.

Transformer-arkkitehtuuri

Transformers-arkkitehtuuri

Transformers-arkkitehtuuri

Yleiskatsaus

Transformer-arkkitehtuuri, joka esiteltiin “Attention Is All You Need” -artikkelissa Vaswani et al. (2017), on muodostunut monien LLM:n perustaksi. Se koostuu koodurista ja dekooderista, joista kumpikin koostuu useista samanlaisista kerroksista.

Koodarin ja dekooderin komponentit

  • Koodari: Käsittelee syötteen ja luo kontekstiaavan edustajan.
  • Dekooderi: Luo tulostusjonon koodarin edustuksen ja aiemmin luotujen tokenien perusteella.

Avainrakenteet

  1. Monipäinen huomio: Mahdollistaa mallille keskittyä eri osiin syötteen jonoa samanaikaisesti.
  2. Syöttöneuraaliverkko: Lisää epälineaarisuutta ja monimutkaisuutta malliin.
  3. Kerrostasapaino: Stabiloi ja nopeuttaa koulutusta normalisoimalla välimuotoisia tuloksia.

Parametrien laskeminen

Transformer-koulutus

Esikoulutetut mallit Tehokkaan Transformer-koulutuksen vuoksi

Parametrien laskeminen Transformer-pohjaisissa LLM:ssä

Tutkitaan parametrien laskemista kullekin Transformerin komponentille. Käytämme merkintää alkuperäisestä artikkelista, jossa d_model edustaa mallin piilotilan ulottuvuutta.

  1. Upottamiskerros:
    • Parametrit = sanastokoko * d_model
  2. Monipäinen huomio:
    • Hänen h päät, d_k = d_v = d_model / h:
    • Parametrit = 4 * d_model^2 (Q:lle, K:lle, V:lle ja tulostusprojektioille)
  3. Syöttöneuraaliverkko:
    • Parametrit = 2 * d_model * d_ff + d_model + d_ff
    • Jossa d_ff on tyypillisesti 4 * d_model
  4. Kerrostasapaino:
    • Parametrit = 2 * d_model (skaalaukselle ja harhalle)

Yhteensä yhden Transformer-kerroksen parametrit:

  • Parametrit_kerros = Parametrit_huomio + Parametrit_ffn + 2 * Parametrit_layernorm

Mallille, jossa on N kerroksia:

  • Yhteensä Parametrit = N * Parametrit_kerros + Parametrit_upottaminen + Parametrit_tulostus

Esimerkkilaskelma

Tarkastellaan mallia, jolla on seuraavat määritykset:

  • d_model = 768
  • h (huomiopäiden lukumäärä) = 12
  • N (kerrosten lukumäärä) = 12
  • sanastokoko = 50 000
  1. Upottamiskerros:
    • 50 000 * 768 = 38 400 000
  2. Monipäinen huomio:
    • 4 * 768^2 = 2 359 296
  3. Syöttöneuraaliverkko:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4 719 616
  4. Kerrostasapaino:
    • 2 * 768 = 1 536

Yhteensä yhden kerroksen parametrit:

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

Yhteensä 12 kerroksen parametrit:

  • 12 * 7 081 984 = 84 983 808

Mallin yhteensä parametrit:

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

Tämä malli olisi noin 123 miljoonan parametrin suuruinen.

Muistin käytön tyypit

Kun työskentelet LLM:n kanssa, on tärkeää tarkastella kahta pääasiallista muistin käytön tyyppiä:

  1. Mallin muisti: Muisti, joka vaaditaan mallin parametreja varten.
  2. Työmuisti: Muisti, jota tarvitaan inference- tai koulutusvaiheessa välimuotoisten aktivaatioiden, gradienttien ja optimoijan tilojen tallentamiseen.

Mallin muistin laskeminen

Mallin muisti liittyy suoraan parametrien määrään. Kunkin parametrin tallennus tapahtuu tyypillisesti 32-bittisen liukuluvun muodossa, vaikka jotkut mallit käyttävät sekoitettua tarkkuutta koulutuksessa 16-bittisillä liukuluvuilla.

Mallin muisti (tavu): Parametrien määrä * Tavut per parametri

Esimerkkiparametrimme mallille, jossa on 123 miljoonaa parametria:

  • Mallin muisti (32-bitti) = 123 383 808 * 4 tavua = 493 535 232 tavua ≈ 494 Mt
  • Mallin muisti (16-bitti) = 123 383 808 * 2 tavua = 246 767 616 tavua ≈ 247 Mt

Työmuistin arvioiminen

Työmuistin vaatimukset voivat vaihdella merkittävästi tehtävän, erän koon ja jonon pituuden mukaan. Karkea arvio työmuistista inference-vaiheessa on:

Työmuisti ≈ 2 * Mallin muisti

Tämä ottaa huomioon sekä mallin parametreja että välimuotoisia aktivaatioita. Koulutusvaiheessa muistin vaatimukset voivat olla vielä suuremmat gradienttien ja optimoijan tilojen tallentamisen vuoksi:

Koulutusmuisti ≈ 4 * Mallin muisti

Olen viettänyt viimeiset viisi vuotta uppoutumassa kiinnostavaan koneoppimisen ja syväoppimisen maailmaan. Intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut tekoäly/ML. Jatkuva uteliaisuuteni on myös ohjannut minua kohti luonnollisen kielen prosessointia, alaa jota haluan tutkia tarkemmin.