Quantization

Teknik til at reducere præcisionen af tal i en model for at mindske hukommelses- og beregningsbehov.

Kort fortalt

Quantization gør en AI-model mindre og hurtigere ved at bruge færre bits til at repræsentere dens vægte og beregninger.

Kategori
teknik
Niveau
øvet
Udtale
/ˌkwɒntɪˈzeɪʃən/

Betydninger

2
  1. 1

    Processen med at afbilde kontinuerte værdier til et diskret sæt af værdier, typisk ved at afrunde til nærmeste repræsentative niveau.

    • Quantization af et analogt signal introducerer kvantiseringsstøj.
  2. 2

    Reduktion af numerisk præcision (fx fra 32-bit floating point til 8-bit heltal) i modelvægte, aktiveringer eller gradienter for at mindske modelstørrelse og fremskynde inferens.

    • LLaMA-modellen blev kvantiseret til int8 for at kunne køre på en enkelt GPU.Dettmers et al., 2022
    • Post-training quantization kræver en lille kalibreringsdatasæt for at bestemme scale og zero-point.

Hvornår bruges det

Bruges typisk til at implementere store sprogmodeller på edge-enheder eller i produktion, hvor hukommelse og strøm er begrænset. Det kan anvendes efter træning (post-training quantization) eller under træning (quantization-aware training).

Formel

For int8 kvantisering: x_q = round(x / scale) + zero_point, hvor scale = (max-min)/255

Kodeeksempel

import torch
model = torch.nn.Linear(10, 5)
quantized_model = torch.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)

Dynamisk kvantisering af en lineær layer i PyTorch.

Oprindelse

Fra latin 'quantus' (hvor meget), via engelsk 'quantization'.

Afledte ord

3

Kilder

2