Моделі та платформи ШІ

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 тощо.

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

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

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

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

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

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

Введення в LoRA

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

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

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

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

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

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

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

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

 

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

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

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

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

  1. Попередньо натренована вагова матриця :
    • Починається з попередньо натренованої вагової матриці розмірів . Це означає, що матриця має рядків і стовпців.
  2. Факторизація матриці низького рангу:
    • Замість прямої зміни всієї матриці , що може бути обчислювально дорогим, пропонується підхід факторизації матриці низького рангу.
    • Оновлення до можна представити як добуток двох матриць: і .
      • має розміри
      • має розміри
    • Ключовим моментом тут є те, що ранг значно менший за обидва і , що дозволяє більш обчислювально ефективне представлення.
  3. Тренування:
    • Під час процесу тренування залишається незмінним. Це називається “заморожуванням” ваг.
    • З іншого боку, і є тренованими параметрами. Це означає, що під час тренування проводяться корекції матриць і для покращення продуктивності моделі.
  4. Множення та додавання:
    • Обидві і оновлення (яке є добутком і ) множаться на один і той же вхід (позначається як ).
    • Вихідні дані цих множень потім додаються.
    • Цей процес підсумовується у рівнянні: Тут представляє кінцевий вихід після застосування оновлень до вхідного .

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

Анімація LoRA

LoRA

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

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

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

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

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

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

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

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

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

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

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

Квантування

Квантування

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

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

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

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

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

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

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

Висновок

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

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

Матриця

Матриця

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

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