`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Розгортаєте LLM? Почніть з оцінки необхідної пам’яті GPU

+11
голос

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

Розгортаєте LLM? Почніть з оцінки необхідної пам’яті GPU

Залишимо осторонь дискусії про практичну необхідність LLM: чи це боротьба за фізичне існування, чи шлях до морального задоволення. Уявімо, що нам дісталася якась велика мовна модель з відкритим вихідним кодом, створена «надрозумом». Керуючись споживчим інстинктом, ми хочемо розгорнути її на власному комп’ютері. Але який графічний процесор для цього потрібен? Які параметри є критичними?

Для ефективного використання LLM (новітньою мовою процес генерації прогнозів або відповідей моделі на основі вхідних даних називається інференсом) важливо розуміти вимоги до GPU VRAM. Графічний процесор працює з величезними обсягами даних, що зберігаються у відеопам’яті (VRAM). Чим більша модель, тим більше в ній даних і параметрів, а отже, тим більше пам’яті необхідно. Здавалося б, рішення просте: вибирай GPU з максимальною кількістю VRAM — і запускай будь-яку модель.

Але з VRAM, як із золотом: брухт коштує копійки, а вироби — цілий статок.

Архітектура Transformer

Більшість LLM (GPT, LLaMA тощо) використовують архітектуру глибоких нейромереж Transformer, яка значною мірою покладається на паралельні обчислення. Вона складається з багатьох шарів, кожен із яких містить параметри (ваги), що завантажуються у VRAM для швидкого доступу.

Механізм "уваги" (attention) в Transformer дозволяє моделі розуміти контекст, але він також є одним із головних споживачів відеопам’яті.

Розгортаєте LLM? Почніть з оцінки необхідної пам’яті GPU

 

Оцінка споживання 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.

Розгортаєте LLM? Почніть з оцінки необхідної пам’яті GPU

 

Джерело

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

Комп’ютерний розум: генеративний штучний інтелект у рішеннях AWS

+11
голос

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT