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

Залишимо осторонь дискусії про практичну необхідність LLM: чи це боротьба за фізичне існування, чи шлях до морального задоволення. Уявімо, що нам дісталася якась велика мовна модель з відкритим вихідним кодом, створена «надрозумом». Керуючись споживчим інстинктом, ми хочемо розгорнути її на власному комп’ютері. Але який графічний процесор для цього потрібен? Які параметри є критичними?
Для ефективного використання LLM (новітньою мовою процес генерації прогнозів або відповідей моделі на основі вхідних даних називається інференсом) важливо розуміти вимоги до GPU VRAM. Графічний процесор працює з величезними обсягами даних, що зберігаються у відеопам’яті (VRAM). Чим більша модель, тим більше в ній даних і параметрів, а отже, тим більше пам’яті необхідно. Здавалося б, рішення просте: вибирай GPU з максимальною кількістю VRAM — і запускай будь-яку модель.
Але з VRAM, як із золотом: брухт коштує копійки, а вироби — цілий статок.
Архітектура Transformer
Більшість LLM (GPT, LLaMA тощо) використовують архітектуру глибоких нейромереж Transformer, яка значною мірою покладається на паралельні обчислення. Вона складається з багатьох шарів, кожен із яких містить параметри (ваги), що завантажуються у VRAM для швидкого доступу.
Механізм "уваги" (attention) в Transformer дозволяє моделі розуміти контекст, але він також є одним із головних споживачів відеопам’яті.

Оцінка споживання VRAM для моделі 7b Llama2
CUDA Kernel
Драйвер CUDA завжди резервує певний обсяг VRAM для:
-
постійних буферів констант модулів і змінних,
-
буфера динамічного паралелізму CUDA,
-
купи malloc
,
-
буфера printf
.
Parameters
LLM містять від мільйонів до трильйонів параметрів, які під час інференсу зберігаються у VRAM. Це головний споживач пам’яті.
Ім’я моделі зазвичай складається з двох частин: [назва моделі] + [кількість параметрів]. Наприклад, у LLaMA 2-7B "LLaMA 2" означає серію моделей, а "7B" — що модель містить приблизно 7 мільярдів параметрів. Чим більше параметрів, тим вищий рівень можливостей, але й тим більші вимоги до пам’яті.
Квантування (Quantization)
Точність представлення чисел у LLM також впливає на використання VRAM. Традиційно під час навчання ваги моделі зберігаються у форматі чисел із плаваючою комою (floating point, FP). Чим більше бітів виділено на число, тим вища точність. Зазвичай у LLM використовуються формати FP16 або BF16, де кожна вага займає 16 біт (2 байти). Це досить ресурсозатратно.
Процес квантування великої мовної моделі передбачає зменшення розрядності чисел, наприклад, до 8-бітних цілочисельних значень, що дозволяє вдвічі зменшити розмір моделі.
Крім ваг, кожен шар LLM генерує проміжні активації, які тимчасово зберігаються у VRAM, додатково збільшуючи вимоги до пам’яті.
Batch Size
Під час інференсу LLM обробляють входи пакетами (batch processing) для підвищення ефективності.
Мовна модель працює як функція: вона приймає набір токенів-входів і прогнозує найбільш імовірний наступний токен. Потім цей токен додається до вхідних даних, і процес повторюється.
При пакетній обробці (batch processing) модель може одночасно обробляти кілька входів, що дозволяє створювати кілька завершень паралельно. Генерація наступного токена для двох послідовностей займає майже стільки ж часу, як і для однієї, але споживає більше пам’яті.
Так скільки VRAM потрібно?
Оскільки основний споживач VRAM — це параметри моделі, підрахувати необхідний обсяг пам’яті можна простою формулою:
VRAM(ГБ)=кількість параметрів×точність (у байтах)109
З урахуванням додаткових витрат (активації, розмір контексту, внутрішні буфери CUDA) потрібно додати приблизно 20% запасу:
VRAM=(Кількість параметрів×Точність8)×1.2
Для LLaMA 2-7B з точністю FP16 отримаємо:
VRAM=(7×109×168)×1.2=16.8 ГБ
Тож для запуску цієї моделі в нативному FP16-форматі потрібно не менше 16.8 ГБ VRAM.

Джерело
Розуміння вимог до GPU VRAM і правильне налаштування моделі допомагає оптимізувати продуктивність і обирати найкраще обладнання для роботи з LLM. Варто враховувати не лише кількість параметрів, а й техніки оптимізації, такі як квантування та регулювання batch size, щоб ефективно використовувати доступну відеопам’ять.
Комп’ютерний розум: генеративний штучний інтелект у рішеннях AWS