int8 kvantisering
Præcisionsreduktion af modelvægte og aktiveringer til 8-bit heltalsværdier for at opnå lavere hukommelsesforbrug og hurtigere inferens.
Kort fortalt
En teknik der gør neurale netværk mindre og hurtigere ved at erstatte decimaltal med hele tal.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Kvantisering af et neuralt netværks parametre og aktiveringer til 8-bit heltal, typisk som en post-træningsoptimering for at reducere modelstørrelse og accelerere inferens uden væsentligt tab af præcision.
- Efter int8 kvantisering blev modellens hukommelsesforbrug reduceret med 75 %. — Eksempelkontekst
- Int8 kvantisering muliggør kørsel af store sprogmodeller på enheder med begrænset hukommelse. — Eksempelkontekst
Hvornår bruges det
Int8 kvantisering anvendes typisk under inferens efter træning (post-training quantization) for at optimere store sprogmodeller til implementering på ressourcebegrænsede enheder eller for at reducere latency i cloud-services. Det er også muligt at træne modeller med kvantisering in mente (quantization-aware training).
Formel
q = round(r / s) + z, r = s(q - z), where r is floating-point value, s is scale factor, z is zero-point, q is quantized integer.Kodeeksempel
import torch
model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)
# or for per-tensor quantization:
# x = torch.quantize_per_tensor(tensor, scale=0.1, zero_point=0, dtype=torch.qint8)Eksempel på dynamisk int8 kvantisering af et PyTorch-moduls lineære lag.
Oprindelse
int er en forkortelse for integer (heltal), 8 angiver antal bits, og kvantisering refererer til processen med at begrænse værdier til et diskret sæt.
Afledte ord
2Kilder
2- LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
- Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference