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

Джерело зображення: створено Unbounded AI

Великі мовні моделі (LLM), особливо генеративні попередньо підготовлені моделі трансформатора (GPT), показали чудову продуктивність у багатьох складних мовних завданнях. Цей прорив призвів до бажання запускати ці LLM нативно на мобільних пристроях, щоб захистити конфіденційність користувачів. Однак навіть малі LLM занадто великі для роботи на цих пристроях.

Наприклад, маленький LLaMA має параметри 7B, а його версія FP16 має розмір 14 ГБ, тоді як мобільні пристрої мають лише 18 ГБ DRAM. Таким чином, стиснення LLM за допомогою оптимізації часу навчання (наприклад, розрідження, квантування або кластеризації ваги) є ключовим кроком для розгортання LLM на пристрої. Однак оптимізація часу навчання LLM є дуже дорогою через розмір моделі та накладні витрати на обчислювальні ресурси. DKM, один із алгоритмів SOTA для вагової кластеризації, потребує надто тривалого часу для навчання змінної вагової кластеризації через необхідність аналізу взаємодії між усіма ваговими коефіцієнтами та всіма можливими варіантами кластеризації.

Тому багато існуючих методів стиснення LLM, таких як GTPQ і AWQ, покладаються на оптимізацію після навчання. У цій статті дослідники пропонують методи оптимізації пам’яті для досягнення кластеризації, зваженої за часом навчання, і її застосування в DKM, також відомому як eDKM.

Методи, які використовуються в цій статті, включають тензорну оркестровку на різних пристроях, унікальність і сегментування вагової матриці. Використовуючи eDKM для точного налаштування моделі LLaMA 7B і її стиснення до 3 бітів на ваговий коефіцієнт, дослідники досягли приблизно 130-кратного зменшення обсягу пам’яті стека декодера, що краще, ніж існуюча технологія 3-бітного стиснення.

Покращення ефективності пам'яті DKM

Як показано на малюнку 1, відсікання, квантування та нормалізація є популярними методами оптимізації ваги. Ці методи оптимізують початкову вагу W і отримують вагу

, щоб оптимізувати затримку висновку, точність або розмір моделі. Серед цих технологій дослідники в цій статті в основному зосереджені на зваженій кластеризації, особливо на алгоритмі зваженої кластеризації DKM.

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

Тому використання DKM для стиснення LLM дає високоякісні результати. Однак карта уваги, створена під час процесу обчислення DKM, є великою, а складність пам’яті для проходу вперед/назад становить O (|W||C|) (тобто матриця на малюнку 1), що особливо складно для LLM стиснення.. Наприклад, модель LLaMA 7B, яка обчислює лише карти уваги для 4-бітної вагової кластеризації, потребує принаймні 224 ГБ пам’яті.

*Малюнок 1: Огляд системи оптимізації ваги. У DKM система внутрішньо створює карту уваги, яку можна кластеризувати за диференційованими вагами. *

Тому дослідникам потрібно використовувати пам’ять центрального процесора, щоб відповідати таким великим вимогам до пам’яті, тобто спочатку зберігати інформацію в пам’яті центрального процесора, а потім копіювати її назад у графічний процесор, коли це необхідно. Однак це призведе до великого трафіку між графічним і центральним процесором (таким чином уповільнюючи навчання) і потребує величезного об’єму пам’яті ЦП. Це означає, що критично важливо зменшити кількість транзакцій між процесором і графічним процесором і мінімізувати трафік на транзакцію. Щоб вирішити ці проблеми, дослідники представили дві нові технології оптимізації пам’яті в PyTorch.

  • Оркестровка тензорів між пристроями: відстежуйте тензори, скопійовані між пристроями, щоб уникнути зайвого копіювання, тим самим зменшуючи використання пам’яті та прискорюючи навчання.
  • Унікальна вага й обробка шардингу: скористайтеся тим фактом, що 16-бітна вага має лише 216 унікальних значень, щоб зменшити представлення карти уваги (показано на малюнку 1) і додатково розділити її на кілька моделей навчання.

Тензорна оркестровка на різних пристроях

PyTorch використовує сховище даних для представлення тензорів, яке пов’язано з фактичним макетом даних і метаданими, які використовуються для збереження форми, типу тощо тензора. Ця тензорна архітектура дозволяє PyTorch максимально повторно використовувати сховище даних і ефективно зменшувати використання пам’яті. Однак, коли тензор переміщується на інший пристрій (наприклад, з GPU на CPU), сховище даних не можна використовувати повторно, і потрібно створити новий тензор.

Таблиця 1 ілюструє використання пам’яті тензорами під час переходу між пристроями PyTorch. Тензор x0, виділений у рядку 0, споживає 4 МБ на GPU. Коли його вигляд змінюється в рядку 1, додаткова пам'ять графічного процесора не потрібна, оскільки базове сховище даних можна використовувати повторно (тобто x0 і x1 фактично однакові). Однак, коли x0 і x1 переміщуються до ЦП, як у рядках 2 і 3, хоча y0 і y1 можуть спільно використовувати одне й те саме сховище даних на ЦП, споживання пам’яті ЦП стає 8 МБ, що призводить до резервування пам’яті ЦП і збільшує GPU- трафік до ЦП.

*Таблиця 1. Точне налаштування LLM може вимагати використання пам’яті центрального процесора, щоб розвантажити пам’ять графічного процесора. Відсутність керування тензорами між пристроями може призвести до надлишкових копій на різних пристроях (особливо, коли обчислювальний графік складний), що особливо шкідливо для оптимізації часу навчання LLM. Наприклад, хоча x0 і x1 є одним і тим самим тензором з різними видами, результуючі тензори y0 і y1 не використовують сховище даних під час копіювання в центральний процесор, тоді як на графічному процесорі x0 і x1 мають. *

Щоб усунути цю неефективність, дослідники розмістили рівень оркестровки на малюнку 2(b), де чорний колір представляє фактичне сховище даних і метадані, а сірий колір представляє лише метадані. На рисунку 2(a) показаний приклад із таблиці 1, де x1 ділиться компонуванням даних з x0, але y0 і y1 мають дублікати даних на ЦП. Як показано на малюнку 2 (b), вставивши рівень оркестровки, дослідники уникають цієї надмірності та зменшують трафік GPU-CPU. Дослідники використовували save-tensor-hook у PyTorch, щоб реалізувати таку схему обміну, перевіряючи, чи було скопійовано те саме сховище даних.

Однак використання такої схеми для перевірки наявності того самого тензора на цільовому пристрої є дорогим. У прикладі на малюнку 2(b) дослідник не скопіював x1 до ЦП, а просто повернув посилання на y0 та операцію перегляду між x1 і y0.

*Малюнок 2. Якщо тензорна оркестровка між пристроями застосована до ситуації в таблиці 1, можна уникнути дублювання на стороні ЦП, тим самим заощаджуючи пам’ять і трафік. *

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

Унікальна вага та сегментування

У більшості тренінгів LLM вагові коефіцієнти зазвичай використовують 16-бітне зберігання (наприклад, BF16 або FP16), що означає, що хоча в LLM є мільярди параметрів, є лише 216 унікальних коефіцієнтів через бітову ширину. Це дає можливість значно стиснути карту уваги між вагами та центральними точками, як показано на малюнку 3.

Малюнок 3: Унікальне визначення ваги та сегментування

Експериментальні результати

Точність LLM

У цій статті порівнюється eDKM з іншими схемами стиснення на основі квантування, зокрема: RTN, SmoothQuant, GPTQ, AWQ і LLM-QAT. Для eDKM дослідники також виконали 8-бітне стиснення на рівні вбудовування. Нарешті було зроблено такі висновки:

  • eDKM дозволяє моделі LLaMA 7B з 3-бітним стисненням перевершити всі інші схеми 3-бітного стиснення.
  • eDKM має найкращу точність у тесті ARC-e у 3- і 4-бітних конфігураціях.
  • Продуктивність eDKM є дуже конкурентоспроможною в тестах PIQA та MMLU з використанням 4-бітної моделі стиснення.

Експеримент з абляції

В експериментах з абляції дослідники виміряли компроміс між обсягом пам’яті та швидкістю 3-бітного стиснення вперед-назад, використовуючи як приклад рівень уваги в стеку декодера LLaMA 7B. Лише тензорна оркестровка між пристроями зменшує споживання пам’яті в 2,9 рази з дуже невеликими накладними витратами на виконання, тоді як модулі шардингу та унікальності економлять у 23,5 рази та 16,4 рази відповідно. При поєднанні всіх технологій eDKM дає змогу заощадити приблизно в 130 разів. Хоча ці кроки вимагають додаткових витрат на обчислення та зв’язок, накладні витрати на час виконання незначні, оскільки трафік між GPU та CPU значно зменшується.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити