Spring til indhold
AI Ordbog

AI Ordbog

Batch size

Antallet af træningseksempler der processeres sammen i ét opdateringsskridt.

Kristian Primdal Skrevet og redigeret af Kristian Primdal · Sidst opdateret 18. marts 2026

Indhold

Hvad er batch size?

Batch size er hvor mange træningseksempler modellen ser ad gangen før den opdaterer sine vægte. I stedet for at opdatere efter hvert enkelt eksempel (langsomt) eller efter hele datasættet (dyrt), processerer modellen en gruppe (en batch) og opdaterer baseret på gruppens samlede fejl.

Forestil dig en lærer der retter opgaver. Hun kan rette én opgave og straks ændre sin undervisning (batch size 1), rette alle 500 opgaver og derefter justere (batch size 500), eller rette 32 ad gangen og justere efter hver bunke (batch size 32). Den sidste tilgang balancerer mellem hurtig feedback og stabile konklusioner.

Hvordan fungerer det?

  1. Udtag en batch. Vælg f.eks. 64 tilfældige eksempler fra træningsdatasættet.
  2. Forward pass. Send alle 64 eksempler gennem modellen parallelt og beregn output for hvert.
  3. Loss-beregning. Mål fejlen for hvert eksempel og beregn gennemsnittet.
  4. Backward pass. Backpropagation beregner gradienter baseret på den gennemsnitlige fejl.
  5. Vægt-opdatering. Gradient descent opdaterer alle parametre baseret på de gennemsnitlige gradienter.
  6. Gentag. Næste batch. Fortsæt indtil alle eksempler er set (en epoch).

Gradienten for en batch er gennemsnittet af gradienterne for hvert enkelt eksempel i batchen. Det giver et mere stabilt signal end ét enkelt eksempel men er hurtigere end at beregne over hele datasættet.

Små vs. store batches

Lille batch size (8-64)

Fordele:

  1. Lavere hukommelsesforbrug. Færre eksempler i GPU-hukommelse ad gangen. Gør det muligt at træne store modeller på GPU’er med begrænset VRAM.
  2. Bedre generalisering. Støjende gradienter virker som en form for regularisering. Modellen overfitter mindre.
  3. Hyppigere opdateringer. Flere vægt-opdateringer per epoch. Modellen “lærer” oftere.

Ulemper:

  1. Støjende gradienter. 8 eksempler giver et upræcist estimat af den “sande” gradient. Modellen zigzagger mere.
  2. Dårlig GPU-udnyttelse. GPU’er er designet til parallel beregning. Små batches udnytter ikke GPU’ens fulde kapacitet.
  3. Langsommere per epoch. Flere opdateringer per epoch men hver udnytter GPU’en dårligere.

Stor batch size (512-8192+)

Fordele:

  1. Stabile gradienter. Gennemsnit over mange eksempler giver præcise gradienter. Mindre zigzag, jævnere træning.
  2. Bedre GPU-udnyttelse. GPU’ens parallelisme udnyttes fuldt. Mere compute per sekund.
  3. Hurtigere per epoch. Færre men mere effektive opdateringer.

Ulemper:

  1. Højt hukommelsesforbrug. Flere eksempler kræver mere GPU-hukommelse. Kan kræve flere GPU’er.
  2. Kan generalisere dårligere. For stabile gradienter mangler den regulariserende effekt af støj. Kan kræve ekstra regularisering.
  3. Kræver højere learning rate. Store batches kræver typisk en proportionelt højere learning rate for at konvergere.

Batch size og GPU-hukommelse

Batch size er ofte begrænset af GPU-hukommelse:

  1. Hvad fylder. For hvert eksempel i batchen gemmes: input, mellemresultater fra alle lag (activations), gradienter og optimizer-states.
  2. Stor model = lille batch. En 70B-parameter model efterlader meget lidt GPU-hukommelse til batches. Fine-tuning af store LLM’er kører typisk med batch size 1-4 per GPU.
  3. Lille model = stor batch. En 7B-model på en H100 GPU kan køre med batch size 32-64.
  4. Out of memory. Hvis du sætter batch size for høj, løber GPU’en tør for hukommelse og træningen crasher. Reducer batch size eller brug gradient accumulation.

Gradient accumulation

En teknik der simulerer store batches på GPU’er med begrænset hukommelse:

  1. Problemet. Du vil have effektiv batch size 256, men GPU’en kan kun holde 32 eksempler.
  2. Løsningen. Kør 8 forward-backward passes med batch size 32. Akkumuler (summer) gradienterne. Opdater vægtene efter alle 8 passes.
  3. Effekt. Matematisk identisk med batch size 256. GPU-hukommelsen bruges kun til 32 eksempler ad gangen.
  4. Tradeoff. Langsommere end en “ægte” stor batch fordi forward-backward passes kører sekventielt. Men muliggør store effektive batch sizes på begrænset hardware.

Typiske batch sizes

OpgaveTypisk batch sizeGrund
Pre-training af LLM1M-4M tokensMaksimal stabilitet og effektivitet
Fine-tuning af LLM4-64Lille datasæt, begrænset GPU-hukommelse
Billedklassifikation32-256Balancerer hastighed og generalisering
Objektdetektion8-32Store billeder bruger meget hukommelse
GAN-træning16-128Stabilitet i adversarial træning
Reinforcement learning32-2048Varierer med miljøets kompleksitet

Batch size og learning rate

Batch size og learning rate er tæt forbundne:

Lineær skalering

En tommelfingerregel: når du fordobler batch size, fordobl learning rate.

  • Batch size 32, learning rate 0.001.
  • Batch size 64, learning rate 0.002.
  • Batch size 128, learning rate 0.004.

Hvorfor?

Større batches giver mere præcise gradienter. Med en lav learning rate tager modellen for små skridt i forhold til gradienternes pålidelighed. En højere learning rate udnytter den bedre gradient bedre.

Grænser

Lineær skalering holder ikke for vilkårligt store batches. Over en vis størrelse (afhænger af opgaven) giver yderligere forøgelse af batch size aftagende udbytte, og learning rate kan ikke skaleres proportionelt uden ustabilitet.

Warmup

Store batches kombineres typisk med learning rate warmup: start med lav learning rate og øg den gradvist over de første hundreder af steps. Det stabiliserer starten af træningen.

Batch size i sprogmodellers pre-training

Store sprogmodeller bruger ekstremt store batches:

  1. Effektiv batch size. Millioner af tokens per batch. Fordelt over tusindvis af GPU’er.
  2. Data parallelism. Hver GPU processerer sin del af batchen. Gradienter synkroniseres mellem GPU’er.
  3. Batch size ramp-up. Mange træningskørsler starter med lille batch size og øger den gradvist. Tidlige trin med små batches giver hurtig initial læring; sene trin med store batches giver stabil konvergens.
  4. Tokens, ikke eksempler. For LLM’er måles batch size ofte i tokens (f.eks. 4M tokens per batch) snarere end antal sekvenser.

Batch size i praksis

Fine-tuning med begrænset GPU

  1. Situation. Du vil fine-tune Llama 8B på en GPU med 24GB VRAM.
  2. Direkte batch size. Max 2-4 eksempler passer i hukommelsen.
  3. Gradient accumulation. Akkumuler over 8 steps → effektiv batch size 16-32.
  4. Resultat. Stabil træning med en batch size der giver meningsfulde gradienter.

Skalering til multi-GPU

  1. Situation. Træning af en billedmodel på 8 GPU’er.
  2. Per-GPU batch size. 32 eksempler per GPU.
  3. Global batch size. 32 × 8 = 256 eksempler per step.
  4. Learning rate. Skaleres op proportionelt med antal GPU’er.

Eksperimentel tuning

  1. Start. Batch size 32, learning rate 3e-4.
  2. Observation. Træningen er stabil men langsom.
  3. Forsøg 1. Batch size 128, learning rate 1.2e-3. Hurtigere, stadig stabil.
  4. Forsøg 2. Batch size 512, learning rate 4.8e-3. Lidt ustabil i starten → tilføj warmup.
  5. Endelig. Batch size 128 med warmup giver den bedste balance.

Specialtilfælde

Batch size 1 (online learning)

  1. Opdater vægte efter hvert eneste eksempel.
  2. Ekstremt støjende gradienter men stærk regulariserende effekt.
  3. Bruges sjældent i deep learning men har teoretiske fordele i visse scenarier.

Full-batch (hele datasættet)

  1. Beregn gradienter over alle eksempler.
  2. Perfekt gradient, ingen støj.
  3. Kun praktisk for meget små datasæt. For millioner af eksempler er det umuligt.

Dynamisk batch size

  1. Start med lille batch size (hurtig læring i starten).
  2. Øg gradvist (stabil konvergens mod slutningen).
  3. Bruges af flere state-of-the-art træningskørsler.

Batch size er afvejningen mellem stabilitet og effektivitet For lille, og gradienterne er for støjende til at modellen kan lære stabilt. For stor, og du spilder GPU-hukommelse og kan miste den regulariserende effekt af støj. Den rette batch size afhænger af din model, din hardware og din opgave. Men princippet er simpelt: find den størrelse der giver stabile gradienter, udnytter din GPU godt og generaliserer til nye data. I praksis er batch size ofte den hyperparameter der først bestemmes af hardware-begrænsninger og derefter finjusteres for optimal kvalitet.


FAQ

Hvad er batch size?

Batch size er antallet af træningseksempler en AI-model processerer sammen i ét trin, før den opdaterer sine parametre. En batch size på 64 betyder at modellen ser 64 eksempler, beregner den gennemsnitlige fejl og justerer sine vægte baseret på den.

Hvad er den bedste batch size?

Der er ingen universel bedste batch size. Den afhænger af GPU-hukommelse, modelstørrelse og opgave. Typiske værdier er 32-256 for de fleste opgaver. Start med den største batch size din GPU kan håndtere og juster learning rate proportionelt.

Hvad er forskellen på batch size og epoch?

Batch size er antallet af eksempler per opdatering. En epoch er ét komplet gennemløb af hele datasættet. Med 10.000 eksempler og batch size 100 tager én epoch 100 batches (steps).

Hvad er gradient accumulation?

Gradient accumulation simulerer en stor batch size på hardware med begrænset hukommelse. I stedet for at processere 256 eksempler på én gang, processerer du 8 batches af 32 og summerer gradienterne før opdatering. Resultatet er matematisk identisk med batch size 256.


Relaterede termer