← Назад до курсу

Базова теорія

🇬🇧 English
⚡ Рівень 3 — Професіонал

Оптимізація моделей

Як зробити моделі швидшими, меншими та дешевшими у запуску.

Запуск великих моделей ШІ вимагає дорогого обладнання. Техніки оптимізації моделей зменшують обчислювальні вимоги при збереженні якості. Квантизація (зменшення числової точності), прунінг (видалення непотрібних з'єднань) та дистиляція (навчання менших моделей з більших) дозволяють запускати моделі на споживчому обладнанні.

Оптимізація — це те, що робить ШІ практичним. Без неї лише компанії з масивними GPU-кластерами могли б використовувати фронтирні моделі. Завдяки квантизації та ефективним рушіям інференсу як llama.cpp та vLLM, модель з 70B параметрів може працювати на ігровому ПК, а витрати на інференс впали у 100 разів за два роки. Ця демократизація рухає open-source ШІ рух.

Основні теми
Основи квантизації
Зменшення числової точності від FP32 (32 біти на вагу) → FP16 → INT8 → INT4 зменшує модель у 2-8 разів. Кожен крок обмінює малу кількість якості на значне покращення розміру та швидкості.
GPTQ та AWQ
Оптимізовані для GPU методи пост-тренувальної квантизації. GPTQ використовує калібраційні дані для вищої якості. AWQ зберігає важливі ваги на основі патернів активації. Обидва забезпечують швидкий GPU інференс.
GGUF та llama.cpp
GGUF — формат для llama.cpp, що дозволяє змішаний CPU+GPU інференс на споживчих машинах. Підтримує квантизацію від Q2 (найменший) до Q8 (найвища якість). Q4_K_M — популярний оптимальний баланс.
Прунінг
Видалення ваг близьких до нуля, що мало впливають на якість. Структурований прунінг видаляє цілі нейрони або голови уваги. Може зменшити модель на 50-90% при ретельній калібрації.
Дистиляція знань
Навчання малого "учня" з великого "вчителя". Учень вчиться з розподілів ймовірностей вчителя, а не лише з жорстких міток, захоплюючи багатшу інформацію. GPT-4 дистильований у GPT-4o mini — практичний приклад.
Flash Attention
Пам'ять-ефективне обчислення уваги від Tri Dao, що об'єднує операції та використовує тайлінг. Зменшує використання GPU пам'яті в 5-20 разів та прискорює навчання в 2-4 рази.
Спекулятивне декодування
Швидка мала модель генерує кілька токенів-чернеток, потім велика модель верифікує їх одним прямим проходом. Досягає 2-3x прискорення без втрати якості, бо відхилені токени перегенеровуються.
Оптимізація KV кешу
Під час генерації кожен токен повинен звертати увагу на всі попередні. KV кеш зберігає ці стани, але росте з довжиною. PagedAttention (vLLM) керує цією пам'яттю як віртуальна пам'ять в ОС.
Злиття моделей
Комбінування ваг з кількох файн-тюнених моделей без додаткового навчання. Методи TIES, DARE та SLERP інтерполюють між чекпоінтами. Спільнотні злиття на HuggingFace часто перевершують індивідуальні файн-тюни.
Практичний вплив
70B модель квантизована до Q4 вміщується в 48ГБ VRAM (2x споживчі GPU). vLLM обслуговує моделі в 24 рази швидше за наївний інференс. Ці оптимізації означають, що ПК за $2000 може запускати моделі, навчання яких коштувало $100K+.
Ключові терміни
КвантизаціяЗменшення числової точності ваг моделі (FP32→INT4) для зменшення розміру у 2-8 разів та прискорення інференсу.
ДистиляціяНавчання меншого учня імітувати розподіли ймовірностей та можливості більшого вчителя.
Flash AttentionПам'ять-ефективна реалізація уваги без матеріалізації повної матриці, що зменшує GPU пам'ять у 5-20 разів.
Спекулятивне декодуванняВикористання швидкої чернеткової моделі для генерації кандидат-токенів, верифікованих пакетом великою моделлю для 2-3x прискорення.
Практичні поради
Пов'язані обговорення спільноти