AI-mallit ja alustat

Suurten kielen mallien parametreja ja muistivaatimuksia: Syvä analyysi

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

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

Transformers-arkkitehtuuri

Transformers-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

  1. Monipäinen huomio: Mahdollistaa mallille keskittyä useisiin syötejonon osiin samanaikaisesti.
  2. Syöttöverkko: Lisää epälineaarisuutta ja monimutkaisuutta malliin.
  3. Kerrostasapaino: Stabiloi ja kiihdyttää koulutusta normalisoiden välimuotoiset tulokset.

Parametrien laskeminen

Transformer-koulutus

Esikoulutetut mallit tehokkaan Transformer-koulutuksen vuoksi

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.

  1. Upotuskerros:
    • Parametrit = vocab_size * d_model
  2. 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)
  3. Syöttöverkko:
    • Parametrit = 2 * d_model * d_ff + d_model + d_ff
    • Jossa d_ff on tyypillisesti 4 * d_model
  4. Kerrostasapaino:
    • Parametrit = 2 * d_model (skaalauksen ja harhan vuoksi)

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 = 768
  • h (huomiopäiden määrä) = 12
  • N (kerrosten määrä) = 12
  • vocab_size = 50 000
  1. Upotuskerros:
    • 50 000 * 768 = 38 400 000
  2. Monipäinen huomio:
    • 4 * 768^2 = 2 359 296
  3. Syöttöverkko:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4 719 616
  4. 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ä:

  1. Mallin muisti: Muisti, joka vaaditaan mallin parametreja varten.
  2. 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:

  1. Mallin painot: FP32-kopiot mallin parametreista, vaativat 4N tavua, missä N on parametreiden määrä.
  2. Optimoijan tila: Adam-optimoijalle vaaditaan 8N tavua (2 tilaa per parametri).
  3. Gradientit: FP32-kopiot gradienteista, vaativat 4N tavua.
  4. 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:

  1. Kerrostasapaino: Vaatii 4E tavua per kerroksen, missä E = BSH (B: batch-koko, S: jono pituus, H: piilouttuvan tilan koko).
  2. Huomiolohko:
    • QKV-laskelma: 2E tavua
    • Huomio-matriisi: 4BSS tavua (S: jono pituus)
    • Huomio-tulos: 2E tavua
  3. Syöttölohko:
    • Ensimmäinen lineaarinen kerros: 2E tavua
    • GELU-aktivaatio: 8E tavua
    • Toinen lineaarinen kerros: 2E tavua
  4. 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 = 12288
  • d_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:

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.