Урок 5 із 7
Квантування
7 хв читання
Велика відкрита модель потребує більше пам'яті, ніж є в більшості комп'ютерів. То як же її запускають на одному ігровому GPU чи навіть на ноутбуці?
Округли числа
Модель — це мільйони параметрів, тобто чисел, збережених із певною точністю, часто по 16 бітів кожне. Квантування зберігає їх грубіше: 8 бітів, 4 біти, іноді менше. Це як округлення. Уполовин біти на вагу — і приблизно вдвічі зменшиш потрібну моделі пам'ять, а заразом і прискориш її, бо менше даних доводиться рухати. Підступ один: округлиш надто сильно — і числа стануть такі грубі, що якість моделі попливе.
Квантування виміняє точність на розмір і швидкість. Менше бітів на вагу — менша й швидша модель: числа просто зберігаються грубіше.
Дешевий виграш, до певної межі
Несподіванка в тому, як мало якості втрачається спочатку. Перехід із 16 бітів на 8 часто майже безкоштовний; на 4 бітах зупиняється більшість тих, хто запускає великі моделі локально, — просідання невелике й зазвичай прийнятне. Опустися до зовсім низьких бітів — і падіння стає відчутним. Тож квантування — стандартний трюк, щоб утиснути модель у скромніше залізо: бери найбільшу модель, яку тягнеш, і квантуй, доки вона не влізе в пам'ять без надто великої шкоди якості.
Крива якості пласка, потім падає: 8 бітів майже без втрат, 4 біти — м'який компроміс, а дуже низькі біти ламають усе. Квантуй настільки, наскільки терпить задача — не далі.
Квантування міняє те, як зберігаються ваги, а не те, чого модель навчилася. Це не те саме, що менша модель, натренована з нуля: це та сама модель, лише стиснута. Після квантування перевіряй якість; наскільки далеко можна опуститися, залежить від моделі й задачі.
Суть коротко
- —Ваги зберігаються з певною точністю (часто 16 бітів); квантування бере менше.
- —Менше бітів означає менше пам'яті й більше швидкості — так велика модель влізає на мале залізо.
- —Якість майже не страждає на 8 бітах, дає м'який компроміс на 4 і ламається, якщо зайти надто низько.
Ти хочеш запустити велику відкриту модель на одному споживчому GPU, куди вона інакше не влазить. Який стандартний хід?
Продовжити в застосунку
Пройди весь курс «Інференс і залізо» — з відстеженням
Отримай персональний план, прогрес і стріки в застосунку — цей урок і кожен наступний, по порядку.