Connect with us

LoRa, QLoRA і QA-LoRA: Ефективна адаптивність великих мовних моделей завдяки факторизації матриць низького рангу

Штучний інтелект

LoRa, QLoRA і QA-LoRA: Ефективна адаптивність великих мовних моделей завдяки факторизації матриць низького рангу

mm
LoRA : Low-Rank Adaptation of Large Language Models

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

У попередній статті ми занурилися у донастройку великих мовних моделей (LLM), щоб пристосувати їх до конкретних вимог. Ми дослідили різні методи донастройки, такі як інструкційна донастройка, донастройка для одного завдання та параметратно-ефективна донастройка (PEFT), кожна з яких має свій унікальний підхід до оптимізації LLM для різних завдань. Центральним у дискусії було архітектурою трансформера, яка є основою LLM, та викликами, пов’язаними з обчислювальними та пам’ятними вимогами при обробці величезної кількості параметрів під час донастройки.

Параметри в LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

Зображення вище представляє масштаб різних великих мовних моделей, відсортованих за кількістю параметрів. Відзначимо: PaLM, BLOOM тощо.

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

Вступіть Low-Rank Адаптація (LoRA), яку представила компанія Microsoft у цій статті, спрямовану на подолання цих викликів та надання LLM більшої доступності та адаптивності.

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

Еволюція стратегій налаштування LLM

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

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

Когда практики намагалися дослідити більш ефективні шляхи, виникла повна донастройка як сувора, але винагідна стратегія.

Введення в LoRA

Ранг матриці дає нам огляд розмірів, створених її стовпцями, визначається кількістю унікальних рядків або стовпців.

  • Повнорангові матриці: Її ранг збігається з меншим числом між її рядками або стовпцями.
  • Матриці низького рангу: З рангом, помітно меншим за обидва рядки та стовпці, вона захоплює менше ознак.

Тепер великі моделі охоплюють широке розуміння своєї області, як мова у мовних моделях. Але донастройка їх для конкретних завдань часто потребує лише виділення малої частини цих розумінь. Саме тут LoRA сяє. Вона пропонує, що матриця, яка демонструє ці зміни ваг, може бути матрицею низького рангу, тим самим захоплюючи менше ознак.

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

Застосування LoRA до трансформерів

LoRA допомагає мінімізувати навантаження на навчання в нейронних мережах, зосереджуючись на конкретних вагових матрицях. Під архітектурою трансформера певні вагові матриці пов’язані з механізмом самоуваження, а саме Wq, Wk, Wv та Wo, а також ще дві в модулі багатошарової перцептрону (MLP).

Архітектура трансформерів

Архітектура трансформерів

 

Головки уваги трансформера

Головки уваги трансформера

Математичне пояснення LoRA

Давайте розберемо математику за LoRA:

  1. Попередньо тренована вагова матриця W0:
    • Починається з попередньо тренованої вагової матриці W0 розмірів d×k. Це означає, що матриця має d рядків і k стовпців.
  2. Факторизація матриці низького рангу:
    • Замість прямого оновлення всієї матриці W0, що може бути обчислювально дорогим, пропонується підхід факторизації матриці низького рангу.
    • Оновлення ΔW до W0 може бути представлено як добуток двох матриць: B і A.
      • B має розміри d×r
      • A має розміри r×k
    • Ключовим моментом тут є те, що ранг r значно менший за обидва d і k, що дозволяє здійснити більш обчислювально ефективне представлення.
  3. Навчання:
    • Під час процесу навчання W0 залишається незмінним. Це називається “заморожуванням” ваг.
    • З іншого боку, A і B є тренувальними параметрами. Це означає, що під час навчання здійснюються корекції матриць A і B для поліпшення продуктивності моделі.
  4. Множення та додавання:
    • І W0, і оновлення ΔW (яке є добутком B і A) помножуються на один і той же вхід (позначений як x).
    • Вихідні дані цих множень потім додаються.
    • Цей процес підсумовується у рівнянні: h=W0x+ΔWx=W0x+BAx. Тут, h представляє кінцевий вихід після застосування оновлень до вхідного x.

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

LoRA

LoRA

Ініціалізація та масштабування:

Коли тренується модель, те, як ініціалізуються параметри, може суттєво вплинути на ефективність та результативність процесу навчання. У контексті нашої оновлення вагової матриці за допомогою A і B:

  1. Ініціалізація матриць A і B:
    • Матриця A: Ця матриця ініціалізується випадковими гаусовими значеннями, також відомими як нормальний розподіл. Підставою для використання гаусової ініціалізації є порушення симетрії: різні нейрони в одному шарі будуть вивчати різні ознаки, коли вони мають різні початкові ваги.
    • Матриця B: Ця матриця ініціалізується нулями. Роблячи це, оновлення ΔW=BA починається як нуль на початку тренування. Це забезпечує відсутність раптової зміни у поведінці моделі на початку, дозволяючи моделі поступово адаптуватися, коли B вивчає відповідні значення під час тренування.
  2. Масштабування виходу з ΔW:
    • Після обчислення оновлення ΔW, його вихід масштабується коефіцієнтом rα де α — стала. Масштабуючи, контролюється величину оновлень.
    • Масштабування особливо важливе, коли ранг r змінюється. Наприклад, якщо ви вирішите збільшити ранг для більшої точності (за рахунок обчислень), масштабування забезпечує, що вам не потрібно коригувати багато інших гіперпараметрів у процесі. Це надає певний рівень стабільності моделі.

Практичний вплив LoRA

LoRA продемонструвала свій потенціал для налаштування великих мовних моделей до конкретних художніх стилів ефективно спільнотою AI. Це було особливо продемонстровано у адаптації моделі для імітації художнього стилю Greg Rutkowski.

Як підкреслено в статті з GPT-3 175B як приклад. Мати окремі екземпляри донастроєних моделей з 175B параметрів кожна досить дорого. Але з LoRA кількість тренувальних параметрів зменшується в 10 000 разів, а використання пам’яті GPU скорочується до третини.

Вплив LoRa на донастройку GPT-3

Вплив LoRa на донастройку GPT-3

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

QLoRA (Квантована)

Хоча LoRA є проривом у зменшенні потреби в сховищі, вона все ще вимагає потужного GPU для завантаження моделі для тренування. Саме тут вступає QLoRA, або Квантована LoRA, поєднуючи LoRA з квантуванням для розумнішого підходу.

Квантування

Квантування

Зазвичай вагові параметри зберігаються у форматі 32 біт (FP32), тобто кожен елемент матриці займає 32 біти місця. Що якщо ми могли б стиснути ту саму інформацію лише в 8 або навіть 4 біти? Саме це є основною ідеєю QLoRA. Квантування відноситься до процесу відображення безперервних нескінченних значень на меншу множину дискретних скінченних значень. У контексті великих мовних моделей це відноситься до процесу конвертування ваг моделі з вищої точності даних у нижчу точність.

Квантування в LLM

Квантування в LLM

Ось простіше пояснення QLoRA:

  1. Початкове квантування: Спочатку велика мовна модель (LLM) квантується до 4 біт, суттєво зменшуючи відбиток пам’яті.
  2. Тренування LoRA: Потім проводиться тренування LoRA, але у стандартній точності 32 біт (FP32).

Тепер ви можете запитати, чому повертатися до 32 біт для тренування після стиснення до 4 біт? Ну, щоб ефективно тренувати адаптери LoRA у FP32, ваги моделі теж повинні повернутися до FP32. Це перемикання туди й назад здійснюється у розумному, крок за кроком порядку, щоб не перевантажувати пам’ять GPU.

LoRA знаходить своє практичне застосування у бібліотеці Unite.AI Parameter Efficient Fine-Tuning (PEFT), спрощуючи її використання. Для тих, хто хоче використовувати QLoRA, це доступно через поєднання бібліотек bitsandbytes і PEFT. Крім того, бібліотека Unite.AI Transformer Reinforcement Learning (TRL) library забезпечує супервізоване донастройку з інтегрованою підтримкою LoRA. Разом ці три бібліотеки забезпечують необхідний інструментарій для донастройки вибраної попередньо тренованої моделі, дозволяючи генерацію переконливих та узгоджених описів продуктів при наданні конкретних інструкцій щодо атрибутів.

Після донастройки QLoRA ваги повинні повернутися до формату високої точності, що може привести до втрати точності та відсутності оптимізації для прискорення процесу.

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

Висновок

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

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

Матриця

Матриця

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

Я провів останні п'ять років, занурючись у захопливий світ машинного навчання та глибокого навчання. Моя пристрасть та експертиза привели мене до внеску у понад 50 різноманітних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя триваюча цікавість також привела мене до обробки природної мови, галузі, яку я бажаю дослідити далі.