8 3090, 1 день стиснення трильйон параметр велика модель! 3,2 ТБ різко падає до 160 ГБ зі ступенем стиснення до 20 разів

Джерело статті: Новий Чжиюань

Нещодавно дослідники з ISTA запропонували новий метод квантування моделі QMoE, який може стиснути 1,6 трильйона параметрів SwitchTransformer до менш ніж 160 ГБ (0,8 біта на параметр) з невеликою втратою точності.

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

У зв'язку з тим, що архітектура GPT-4 є «відкритим вихідним кодом» відомих лідерів галузі, гібридна експертна архітектура (MoE) знову стала центром досліджень.

GPT-4 має 16 експертних моделей із загальним обсягом 1,8 трильйона параметрів. Кожна генерація токенів вимагає близько 280 мільярдів параметрів і 560 TFLOP

Однак вартість більш швидкої і точної моделі - це величезна кількість параметрів і висока вартість, яка з нею пов'язана.

Наприклад, модель SwitchTransformer-c2048 з параметром 1,6 трильйона вимагає 3,2 ТБ пам'яті графічного процесора для ефективної роботи.

Щоб вирішити цю проблему, дослідники з Австрійського технологічного інституту (ISTA) запропонували абсолютно новий фреймворк стиснення та виконання – QMoE.

Адреса:

Завдяки використанню спеціально розробленого ядра декодування графічного процесора, QMoE має ефективне наскрізне висновування стиснення, яке може досягти до 20-кратного стиснення лише з незначною втратою точності.

Зокрема, QMoE може стиснути 1,6 трильйона параметрів моделі SwitchTransformer-c2048 до менш ніж 160 ГБ на одному сервері GPU за один день, що еквівалентно лише 0,8 біт на параметр.

Це дозволяє працювати на 4 графічних процесорах NVIDIA RTX A6000 або 8 NVIDIA RTX 3090 з менш ніж 5% вартості висновків для нестисненої моделі.

Квантування моделі MoE

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

Оскільки для обробки кожного вхідного токена потрібно викликати лише невелику частину мережі, ця конструкція може використовувати 100 або навіть 1 000 «експертів» для побудови гіпермасштабованих моделей для ефективного навчання та висновків.

Доведено, що МОН може значно підвищити точність і швидкість навчання, коли швидкість висновків порівнянна. Але такий великий обсяг означає, що для роботи моделі потрібно багато відеопам'яті.

Основною проблемою при стисненні MoE є необхідність підтримувати великий набір активацій.

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

Зокрема, підтримуйте великий буфер B і оновлюйте щільну частину блоку Transformer наступним чином:

  1. Від центрального процесора до графічного процесора візьміть «зразок» X, що містить сотні токенів;

  2. Через відповідний щільний шар виходить результат Y;

  3. Розрахувати та зберегти експертний розподіл токенів в Y;

  4. Надішліть Y назад на центральний процесор і перезапишіть X у B.

Для розріджених ділянок:

  1. Від центрального процесора до графічного процесора візьміть усі токени в B, які були призначені експерту E, представленому X_E.

  2. Використовуйте їх для генерації стислих експертних E (наприклад, за допомогою GPTQ).

  3. Пропустіть X_E через E', щоб отримати Y_E'.

  4. Надішліть Y_E' назад на центральний процесор і перезапишіть X_E у B.

Як показано на рисунку 2, цей процес мінімізує споживання пам'яті та витрати на передачу: потрібна лише одна копія B, а кожен токен зчитується та записується лише двічі в кожному блоці Transformer.

Крім того, дослідники розробили схему кодування та ядро CUDA, щоб досягти стиснення менше 1 біта на вагу та мінімізувати накладні витрати на виконання графічного процесора для висновків.

Ефект стиснення

Точність

Спочатку дослідники квантували всі моделі SwitchTransformer з 2-бітною та трійковою точністю, а потім оцінили їхні втрати на валідацію.

Для 128 експертів розмір калібрувальної вибірки за замовчуванням становить 10 К; Для 2048 експертів розмір калібрувальної вибірки за замовчуванням становить 160 тис. У той же час дослідники також протестували 0,5-кратні та 2-кратні розміри вибірки.

Результати показують, що 2-значна модель може бути досягнута з мінімальними втратами (1,7% відносно C2048) і невеликим збільшенням втрат при трійковій точності (6,7% відносно C2048) за допомогою квантування, що залежить від даних.

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

Крім того, дослідники оцінили дані з arXiv, GitHub, StackExchange та Вікіпедії RedPajama.

Незважаючи на те, що лише <0,01% калібрувальних даних надходять з цих сайтів, стиснена модель все ще зберігає майже таку ж продуктивність, як і основний розподіл.

У випадку калібрувальних даних збільшення розміру вибірки зазвичай дещо покращує продуктивність і найбільш помітно при тернарному квантуванні. Але є і деякі шуми в процесі, особливо на 2 бітах.

### Стиснення

У тесті дослідники враховували як стиснення лише модуля MoE, так і стиснення щодо всієї моделі та всіх її метаданих.

Тільки для MoE досягається >16-кратне стиснення на всіх масштабах, що еквівалентно 1 біту сховища <простору для кожного параметра.

На c2048 загальний ступінь стиснення становить 19,81 рази, що дорівнює 0,807 біт на параметр, навіть включаючи всі нестиснені щільні шари, зменшуючи розмір контрольної точки з 3142 ГБ до 158,6 ГБ.

Крім того, можна спостерігати, що ступінь стиснення збільшується зі збільшенням розмірів моделі з двох причин:

а) природна розрідженість зростає, і дослідники оптимізували словник кодування для C2048;

б) чим більший шар, тим ближче розподіл ваги до незалежності.

### Час виконання

Нарешті, дослідники оцінили час, необхідний для створення стисненої моделі на одному графічному процесорі A6000 для різних обсягів калібрувальних даних.

Результати показують, що менші моделі можна стиснути менш ніж за годину, і навіть c2048 можна завершити менш ніж за добу, що підтверджує високу ефективність QMoE.

Від large128 до c2048 збільшення часу роботи в основному пропорційно різниці в розмірах, хоча в останньому використовується в 16 разів більше зразків. Це пов'язано з тим, що розмір вибірки на одного експерта залишається незмінним, тоді як розмір експерта збільшується незначно.

### Результат бігу

По-перше, пряме (ізольоване) порівняння стисненого матрично-векторного продукту ядра з (нестисненим) ядром bfloat16 cuBLAS стандарту PyTorch.

На малюнку 5 (ліворуч) показано час, необхідний MoE, щоб виявити форми матриць на двох різних графічних процесорах порівняно з ядрами bfloat16.

Незважаючи на те, що дослідники використовували низьку продуктивність сховища, виконання ядра стиснення все одно зайняло менше часу, ніж майже ідеальний базовий рівень bfloat16. До 35% швидше при заданій формі матриці.

Затримка цих операцій також дуже низька: найменша матриця займає < 0,02 мс, а найбільша < 0,05 мс.

Згодом дослідники провели наскрізний бенчмарк ядра в HuggingFace, використовуючи фактичні ваги стисненої моделі MoE.

Як показано на рисунку 5 (праворуч), наскрізне виконання стисненої моделі лише на <5% повільніше, ніж стандартної (нестисненої) моделі.

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

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

У деяких сферах застосування це велике вузьке місце. Це можна зробити, ввівши в ядро цикл in-token або, у випадку великої кількості токенів, виконавши повну декомпресію перед виконанням стандартного множення матриць.

Обговорення та обмеження

Таким чином, QMoE — це наскрізний фреймворк стиснення та виведення з відкритим вихідним кодом для вирішення проблеми надмірних накладних витрат на пам'ять у процесі висновків MoE.

Вперше дослідники продемонстрували, що модель з трильйоном параметрів, така як SwitchTransformer c2048, може бути точно стиснута до менш ніж 1 біта на параметр зі ступенем стиснення майже в 20 разів. І, вперше, ефективне наскрізне виконання таких моделей досягається на єдиному сервері GPU споживчого класу.

Однак, оскільки у відкритому доступі є лише невелика кількість великомасштабних і точних МОН, набір вивчених моделей обмежений.

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

Тим не менш, дослідники розглянули деякі з найбільших і найточніших MoEs, зокрема SwitchTransformer.

Ресурси:

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