Квантуване (Quantization)
Квантуването (Quantization) е ключов метод за компресиране на модели в областта на дълбокото обучение, който преобразува теглата и активиранията на невронните мрежи от числа с висока точност към формат с по-ниска точност.
Принцип на действие
Обикновено невронните мрежи се обучават с помощта на 32-битови числа с плаваща запетая (FP32). При квантуването тези тегла се картографират и конвертират в по-компактни формати:
- FP16 / BF16: 16-битови числа с плаваща запетая.
- INT8: 8-битови цели числа.
- INT4 / INT3: Още по-ниски формати (4 или 3 бита), използвани главно за екстремно компресиране на големи езикови модели (LLMs).
Ползи от квантуването
- Намален размер на модела: Преходът от FP32 към INT8 намалява заеманата памет на диска и в RAM/VRAM четирикратно. Това позволява на големи модели да се събират в по-евтини потребителски или сървърни видеокарти.
- По-бързо изчисление (Inference): Повечето модерни графични (GPU) и специализирани (TPU/NPU) процесори изчисляват операции с ниска точност значително по-бързо.
- Енергийна ефективност: Операциите с по-малка разрядност консумират по-малко електрическа енергия, което е критично за мобилни устройства и големи центрове за данни.
Компромис с точността
Преобразуването на теглата в по-груб формат може да доведе до лека загуба на точност и влошаване на качеството на генерираните отговори. Поради това се използват напреднали алгоритми (като AWQ, GPTQ или SmoothQuant), които минимизират тази загуба.