AI-mallit ja alustat
Suurten kielen mallien parametreja ja muistivaatimuksia: Syvä analyysi

Tekijä
Aayush Mittal Mittal
Suuret kielen mallit (LLM) ovat kehittyneet merkittävästi viime vuosina. Mallit kuten GPT-4, Google’ (GOOGL ) n Gemini ja Claude 3 ovat asettaneet uudet standardit kykyjen ja sovellusten suhteen. Nämä mallit eivät ainoastaan paranna tekstien luomista ja kääntämistä, vaan myös murtavat uusia polkuja monimodaalisessa prosessoinnissa, yhdistäen tekstin, kuvan, äänen ja videon syötteitä 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 erinomaisia moninaisten tietotyyppien käsittelyssä, mukaan lukien teksti, kuva ja ääni, mahdollistaen sulavammat ja kontekstuaalisesti relevantit vuorovaikutukset. Vastaavasti, Anthropicin Claude 3 -mallit ovat tunnettuja monikielisistä kyvyistään ja parantuneista suorituskyvystään tekoälytehtävissä.
Suurten kielen mallien kehitys jatkuu kiihtyvällä tahdilla, ja näiden mallien yksityiskohtien, erityisesti parametrejä ja muistivaatimuksia, ymmärtäminen muodostuu tärkeäksi. Tämä opas pyrkii selventämään näitä aspekteja, tarjoten yksityiskohtaisen ja helppotajuisen selityksen.
Suurten kielen mallien perusteet
Mitä ovat suuret kielen mallit?
Suuret kielen mallit ovat neurverkkoja, jotka on koulutettu massiivisilla tietokannoilla ymmärtämään ja luomaan ihmisten kieltä. Ne perustuvat arkkitehtuureihin kuten Transformer, joka käyttää mekanismeja kuten itsehuomiota prosessoidakseen ja tuottaa tekstiä.
Parametrien merkitys LLM:ssä
Parametrit ovat näiden mallien ydinosa. 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” -tutkimuksessa Vaswani et al. (2017), on muodostunut monien LLM:n perustaksi. Se koostuu kooderista ja dekooderista, joista kumpikin koostuu useista identtisistä kerroksista.
Kooderi- ja dekooderikomponentit
- Kooderi: Käsittelee syötejonon ja luo kontekstiaavuttavan edustuksen.
- Dekooderi: Luo tulostejonon kooderin edustuksen ja aiemmin luotujen tokenien avulla.
Avainrakenteet
- Monipäinen huomio: Mahdollistaa mallille keskittyä useisiin syötejonon osiin samanaikaisesti.
- Syöttöverkko: Lisää epälineaarisuutta ja monimutkaisuutta malliin.
- Kerrostasapaino: Stabiloi ja kiihdyttää koulutusta normalisoiden välimuotoiset tulokset.
Parametrien laskeminen
Parametrien laskeminen Transformer-pohjaisissa LLM:ssä
Hajotetaan parametrien laskeminen kullekin Transformer-pohjaisen LLM:n komponentille. Käytetään alkuperäisen tutkimuksen merkintätapaa, jossa d_model edustaa mallin piilotilan ulottuvuutta.
- Upotuskerros:
- Parametrit =
vocab_size*d_model
- Parametrit =
- Monipäinen huomio:
- h-päiden kohdalla, joilla
d_k = d_v = d_model / h: - Parametrit = 4 *
d_model^2 (Q, K, V ja tulostusprojektioiden vuoksi)
- h-päiden kohdalla, joilla
- Syöttöverkko:
- Parametrit = 2 *
d_model*d_ff+d_model+d_ff - Jossa
d_ffon tyypillisesti 4 *d_model
- Parametrit = 2 *
- Kerrostasapaino:
- Parametrit = 2 *
d_model(skaalauksen ja harhan vuoksi)
- Parametrit = 2 *
Yhden Transformer-kerroksen parametrit:
Parameters_layer=Parameters_attention+Parameters_ffn+ 2 *Parameters_layernorm
Mallille, jossa on N kerroksia:
- Yhteensä parametrit =
N*Parameters_layer+Parameters_embedding+Parameters_output
Esimerkkilaskelma
Tarkastellaan mallia, jolla on seuraavat määritykset:
d_model= 768h(huomiopäiden määrä) = 12N(kerrosten määrä) = 12vocab_size= 50 000
- Upotuskerros:
- 50 000 * 768 = 38 400 000
- Monipäinen huomio:
- 4 * 768^2 = 2 359 296
- Syöttöverkko:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4 719 616
- Kerrostasapaino:
- 2 * 768 = 1 536
Yhden kerroksen parametrit:
- 2 359 296 + 4 719 616 + (2 * 1 536) = 7 081 984
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
Työskennellessä LLM:n kanssa on tärkeää tietää kaksi päätyyppiä muistin käytöstä:
- Mallin muisti: Muisti, joka vaaditaan mallin parametreja varten.
- Työmuisti: Muisti, jota tarvitaan inference- tai koulutusvaiheessa välimuotoisten aktivaatioiden, gradienttien ja optimoijan tilan tallentamiseen.
Mallin muistin laskeminen
Mallin muisti on suoraan liitetty parametreiden määrään. Jokainen parametri on tyypillisesti tallennettu 32-bittisen liukuluvun muodossa, vaikka jotkin mallit käyttävät sekoitettua tarkkuuden koulutusta 16-bittisillä liukuluvuilla.
Mallin muisti (tavu) = Parametrien määrä * Tavut per parametri
Esimerkkiparametrimäärällä 123 miljoonaa:
- 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, batch-koon ja jono pituuden mukaan. Karkea arvio työmuistille 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 tilan tallentamisen vuoksi:
Koulutusmuisti ≈ 4 * Mallin muisti
Esimerkkiparametrimäärällä:
- Inference-työmuisti ≈ 2 * 494 Mt = 988 Mt ≈ 1 Gt
- Koulutusmuisti ≈ 4 * 494 Mt = 1 976 Mt ≈ 2 Gt
Vakiotilan muistin käyttö ja huippumuistin käyttö
Kouluttaessa suuria kielen malleja Transformer-arkkitehtuurilla on tärkeää ymmärtää muistin käyttö. Jakaa muistin vaatimukset kahteen pääryhmään: vakiotilan muistin käyttö ja huippumuistin käyttö.
Vakiotilan muistin käyttö
Vakiotilan muistin käyttö koostuu seuraavista osista:
- Mallin painot: FP32-kopiot mallin parametreista, vaativat 4N tavua, missä N on parametreiden määrä.
- Optimoijan tila: Adam-optimoijalle vaaditaan 8N tavua (2 tilaa per parametri).
- Gradientit: FP32-kopiot gradienteista, vaativat 4N tavua.
- Syötedata: Olettaen int64-syötteitä, vaaditaan 8BD tavua, missä B on batch-koko ja D on syötteen ulottuvuus.
Yhteensä vakiotilan muistin käyttö voidaan arvioida:
- M_steady = 16N + 8BD tavua
Huippumuistin käyttö
Huippumuistin käyttö tapahtuu taannevässä vaiheessa, kun aktivaatiot tallennetaan gradienttien laskemista varten. Pääasialliset huippumuistin käyttäjät ovat:
- Kerrostasapaino: Vaatii 4E tavua per kerroksen, missä E = BSH (B: batch-koko, S: jono pituus, H: piilouttuvan tilan koko).
- Huomiolohko:
- QKV-laskelma: 2E tavua
- Huomio-matriisi: 4BSS tavua (S: jono pituus)
- Huomio-tulos: 2E tavua
- Syöttölohko:
- Ensimmäinen lineaarinen kerros: 2E tavua
- GELU-aktivaatio: 8E tavua
- Toinen lineaarinen kerros: 2E tavua
- Entropia-väli:
- Logiitit: 6BSV tavua (V: sanastikon koko)
Aktivaatiomuistin voidaan arvioida:
- M_act = L * (14E + 4BSS) + 6BSV tavua
Missä L on Transformer-kerrosten määrä.
Yhteensä huippumuistin käyttö
Koulutuksen huippumuistin käyttö voidaan arvioida yhdistämällä vakiotilan muistin ja aktivaatiomuistin:
- M_peak = M_steady + M_act + 4BSV tavua
Lisäksi 4BSV-termi ottaa huomioon ylimääräisen varauksen taannevassa vaiheessa.
Näiden komponenttien ymmärtäminen mahdollistaa muistin käytön optimoinnin koulutuksessa ja inference-vaiheessa, varmistaa tehokkaan resurssien jakautumisen ja parantaa suurten kielen mallien suorituskykyä.
Skaalautumisen lait ja tehokkuuden huomioon otto
Skaalautumisen lait LLM:ssä
Tutkimukset ovat osoittaneet, että LLM:n suorituskyky seuraa tiettyjä skaalautumisen lakeja, kun parametreiden määrä kasvaa. Kaplan et al. (2020) havaitsivat, että mallin suorituskyky paranee voimakkaasti parametreiden määrän, laskentakapasiteetin ja tietokannan koosta riippuvana.
Mallin suorituskyky ja parametreiden määrä voidaan approksimoida seuraavasti:
Suorituskyky ∝ N^α
Missä N on parametreiden määrä ja α on skaalautumisen eksponentti, joka on tyypillisesti noin 0,07 kielimallinnuksessa.
Tämä tarkoittaa, että 10 prosentin suorituskyvyn parantamiseksi on tarpeen kasvattaa parametreiden määrää tekijällä 10^(1/α) ≈ 3,7.
Tehokkuuden parantamistekniikat
Koska LLM:t jatkavat kasvamistaan, tutkijat ja käytännön soveltajat ovat kehittäneet erilaisia tekniikoita tehokkuuden parantamiseksi:
a) Sekoitettu tarkkuuden koulutus: Käyttäen 16-bittisiä tai jopa 8-bittisiä liukulukuja tietyissä operaatioissa vähentääksesi muistin käytön ja laskennan vaatimuksia.
b) Mallin rinnakkaisuus: Jakauttamalla malli useille GPU:ille tai TPU:ille voidaan käsitellä suurempia malleja kuin mitä yksittäinen laite voi hallita.
c) Gradienttien väliaikainen tallennus: Kauppaamalla laskentaa muistia vastaan, laskemalla tietyt aktivaatiot uudelleen taannevassa vaiheessa sen sijaan, että ne tallennettaisiin.
d) Harvennus ja kvantisaatio: Poistamalla vähemmän tärkeitä painoja tai vähentämällä niiden tarkkuutta koulutuksen jälkeen voidaan luoda pienempiä, tehokkaampia malleja.
e) Tislaus: Kouluttamalla pienempiä malleja jäljittelemään suurempien mallien käyttäytymistä, mahdollisesti säilyttäen suurimman osan suorituskyvystä vähemmällä parametreilla.
Praktinen esimerkki ja laskelmat
GPT-3, yksi suurimmista kielen malleista, sisältää 175 miljardia parametriä. Se käyttää Transformer-arkkitehtuurin dekooderiosaa. Ymmärtääksemme sen mittakaavaa, hajotetaan parametrien määrä hypoteettisilla arvoilla:
d_model = 12288d_ff = 4 * 12288 = 49152- kerrosten määrä = 96
Yhden dekooderikerroksen osalta:
Yhteensä parametrit = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1,1 miljardia
Yhteensä 96 kerrokselle:
1,1 miljardia * 96 = 105,6 miljardia
Loput parametrit tulevat upotuksesta ja muista osista.
Johtopäätös
Suurten kielen mallien parametrien ja muistivaatimusten ymmärtäminen on tärkeää näiden voimakkaiden työkalujen tehokkaalle suunnittelulle, koulutukselle ja käyttöönotolle. Purkamalla Transformer-arkkitehtuurin komponentit ja tarkastelemalla käytännön esimerkkiä kuten GPT:stä, saadaan syvempi ymmärrys näiden mallien monimutkaisuudesta ja mittakaavasta.
Lisätietoa suurten kielen mallien uusimmista kehityksistä ja sovelluksista löytyy seuraavista kattavista oppaista:
- Tutustu Gemma 2 -oppaaseen: Google’n uuteen avoimeen suureen kielen malliin ja sen parantuneista ominaisuuksista ja innovaatioista.
- Lue LLM-välikäsittelyagenttien rakentamisesta alusta alkaen ja siitä eteenpäin: Kattava opas, joka käsittelee haasteita ja ratkaisuja hakuvälikäsittelemisessä.
- Opettele asettamaan koulutuksen, hienosäätöä ja päätöksentekoa suurten kielen mallien kanssa NVIDIA:n GPU:illa ja CUDA:lla (NVDA ) tekoälyjärjestelmien optimoimiseksi.
Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.
Löydä lisää


Jos Botti voi Flirttaa Lasten Kanssa, Mitä Muuta Se On Sallittu Tekemään Sinun Tietojen Kanssa?


Miten huijata voidaan absurdit tieteelliset artikkelit AI-arvioijien ohi


Tekoälymallit suosivat ihmisten kirjoittamaa tekstiä tekoälyllä generoituun tekstiin


MoE-vallankumous: Miten edistynyt reititys ja erikoistuminen muuttavat LLM: iä


Lopettamassa oleva mittakaava-aikakausi: Miksi algoritmiset läpimurrot ovat tärkeämpiä kuin mallin koko


Miksi tekoäly ei voi vain myöntää, ettei se tiedä vastausta?

