Что такое квантирование в нейросетевых моделях простым языком?
Если совсем просто это zip архив для модели, но работающий не на сжатии данных, а на уменьшения битности представления чисел. При этом качество теряется не сильно (5-15%)
Нейросети изначально обучают с высокой точностью чисел — обычно FP32 (float32) или FP16 (float16). Каждый параметр (число-вес) занимает:
- FP32: 4 байта
- FP16/BF16: 2 байта
Квантование:
- INT8: 1 байт (8 бит) на параметр
- INT4: 0.5 байта (4 бита) на параметра
- INT3/INT2: ещё меньше
Оригинал (FP16): [0.345, -0.892, 1.234, -0.001] Квантовано (INT8): [44, -114, 158, 0] # После масштабирования
Llama 3 8B в FP16: 8 млрд параметров × 2 байта = 16 ГБ Llama 3 8B в Q4_K_M: 8 млрд × 0.5 байта ≈ 4 ГБ