Оцінювач ML-інференції
Оцініть затримку інференції та FPS для ML-моделей на edge-пристроях.
Затримка
150 ms
Макс. FPS
6.7 FPS
Practical Note: Реальні FPS можуть бути нижчими через накладні витрати попередньої обробки та завантаження моделі.
Порівняння затримки (всі пристрої)
Деталі моделі
MobileNet V2: Lightweight image classification. Good for real-time inference on edge devices.
Що таке калькулятор ML-інференсу?
Калькулятор ML-інференсу оцінює обчислювальні ресурси, необхідні для виконання інференсу моделей машинного навчання — процесу використання навченої моделі для прогнозування нових даних. Він допомагає визначити необхідну пам'ять GPU, час обчислення та пропускну здатність для розгортання моделей у виробничому середовищі: від невеликих класифікаційних моделей до великих мовних моделей (LLM).
Вимоги до інференсу моделей залежать від розміру моделі (кількість параметрів), точності (FP32, FP16, INT8), розміру пакету, довжини послідовності (для трансформерів) та цільової пропускної здатності. Модель на 7 мільярдів параметрів в FP16 потребує близько 14 ГБ пам'яті GPU лише для ваг. Цей інструмент розраховує вимоги до пам'яті та розрахунковою пропускною здатністю для типових апаратних конфігурацій.
Як користуватися цим інструментом
Введіть розмір моделі (кількість параметрів), точність (тип даних), розмір пакету та цільове обладнання. Інструмент розраховує необхідну пам'ять GPU, розрахункову затримку інференсу та пропускну здатність (токени на секунду для мовних моделей або зображення на секунду для моделей комп'ютерного зору). Він також пропонує, які GPU можуть впоратися з навантаженням.
Ключові поняття
- Параметри — навчені ваги в моделі. Більше параметрів зазвичай означає кращу якість, але вищі вимоги до ресурсів.
- Точність — FP32 використовує 4 байти на параметр, FP16/BF16 — 2 байти, INT8 — 1 байт. Нижча точність зменшує пам'ять і збільшує швидкість з мінімальною втратою якості.
- Розмір пакету — одночасна обробка кількох вхідних даних покращує пропускну здатність, але вимагає більше пам'яті.
- KV-кеш — для трансформерних моделей кеш ключ-значення зростає з довжиною послідовності та займає значну додаткову пам'ять.
Поширене апаратне забезпечення для інференсу
Споживчі GPU: RTX 3090 (24 ГБ), RTX 4090 (24 ГБ) — підходять для моделей до 13 млрд параметрів в INT8. Професійні: A100 (40/80 ГБ), H100 (80 ГБ) — необхідні для більших моделей. Хмарні варіанти: AWS, GCP та Azure пропонують GPU-інстанси погодинно. Для CPU-інференсу: можливий для менших моделей, але в 10–100 разів повільніший за GPU. Чіпи Apple M-серії пропонують єдину пам'ять, що дозволяє запускати напрочуд великі моделі.
Приклад розрахунку
Мовна модель із 7 мільярдами параметрів у 16-бітній точності потребує 7 000 000 000 × 2 байти = 14 ГБ лише для зберігання ваг. Квантування до 4 біт зменшує це до близько 3,5 ГБ, дозволяючи вміститися на споживчому GPU. Якщо GPU дає 300 ГБ/с пропускної здатності пам'яті, читання 3,5 ГБ на токен обмежує швидкість до близько 85 токенів на секунду.
Поширені помилки
Поширена помилка — оцінювати швидкість інференсу лише за обчисленнями (FLOPS); для великих моделей генерацію токенів зазвичай обмежує пропускна здатність пам'яті, а не сама математика. Інша — ігнорувати різницю між затримкою (час до першого токена) і пропускною здатністю (токенів на секунду в пакеті). Забути, що об'єднання багатьох запитів підвищує пропускну здатність ціною затримки на запит, теж поширено.
Часті запитання
Скільки пам'яті GPU потрібно для моделі на 7 млрд параметрів?
При точності FP16: 7 млрд × 2 байти = 14 ГБ лише для ваг, плюс 2–4 ГБ для KV-кешу та накладних витрат, всього близько 16–18 ГБ. При INT8: 7 млрд × 1 байт = 7 ГБ для ваг, близько 10–12 ГБ загалом. При INT4 (квантизація GPTQ/AWQ): близько 4–5 ГБ для ваг, 6–8 ГБ загалом. Споживчий GPU з 24 ГБ (RTX 3090/4090) може зручно запускати 7-мільярдні моделі в більшості точностей.
Що таке квантизація і наскільки вона допомагає?
Квантизація зменшує точність ваг моделі з FP32 (4 байти) до FP16 (2 байти), INT8 (1 байт) або INT4 (0,5 байта). Це пропорційно зменшує вимоги до пам'яті і часто прискорює інференс. Квантизація INT8 зазвичай зберігає 99%+ якості моделі при вдвічі меншій пам'яті порівняно з FP16. INT4 економить ще більше пам'яті з дещо більшою деградацією якості. Це найпрактичніший спосіб запускати великі моделі на споживчому обладнанні.
Чому квантування пришвидшує інференс?
Квантування зберігає ваги в меншій кількості бітів — 8 або 4 біти замість 16 — тож на кожен токен треба переміщати менше даних із пам'яті. Оскільки інференс великих моделей зазвичай обмежений пропускною здатністю пам'яті, зменшення байтів на вагу вдвічі приблизно подвоює швидкість токенів із малою і часто прийнятною втратою точності.