Wat is Batchgrootte?

Aantal ingangen dat gezamenlijk wordt verwerkt. Een grotere batch maakt hergebruik van gewichten en dus hogere efficiëntie mogelijk, maar vergroot de vertraging van de respons en het geheugengebruik.

Japanse benaming: バッチサイズ

“Batchgrootte” komt voor in 6 oefenvragen uit 1 onderwerpen, bijv. AI-hardware en softwarestack.

Vakgebied: AI-hardware en softwarestack

Nu oefenen: vragen over Batchgrootte

Waarom is de berekening van een volledig verbonden laag (product van gewichtsmatrix en vector) gemakkelijk geheugenbegrensd wanneer er maar één ingang is (batchgrootte 1)?

  1. AOmdat het aantal elementen van de vector te groot is om in de rekeneenheden te passen
  2. BOmdat het product van een matrix en een vector niet op een GPU kan worden berekend
  3. COmdat elk uit het geheugen gelezen gewicht maar voor één multiply-accumulate wordt gebruikt, zodat de rekenintensiteit zeer laag is
Antwoord en toelichting tonen

Antwoord: C. Omdat elk uit het geheugen gelezen gewicht maar voor één multiply-accumulate wordt gebruikt, zodat de rekenintensiteit zeer laag is

Bij een matrix-vectorproduct wordt elk element van de gewichtsmatrix eenmaal gelezen en slechts eenmaal met één element van de ingang vermenigvuldigd en opgeteld. Bij FP16 zijn dat 2 bewerkingen per 2 bytes, een rekenintensiteit van circa 1. Het lezen van de gewichten kost tijd, terwijl de rekeneenheden grotendeels wachten. Als ingangen worden gebundeld (grotere batch) zodat hetzelfde gewicht voor meerdere ingangen wordt gebruikt, stijgt de rekenintensiteit.

Waarom neemt de efficiëntie van de totale verwerking bij inferentie gemakkelijk toe als de batchgrootte (het aantal gezamenlijk verwerkte ingangen) wordt vergroot?

  1. AOmdat bij meer ingangen het aantal berekeningen per ingang afneemt
  2. BOmdat bij een grotere batch het aantal gewichten afneemt
  3. COmdat eenmaal gelezen gewichten voor de berekening van meerdere ingangen kunnen worden gebruikt, waardoor de rekenintensiteit toeneemt en de rekeneenheden beter worden benut
Antwoord en toelichting tonen

Antwoord: C. Omdat eenmaal gelezen gewichten voor de berekening van meerdere ingangen kunnen worden gebruikt, waardoor de rekenintensiteit toeneemt en de rekeneenheden beter worden benut

Bij batchgrootte B wordt het product van de gewichtsmatrix en B vectoren het product van de gewichtsmatrix en een matrix met breedte B. Het lezen van de gewichten blijft gelijk terwijl het rekenwerk B maal zo groot wordt, zodat ook de rekenintensiteit ongeveer B maal zo groot wordt en de bewerking van geheugenbegrensd naar rekenbegrensd opschuift. Bij inferentie op servers wordt de GPU efficiënt benut door verzoeken van veel gebruikers gezamenlijk te verwerken.

“Batchgrootte” in de toelichting

Vragen met “Batchgrootte” (6)

  1. Waarom is de berekening van een volledig verbonden laag (product van gewichtsmatrix en vector) gemakkelijk geheugenbegrensd wanneer er maar één ingang is (batchgrootte 1)?
  2. Waarom neemt de efficiëntie van de totale verwerking bij inferentie gemakkelijk toe als de batchgrootte (het aantal gezamenlijk verwerkte ingangen) wordt vergroot?
  3. Welke uitspraak over het nadeel van een te grote batchgrootte bij inferentie is juist?
  4. Een model met circa 14 GB aan gewichten in FP16 wordt met batchgrootte 1 gedecodeerd op een GPU met een geheugenbandbreedte van 2 TB/s. Welke waarde benadert de ondergrens van de tijd om één token te genereren het best?
  5. Welke uitspraak over wat bij de inferentie van grote taalmodellen gemakkelijk een probleem wordt bij lange teksten of grote batches is juist?
  6. Welke uitspraak over gradient checkpointing (herberekening van activaties) bij training is juist?

Verwante termen

Inferentie (inference) Rekenintensiteit (arithmetic intensity) GPU KV-cache Doorvoer (throughput) Gradient checkpointing AI-compiler All-reduce Attention Backpropagatie

Naar de woordenlijst