Квантування в контексті моделей штучного інтелекту — це метод стиснення нейронних мереж, при якому числа, що описують ваги та проміжні обчислення моделі, переводять із формату з високою точністю (зазвичай 32-бітні числа з рухомою комою, FP32) у формат з нижчою точністю — наприклад, 16-, 8- або навіть 4-бітні цілі числа. Мета цього процесу — зменшити розмір моделі, обсяг потрібної пам'яті та енергоспоживання, а також пришвидшити обчислення, зберігаючи при цьому якість роботи моделі максимально близькою до оригінальної.
Навіщо це потрібно Сучасні великі мовні моделі можуть мати десятки й сотні мільярдів параметрів. Наприклад, модель зі 70 мільярдами параметрів у форматі FP16 потребує близько 140 ГБ відеопам'яті, а після квантування до 4-бітного формату (INT4) та сама модель може займати лише 35–40 ГБ. Тому квантування — важлива технологія для локального запуску ШІ на персональних комп'ютерах і мобільних пристроях, а не лише на потужних серверах.
Принцип роботи Квантування засноване на факті стійкості нейронних мереж до шуму. Невелика втрата точності в числах зазвичай не сильно погіршує результат роботи мережі. Ваги й активації, які в оригіналі можуть приймати практично будь-яке значення з рухомою комою, замінюють на обмежений набір цілих чисел за допомогою масштабувального коефіцієнта — так, 8-бітне ціле число (INT8) дозволяє закодувати 256 різних значень замість практично нескінченної кількості варіантів у форматі з рухомою комою. Таким чином, зменшується обсяг пам'яті приблизно вчетверо порівняно з FP32 і дає змогу використовувати швидшу цілочисельну арифметику на більшості процесорів.
Розрізняють два основні підходи:
Квантування після навчання (Post-Training Quantization, PTQ) — модель спочатку навчають зі звичайною точністю, а потім переводять у стиснутий формат. Квантування під час навчання (Quantization-Aware Training, QAT) — модель від початку навчається з урахуванням майбутнього стиснення. Це часто дає кращу якість.
Примітки