Kunstig intelligens
ForstÄelse av store sprÄkmodellers parametre og minnekrev: En dyptgÄende analyse

Av
Aayush Mittal Mittal
Store språkmodeller (LLM) har sett betydelige fremgang i de siste årene. Modeller som GPT-4, Google’s Gemini og Claude 3 setter nye standarder for kapasitet og anvendelser. Disse modellene forbedrer ikke bare tekstgenerering og oversettelse, men bryter også ny grund i multimodal prosessering, kombinert tekst, bilde, lyd og videoinndata for å gi mer omfattende AI-løsninger.
For eksempel har OpenAI’s GPT-4 vist betydelige forbedringer i forståelse og generering av menneske-lignende tekst, mens Google’s Gemini-modeller excellerer i å håndtere ulike datatyper, inkludert tekst, bilder og lyd, og muliggjør mer sammenhengende og kontekstuell relevante interaksjoner. Liksom Anthropic’s Claude 3-modeller er kjent for deres flerspråklige evner og forbedret ytelse i AI-oppdrag.
Ettersom utviklingen av LLM fortsatt akselererer, blir det viktig å forstå de intrikate aspektene av disse modellene, særlig deres parametre og minnekrev. Denne guiden har som mål å avmystifisere disse aspektene og tilby en detaljert og lettforståelig forklaring.
Grunnleggende aspekter av store språkmodeller
Hva er store språkmodeller?
Store språkmodeller er neurale nettverk trent på store datamengder for å forstå og generere menneskespråk. De avhenger av arkitekturer som Transformers, som bruker mekanismer som selv-oppmerksomhet for å prosessere og produsere tekst.
Parametrenes betydning i LLM
Parametrene er de grunnleggende komponentene av disse modellene. De inkluderer vekter og forvrengninger, som modellen justerer under trening for å minimere feil i prediksjoner. Antallet parametre korrelerer ofte med modellens kapasitet og ytelse, men påvirker også dens beregnings- og minnekrev.
Forståelse av Transformer-arkitektur
Overblik
Transformer-arkitekturen, introdusert i “Attention Is All You Need”-paperet av Vaswani et al. (2017), har blitt grunnlaget for mange LLM. Den består av en encoder og en decoder, hver bestående av flere identiske lag.
Encoder- og decoder-komponenter
- Encoder: Prosesserer inndata-sekvensen og skaper en kontekst-bevisst representasjon.
- Decoder: Genererer utdata-sekvensen ved hjelp av encoderens representasjon og tidligere genererte token.
Nøkkel-byggeklosser
- Multi-Head Attention: Muliggjør at modellen kan fokusere på ulike deler av inndata-sekvensen samtidig.
- Feed-Forward Neural Networks: Legger til ikke-lineærhet og kompleksitet til modellen.
- Layer Normalization: Stabiliserer og akselererer trening ved å normalisere mellomliggende utdata.
Beregning av antall parametre
Beregning av parametre i Transformer-baserte LLM
La oss bryte ned parameter-beregningen for hver komponent av en Transformer-basert LLM. Vi vil bruke notasjonen fra det originale papiret, der d_model representerer dimensjonen av modellens skjulte tilstander.
- Embedding-lag:
- Parametre =
vocab_size*d_model
- Parametre =
- Multi-Head Attention:
- For
hhoder, medd_k = d_v = d_model / h: - Parametre = 4 *
d_model^2 (for Q, K, V og utgangs-projeksjoner)
- For
- Feed-Forward Network:
- Parametre = 2 *
d_model*d_ff+d_model+d_ff - Der
d_ffvanligvis er 4 *d_model
- Parametre = 2 *
- Layer Normalization:
- Parametre = 2 *
d_model(for skala og forvrengning)
- Parametre = 2 *
Totalt antall parametre for ett Transformer-lag:
Parameters_layer=Parameters_attention+Parameters_ffn+ 2 *Parameters_layernorm
For en modell med N lag:
- Totalt antall parametre =
N*Parameters_layer+Parameters_embedding+Parameters_output
Eksempel-beregning
La oss betrakte en modell med følgende spesifikasjoner:
d_model= 768h(antall oppmerksomhets-hoder) = 12N(antall lag) = 12vocab_size= 50 000
- Embedding-lag:
- 50 000 * 768 = 38 400 000
- Multi-Head Attention:
- 4 * 768^2 = 2 359 296
- Feed-Forward Network:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4 719 616
- Layer Normalization:
- 2 * 768 = 1 536
Totalt antall parametre per lag:
- 2 359 296 + 4 719 616 + (2 * 1 536) = 7 081 984
Totalt antall parametre for 12 lag:
- 12 * 7 081 984 = 84 983 808
Totalt modell-parametre:
- 84 983 808 + 38 400 000 = 123 383 808
Denne modellen ville ha omtrent 123 millioner parametre.
Typer av minnekrev
Når vi arbeider med LLM, må vi betrakte to hovedtyper av minnekrev:
- Modell-minne: Minnet som kreves for å lagre modell-parametrene.
- Arbeidsminne: Minnet som trengs under inferens eller trening for å lagre mellomliggende aktiveringer, grader og optimizer-tilstander.
Beregning av modell-minne
Modell-minnet er direkte relatert til antall parametre. Hver parameter lagres vanligvis som en 32-bit flyttall, selv om noen modeller bruker blandet presisjonstrening med 16-bit flyttall.
Modell-minne (bytes) = Antall parametre * Bytes per parameter
For vår eksempel-modell med 123 millioner parametre:
- Modell-minne (32-bit) = 123 383 808 * 4 bytes = 493 535 232 bytes ≈ 494 MB
- Modell-minne (16-bit) = 123 383 808 * 2 bytes = 246 767 616 bytes ≈ 247 MB
Estimere arbeidsminne
Arbeidsminne-krev kan variere betydelig basert på den spesifikke oppgaven, batch-størrelse og sekvenslengde. En grov estimat for arbeidsminne under inferens er:
Arbeidsminne ≈ 2 * Modell-minne
Dette dekker lagring av både modell-parametre og mellomliggende aktiveringer. Under trening kan minnekrev være enda høyere på grunn av behovet for å lagre grader og optimizer-tilstander:
Trening-minne ≈ 4 * Modell-minne
For vår eksempel-modell:
- Inferens-arbeidsminne ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- Trening-minne ≈ 4 * 494 MB = 1 976 MB ≈ 2 GB
Steady-state minnekrev og peak minnekrev
Når vi trener store språkmodeller basert på Transformer-arkitekturen, er det viktig å forstå minnekrev for effektiv ressurs-tilordning. La oss bryte ned minnekrev i to hovedkategorier: steady-state minnekrev og peak minnekrev.
Steady-state minnekrev
Steady-state minnekrev består av følgende komponenter:
- Modell-vektorer: FP32-kopier av modell-parametrene, som krever 4N bytes, der N er antall parametre.
- Optimizer-tilstander: For Adam-optimizer, krever dette 8N bytes (2 tilstander per parameter).
- Grader: FP32-kopier av grader, som krever 4N bytes.
- Inndata: Anta int64-inndata, dette krever 8BD bytes, der B er batch-størrelse og D er inndata-dimensjon.
Totalt steady-state minnekrev kan estimeres som:
- M_steady = 16N + 8BD bytes
Peak minnekrev
Peak minnekrev skjer under bakover-passet når aktiveringer lagres for grad-komputasjon. Hoved-bidragene til peak minnekrev er:
- Layer Normalization: Krever 4E bytes per lag-normalisering, der E = BSH (B: batch-størrelse, S: sekvenslengde, H: skjult størrelse).
- Attention-blokk:
- QKV-komputasjon: 2E bytes
- Attention-matrise: 4BSS bytes (S: sekvenslengde)
- Attention-utgang: 2E bytes
- Feed-Forward-blokk:
- Første lineær lag: 2E bytes
- GELU-aktivering: 8E bytes
- Andre lineær lag: 2E bytes
- Cross-Entropy-tap:
- Logitt: 6BSV bytes (V: vokabular-størrelse)
Totalt aktiveringsminne kan estimeres som:
- M_act = L * (14E + 4BSS) + 6BSV bytes
Der L er antall Transformer-lag.
Totalt peak minnekrev
Peak minnekrev under trening kan estimeres som:
- M_peak = M_steady + M_act + 4BSV bytes
Den ekstra 4BSV-termen dekker en ekstra allokasjon i begynnelsen av bakover-passet.
Ved å forstå disse komponentene, kan vi optimere minnekrev under trening og inferens, og sikre effektiv ressurs-tilordning og forbedret ytelse av store språkmodeller.
Skalering og effisiens-overveielser
Skalering for LLM
Forskning har vist at ytelsen av LLM følger bestemte skalering-lover når antall parametre øker. Kaplan et al. (2020) observerte at modell-ytelse forbedres som en potens-lov av antall parametre, beregnings-budsjett og datamengde-størrelse.
Forholdet mellom modell-ytelse og antall parametre kan estimeres som:
Ytelse ∝ N^α
Der N er antall parametre og α er en skalering-eksponent vanligvis rundt 0,07 for språk-modellering-oppgaver.
Dette impliserer at for å oppnå en 10% forbedring av ytelse, må vi øke antall parametre med en faktor av 10^(1/α) ≈ 3,7.
Effisiens-teknikker
Ettersom LLM fortsatt vokser, har forskere og praktikere utviklet ulike tekniker for å forbedre effisiensen:
a) Blandet presisjonstrening: Bruker 16-bit eller selv 8-bit flyttall for visse operasjoner for å redusere minnekrev og beregnings-krav.
b) Modell-parallellisering: Fordeler modellen over flere GPU-er eller TPUs for å håndtere større modeller enn hva som kan passe på en enkelt enhet.
c) Gradient-sjekkpunkt: Bytter beregning mot minne ved å regenerere visse aktiveringer under bakover-passet i stedet for å lagre dem.
d) Pruning og kvantisering: Fjerner mindre viktige vekter eller reduserer deres presisjon etter trening for å skape mindre og mer effektive modeller.
e) Destillasjon: Trener mindre modeller for å etterligne atferden til større modeller, potensielt bevare mye av ytelsen med færre parametre.
Praktisk eksempel og beregninger
GPT-3, en av de største språkmodellene, har 175 milliarder parametre. Den bruker decoder-delen av Transformer-arkitekturen. For å forstå dens skala, la oss bryte ned parameter-tellingen med hypotetiske verdier:
d_model = 12288d_ff = 4 * 12288 = 49152- Antall lag = 96
For ett decoder-lag:
Totalt antall parametre = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1,1 milliard
Totalt for 96 lag:
1,1 milliard * 96 = 105,6 milliarder
De resterende parameterne kommer fra innlegg og andre komponenter.
Konklusjon
For å forstå parameterne og minnekrev til store språkmodeller er avgjørende for å designe, trene og distribuere disse kraftfulle verktøyene effektivt. Ved å bryte ned komponentene av Transformer-arkitekturen og undersøke praktiske eksempler som GPT, får vi en dypere innsikt i kompleksiteten og skalaen av disse modellene.
For å få en dypere forståelse av de nyeste fremgangene i store språkmodeller og deres anvendelser, se disse omfattende guidene:
- Utforsk den fullstendige guiden på Gemma 2: Google’s New Open Large Language Model for innsikt i dens forbedrede ytelse og innovative funksjoner.
- Lær om bygging av LLM-agenter for RAG fra scratch og utover: En omfattende guide som diskuterer utfordringer og løsninger i retrieval-augmentert generering.
- Oppdag intrikasjonene i innstilling av trening, finjustering og inferens av LLM med NVIDIA-GPU og CUDA for å optimere AI-systemer.
Jeg har brukt de siste fem Ärene pÄ Ä dykke ned i den fasiniserende verden av MaskinlÊring og Dypt LÊring. Min lidenskap og ekspertise har ledet meg til Ä bidra til over 50 ulike programvareprosjekter, med sÊrlig fokus pÄ AI/ML. Min pÄgÄende nysgjÞrhet har ogsÄ trukket meg mot Naturlig SprÄkbehandling, et felt jeg er ivrig etter Ä utforske videre.
You may like


Hvis en bot kan flirte med barn, hva ellers er den tillatt Ă„ gjĂžre med dine data?


Hvordan smugle absurd vitenskapelige artikler forbi AI-granskere


AI-modellene foretrekker menneskeskrevet tekst til AI-generert tekst


MoE-revolusjonen: Hvordan avansert ruting og spesialisering transformerer LLM-er


Enden pÄ skaleringsÊraen: Hvorfor algoritme-gennembrud betyder mere end modelstÞrrelse


Hvorfor kan ikke AI bare innrĂžmme at den ikke vet svaret?

