Моделі та платформи ШІ
Рамка висновку Microsoft для 1-бітових великомасштабних мовних моделей
17 жовтня 2024 року Microsoft (MSFT ) оголосила про BitNet.cpp, рамку висновку, розроблену для виконання 1-бітових квантованих великомасштабних мовних моделей (LLM). BitNet.cpp являє собою значний прогрес у генерації штучного інтелекту, дозволяючи ефективне розгортання 1-бітових LLM на стандартних ЦП, без потреби дорогих ГП. Це розвиток демократизує доступ до LLM, робить їх доступними на широкому спектрі пристроїв та відкриває нові можливості для застосунків штучного інтелекту на пристрої.
Поняття 1-бітових великомасштабних мовних моделей
Великомасштабні мовні моделі (LLM) традиційно вимагали значних обчислювальних ресурсів через використання високоточних числа з рухомою комою (зазвичай FP16 або BF16) для ваг моделі. Ця необхідність зробила розгортання LLM дорогим і енергозатратним.
У своїй основі 1-бітові LLM використовують екстремальні техніки квантування для представлення ваг моделі, використовуючи лише три можливі значення: -1, 0 та 1, звідси термін “1,58-біт” (оскільки для кодування трьох станів потрібно трохи більше одного біту).
Тернарна система ваг
Концепція
1-бітове квантування в BitNet.cpp являє собою тернарну систему ваг. BitNet працює лише з трьома можливими значеннями для кожного параметра:
- -1 (від’ємне)
- 0 (нейтральне)
- 1 (додатнє)
Це призводить до вимог щодо зберігання близько 1,58 біт на параметр, звідси назва BitNet b1.58. Ця радикальна reduція ширині бітів параметрів призводить до вражаючої reduції використання пам’яті та обчислювальної складності, оскільки більшість множень з рухомою комою замінюються простими додаваннями та відніманнями.
Математична основа
1-бітове квантування включає перетворення ваг та активів у їх тернарне представлення через наступні кроки:
1. Бінаризація ваг
Бінаризація ваг включає в собі централізацію їх навколо середнього значення (α), що призводить до тернарного представлення. Перетворення математично виражається як:
Wf=Sign(W−α)
Де:
- W — оригінальна матриця ваг.
- α — середнє значення ваг.
- Sign(x) повертає +1, якщо x > 0, і -1 в іншому випадку.
2. Квантування активів
Квантування активів забезпечує обмеження входів до певної ширини біт:
x^e=Quant(x)=Clip(γx×Qb,−Qb+ϵ,Qb−ϵ)
Де:
- Qb = 2(b−1)2^{(b-1)} — максимальний рівень квантування для b-бітової ширини.
- γ — максимальне абсолютне значення x (позначається як ∣∣x∣∣∞).
- ε — малий номер для запобігання переповненню під час обчислень.
3. Бітлінійна операція
Шар BitLinear замінює традиційні матричні множення на спрощену операцію:
y=Wf×x^e×(Qbβγ)
Де:
- β — коефіцієнт масштабування, який використовується для мінімізації похибок наближення.
- γ масштабує активацію.
- Q_b — фактор квантування.
Цей перетворення дозволяє ефективно виконувати обчислення, зберігаючи при цьому продуктивність моделі.
Вплив на продуктивність
Ефективність пам’яті
Тернарна система ваг суттєво знижує вимоги до пам’яті:
- Традиційні LLM: 16 біт на вагу
- BitNet.cpp: 1,58 біт на вагу
Ця reduція еквівалентна приблизно 90% економії пам’яті порівняно з традиційними 16-бітовими моделями, що дозволяє розміщувати більші моделі в рамках тих самих апаратних обмежень.
…












