ГоловнаСтаттіНейронні мережі: Квантизація – стиснення моделей для Edge AI

Нейронні мережі: Квантизація – стиснення моделей для Edge AI

Кожна нейронна мережа починається зі мільйонів чисел з плаваючою комою, точних, але громіздких. Квантизація — це розумний трюк, який стискає ці числа в легкі цілі, дозволяючи потужним моделям штучного інтелекту працювати безперешкодно на телефоні у вашій кишені, а не в центрі обробки даних.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Вартість повноцінної точності

Штучні нейронні мережі зазвичай навчаються, використовуючи 32-бітні числа з плаваючою комою, які забезпечують величезний діапазон числових значень та точність для делікатного процесу градієнтного спуску. Однак ця точність дорога: модель з 100 мільйонів параметрів потребує приблизно 400 мегабайт лише для зберігання ваг, і кожне множення під час висновування споживає реальну енергію та час. На смартфоні, смарт-годиннику або мікроконтролері з обмеженим обсягом пам’яті, який потрібно захистити від розряду батареї, та без системи охолодження, цей надлишок може зробити моделі повноцінної точності просто непрактичними для запуску. Зменшення цього розміру без втрати інтелекту, який модель навчилася, стало однією з центральних проблем при розгортанні штучного інтелекту на краю (edge).

Визначення значень плаваючого числа в цілі

Квантування працює шляхом перетворення безперервного діапазону значень плаваючого коафіцієнту у шарі на невеликий, фіксований набір дискретних цілих рівнів, найчастіше 8-бітних цілих чисел, які пропонують 256 можливих значень. Це перетворення використовує коефіцієнт масштабування та нульову точку, разом визначаючи просту лінійну формулу для перетворення між оригінальним діапазоном плаваючого числа та цілим сітчастиком, і навпаки під час обчислень. Вигода є значною: 8-бітні ваги потребують лише чверті пам'яті 32-бітових чисел з плаваючою коафіцієнтом, а арифметичні операції цілих чисел виконуються швидше та ефективніше на більшості процесорів, включаючи спеціалізовані нейронні прискорювачі, які знаходяться в сучасних телефонах. Вартість - втрата чисельної точності, оскільки багато сусідніх значень плаваючого числа тепер стискаються в один цілий рівень.

Посттренінг vs Квантизаційно-усвідомлене Навчання

Існує два основних шляхи до квантованого моделі. Посттренінг квантизація (PTQ) бере вже навчену, повноточну модель та перетворює її ваги та активації на менш точні після цього, використовуючи невеликий калібрувальний набір даних для вибору хороших коефіцієнтів масштабування; це швидко і не потребує перенавчання, але точність може знизитися, особливо при дуже низьких бітових ширинах. Квантизаційно-усвідомлене навчання (QAT) замість цього моделює помилки округлення, пов'язані з квантуванням, під час самого процесу навчання мережі, щоб ваги мережі коригувалися для компенсації цього шуму під час навчання. QAT зазвичай зберігає значно більшу точність при 8-бітовому або навіть 4-бітовому рівні точності, але це вимагає додаткового часу на навчання та складності.

Оптимізація нейронних мереж для мобільного ШІ

Квантизація є ключовою причиною того, що ваш телефон може працювати з такими функціями, як розпізнавання облич без підключення, автоматичне підпис до фотографій, розпізнавання мовлення та виявлення сцени камери миттєво та офлайн, не надсилаючи дані в хмару. Вона також лежить в основі ШІ на розумних камерах, слухових апаратах та мініатюрних вбудованих мікроконтролерах, які працюють з такими фреймворками, як TensorFlow Lite. Однак існують певні компроміси: надмірне зменшення бітової ширини (наприклад, 4-біт або бінарна) може помітно знизити точність, а також перша та остання шари мережі схильні до значно більших помилок квантизації, ніж шари між ними. Інженери часто використовують змішування точності в межах моделі, зберігаючи чутливі шари з вищою точністю, а решту агресивно квантують, щоб збалансувати ефективність та втрати точності.

Frequently asked questions

Чи завжди квантування зменшує точність?

Не завжди помітно. Для багатьох моделей 8-бітне квантування після навчання викликає лише незначне, часто непомітне зниження точності, тоді як перехід до 4 біт або нижче зазвичай потребує квантування-усвідомленого навчання, щоб підтримувати прийнятну продуктивність. Вплив значною мірою залежить від архітектури моделі та від того, які шари квантуються.

Чому використовувати цілі числа замість менших чисел з плаваючою комою?

Арифметичні операції з цілими числами зазвичай швидші та енергоефективніші, ніж арифметичні операції з плаваючою комою на більшості апаратних пристроїв, і багато периферійних чипів мають окремі прискорювачі для цілих чисел. Цілі числа також більш передбачувано стискаються та добре узгоджуються з фіксованими малюнками пам'яті, що використовуються в вбудованих системах, тому INT8 став галузевим стандартом для розгортання на краю.

Що таке нульовий пункт у квантуванні?

Нульовий пункт — це ціле зміщення, яке використовується разом із коефіцієнтом масштабування, щоб правильно представляти нуль у квантованому діапазоні, що важливо, оскільки багато операцій нейронних мереж, таких як активації ReLU та заповнення, покладаються на точні нульові значення. Без належного нульового пункту ці операції були б спотворені після квантування.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Neural Network Quantization: Shrinking Models for Edge AI і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Neural Network Quantization: Shrinking Models for Edge AI

Що ви знайшли?

Додати кроки відтворення (опційно)