Tekoäly
Syventymistila suurten kielen mallien parametreihin ja muistivaatimuksiin: Tarkastelua
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
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
- Monipäinen huomio: Mahdollistaa mallille keskittyä eri osiin syötteen jonoa samanaikaisesti.
- Syöttöneuraaliverkko: Lisää epälineaarisuutta ja monimutkaisuutta malliin.
- Kerrostasapaino: Stabiloi ja nopeuttaa koulutusta normalisoimalla välimuotoisia tuloksia.
Parametrien laskeminen
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.
- Upottamiskerros:
- Parametrit =
sanastokoko*d_model
- Parametrit =
- Monipäinen huomio:
- Hänen
hpäät,d_k = d_v = d_model / h: - Parametrit = 4 *
d_model^2 (Q:lle, K:lle, V:lle ja tulostusprojektioille)
- Hänen
- Syöttöneuraaliverkko:
- Parametrit = 2 *
d_model*d_ff+d_model+d_ff - Jossa
d_ffon tyypillisesti 4 *d_model
- Parametrit = 2 *
- Kerrostasapaino:
- Parametrit = 2 *
d_model(skaalaukselle ja harhalle)
- Parametrit = 2 *
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= 768h(huomiopäiden lukumäärä) = 12N(kerrosten lukumäärä) = 12sanastokoko= 50 000
- Upottamiskerros:
- 50 000 * 768 = 38 400 000
- Monipäinen huomio:
- 4 * 768^2 = 2 359 296
- Syöttöneuraaliverkko:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4 719 616
- 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ä:
- Mallin muisti: Muisti, joka vaaditaan mallin parametreja varten.
- 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














