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

2

Kilder

2
  • LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
  • Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference