Middle+
Какво е квантизация в машинното обучение? Как се извършва квантизация от FP32 към INT8 — от число с плаваща запетая към цяло число?
sobes.tech AI
Отговор от AI
Квантизация в машинном обучении — это процесс преобразования чисел с плавающей точкой (обычно FP32) в числа с меньшей разрядностью, например, в целочисленные INT8. Это позволяет уменьшить размер модели и ускорить вычисления, особенно на устройствах с ограниченными ресурсами.
При квантизации из FP32 в INT8 происходит масштабирование и смещение значений:
- Определяется диапазон значений тензора (например, минимальное и максимальное значение).
- Вычисляется масштаб (scale) — коэффициент, который связывает диапазон FP32 с диапазоном INT8 (обычно от -128 до 127).
- Определяется смещение (zero-point), чтобы правильно отобразить нулевое значение FP32 в INT8.
- Каждое значение FP32 преобразуется по формуле:
INT8_value = round(FP32_value / scale) + zero_point
- При обратном преобразовании (де-квантизации) используется:
FP32_value = scale * (INT8_value - zero_point)
Таким образом, квантизация сохраняет приближённое значение исходных данных, но с меньшим размером и более простой арифметикой.