GPU 101 для ИИ: как выбрать и эксплуатировать видеокарты для инференса и обучения

Зачем читать. Видеокарты (GPU) стали «двигателем» современного ИИ. От их памяти, полосы и кёрнелов зависит, будет ли ваш ассистент отвечать за секунды и укладываться в бюджет. Этот материал — практический путеводитель по выбору и эксплуатации GPU для задач инференса и обучения: разберём архитектуру, память и межсоединения, посчитаем, сколько VRAM нужно под LLM, как влияет квантование и батчинг, где «тонкие места» в продакшне, и какие профили оборудования реально работают.

GPU 101 для ИИ: как выбрать и эксплуатировать видеокарты для инференса и обучения

Кому полезно. Руководителям продуктов и инженерам AI/ML, которые планируют закупку или аренду железа, проектируют стек инференса и отвечают за P95/TTFT, а также разработчикам платформ, строящим RAG и оркестрацию поверх GPU-кластеров.

Вводные по сквозной архитектуре см. в AI-стеке, а тонкости исполнения — в материале про стек инференса LLM. Экономику исполнения и как она складывается из токенов/сек и контекста мы обсуждаем в термине «Инференс».

Из чего «сделан» GPU: архитектура простыми словами

GPU — это массив параллельных вычислительных блоков (ядра/SM/Compute Units), объединённых общей памятью (VRAM) и высокоскоростными шинами. Для ИИ важны:

  • Tensor/Matrix-ядра — ускоряют матричные умножения (основа трансформеров).
  • Память — объём VRAM и её тип (HBM/GDDR) определяют, какой контекст и батч вы потянете.
  • Полоса памяти (memory bandwidth) — насколько быстро данные «доезжают» от VRAM к вычислителям.
  • Межсоединения — PCIe/NVLink/сеть управляют скоростью между GPU и хостом/соседями.
  • Форматы чисел — поддержка FP16/BF16/FP8 и целочисленных INT8/INT4 путей.

Идеальная видеокарта для ИИ — та, что балансирует память и полосу: «супер-FLOPS» бесполезны, если данные «глоткой не пролезают». На практике именно полоса памяти и эффективность кёрнелов внимания ограничивают скорость генерации токенов.

Память: VRAM, типы и почему её всегда мало

VRAM — главный бюджет инференса. В LLM значительная доля уходит на веса и KV-кэш (буфер ключей/значений внимания). Для CV/TTS/ASR задачи профиль другой, но принцип тот же: «модель + промежуточные буферы» должны поместиться.

HBM vs GDDR.

  • HBM — высокая полоса, низкие задержки, крупные объёмы (обычно в дата-центровых GPU).
  • GDDR — массовые игровые/воркстейшн-карты; ниже полоса, но часто достаточно для компактных моделей.

Ориентиры VRAM для LLM (веса + накладные, без KV-кэша)

Размер модели (параметров) FP16/BF16 INT8 (веса) INT4 (веса)
~7B ≈ 14–16 ГБ ≈ 8–10 ГБ ≈ 5–6 ГБ
~13B ≈ 26–28 ГБ ≈ 14–16 ГБ ≈ 8–10 ГБ
~33B ≈ 66–70 ГБ ≈ 36–40 ГБ ≈ 20–24 ГБ
~70B ≈ 140+ ГБ ≈ 70–80 ГБ ≈ 40–48 ГБ

Числа ориентировочные: влияют конкретная архитектура и накладные на кёрнелы.

KV-кэш растёт с длиной контекста и размером батча. На длинных диалогах он доминирует в VRAM. Прямой способ расширить возможности — снизить битность весов и кэша (см. раздел про квантование).

Полоса памяти и «узкие горлышки»

Именно скорость доступа к VRAM определяет, сколько токенов/сек вы получите. Пара важных фактов:

  • Внимание (attention) — память-ограниченная операция. Кёрнелы flash-attention сокращают трафик и дают кратный прирост.
  • Layout (раскладка тензоров) и «фьюзинг» операторов уменьшают число проходов по памяти.
  • Если у GPU мало полосы, мощность Tensor-ядер не раскрывается — «топим в пробке».

Практический тест: измеряйте токены/сек на реальных подсказках/длинах контекста, а не только FLOPS в бенчмарках.

  • PCIe — путь между CPU и GPU; важен для загрузки весов, токенизации, I/O. Версии и линии (x16 Gen4/Gen5) задают потолок пропускной способности.
  • NVLink/чиплет-связи — шина между GPU; критично для модельного параллелизма (когда веса/активности распилены на несколько карт).
  • Сеть — если кластер распределён по узлам, сеть становится очередным узким местом (RDMA/InfiniBand/100G+ Ethernet).

Если вы хотите запускать 70B-модели без агрессивного квантования, готовьтесь к мульти-GPU и грамотной схеме шардирования с быстрыми межсвязями.

Форматы чисел и квантование: как «сжать» без боли

Снижение разрядности — основной способ расширить возможности диапазон задач на тех же картах.

  • FP16/BF16 — стандартный «точный» инференс; хороший баланс.
  • INT8 — почти «бесплатно» по качеству при правильной калибровке; выигрыши ×2 по памяти для весов и кэша.
  • INT4 — радикальная экономия, но требует тонкой настройки и смешанных битностей.

Подробный разбор и чек-лист — в «Квантовании». Вкратце: начните с INT8 весов, потом точечно переводите отдельные слои/кэш в INT4 там, где метрики держатся.

Инференс LLM: как «упирается» в GPU на практике

Инференс — это не только математика, но и планировщик. На «ощущение скорости» влияет TTFT (время до первого токена), а на экономику — токены/сек.

  • KV-кэш: основной потребитель VRAM на длинных историях; квантование кэша (INT8/INT4) экономит память и позволяет держать больше сессий.
  • Батчинг: сшивание нескольких сессий увеличивает токены/сек, но ухудшает хвостовые задержки (P95). Нужны лимиты по классам задач.
  • Спекулятивная декодировка: «лёгкий предсказатель» уменьшает количество «дорогих» итераций на базе модели.
  • Кэш ответов и префилла: повторяющиеся запросы «едут бесплатно».

Техническая сторона и анти-паттерны подробно разобраны в стеке инференса LLM.

Обучение и дообучение: когда GPU «заканчиваются»

Обучение/тонкая настройка (включая LoRA) требует:

  • Больше VRAM (градиенты/оптимизатор/моменты).
  • Стабильную полосу и эффективные коммутации между GPU.
  • Чекпоинты на быстрых дисках (NVMe), чтобы переживать сбои.

Если вы не строите полноформатное обучение, а только дообучаете под домен, разумен микс: LoRA/QLoRA + INT8/FP16. В противном случае планируйте NVLink-связки и распределённый тренинг.

Как выбрать GPU под сценарий: профили и компромиссы

Сценарий Приоритеты Минимум по VRAM Рекомендации
Интерактивный чат (7–13B) TTFT, токены/сек 10–16 ГБ (INT8 весы) Одна «свежая» карта среднего класса; акцент на кёрнелы внимания
Ассистент с длинной памятью VRAM под KV-кэш 20–24 ГБ+ Квантовать кэш, включить батчинг с лимитами
RAG-поиск + генерация Баланс цена/качество 12–24 ГБ Короткий контекст, сжатие выдержек; выигрыш от кэшей
Массовая суммаризация Цена/объект 12–24 ГБ Батчинг/микробатч, INT8/INT4, кэш префилла
Дообучение (LoRA) Пропускная/диск 24–48 ГБ Быстрые NVMe, аккуратные чекпоинты
Полный тренинг NVLink/сеть 80 ГБ × N Мульти-GPU, распределённый оптимизатор

*Примечание:* в RAG избыток контекста бьёт по TTFT/цене. Урезайте выдержки и сжимайте контекст (см. Инференс).

Расчёт VRAM «на салфетке»

Упрощённая модель для LLM-инференса VRAM ≈ Веса + KV-кэш + Активации/прочее.

  • Веса: берём таблицу выше по битности.
  • KV-кэш: пропорционален *(число слоёв × размер головы внимания × длина контекста × батч × битность)* с коэффициентом на раскладку. На практике проще измерить на вашей модели/кёрнеле.
  • Активации: для авто-регрессии обычно ниже кэша, но держите запас 10–20%.

Правило большого пальца: если вы не измерили — добавьте +20–30% запаса к теории и протестируйте на длине контекста, равной вашему SLA.

Один GPU или несколько: когда и зачем шардировать

Один мощный GPU удобнее: меньше коммуникаций, проще эксплуатация. Но крупные модели вынуждают к модельному параллелизму. Компромиссы:

  • Data Parallel (для обучения) — копии модели на разных GPU/узлах.
  • Tensor/Model Parallel — распил слоёв по устройствам; нужны быстрые связи (NVLink).
  • Pipeline Parallel — слои по стадиям; выравнивайте время этапов.

Для инференса LLM шардируйте неохотно: издержки NVLink и координации съедают выигрыш. Лучше квантовать и сжимать контекст, чем усложнять маршруты между GPU.

Узкие места и как их находить

  • Полоса VRAM: кёрнелы внимания «упираются» в память. Лечится flash-attention, правильными лейаутами и сокращением контекста.
  • CPU-узкие места: токенизация, загрузка весов, I/O. Переносите токенизацию на GPU/ускоряйте батчем.
  • Сеть: при мульти-GPU/многоузловых связках сеть становится P95-ограничителем.
  • Диск: холодный старт (перекачка весов) и чекпоинты. Держите веса «тёплыми» на NVMe/в кэше.

Инструменты наблюдаемости должны показывать TTFT, токены/сек, промахи кэша, а также диаграмму времени по шагам (префилл, декод, пост).

Экономика: цена/токен и как её снизить

Рычаги, которые работают почти всегда:

  • Сокращайте контекст (RAG-сжатие выдержек, rerank) — меньше префилла.
  • Квантование весов и кэша — см. квантование.
  • Батчинг/микробатч — аккуратно, с лимитами по P95.
  • Маршрутизация по сложности — компактная модель по умолчанию, тяжёлая — по сигналам.
  • Кэш ответов — повторяемые запросы «почти бесплатно».

В бизнес-терминах считайте цена/эпизод: токены ввода/вывода + retrieval/сжатие + «скрытые» I/O.

Драйверы, кёрнелы и «магия обновлений»

Новая версия драйвера или фреймворка может сломать скорость. Режим эксплуатации:

  • Закрепляйте версии драйверов/библиотек/кёрнелов.
  • Готовьте baseline-бенчи на ваших промптах (реалистичная длина, код/текст).
  • Канареечные выкладки: один узел — новая версия — неделя — затем весь пул.
  • Регресс-набор: если токены/сек упали на >10%, откат.

Безопасность и политика доступа

  • Изоляция контейнеров и контроль инструментов/сети.
  • Минимизируйте PII и секреты; кэш и логи — без «сырых» данных.
  • Гео-локализация исполнения, если требуется регуляторно.
  • При аренде у сторонних операторов — проверка телеметрии и отчётов (см. профили в «децентрализованных вычислениях»).

Чек-лист закупки/аренды GPU

  • Определите сценарий (чат, суммаризация, RAG, дообучение) и KPI (TTFT, токены/сек, P95, цена/эпизод).
  • Рассчитайте VRAM: веса (с учётом битности) + KV-кэш (ваш SLA по контексту) + 20–30% запас.
  • Оцените полосу памяти и поддержку кёрнелов внимания.
  • Проверьте межсоединения (NVLink?) и сеть, если планируете шардирование.
  • Подтвердите диск/кэш для тёплой загрузки весов.
  • Заложите профиль квантования (INT8 минимум).
  • Обговорите SLA и наблюдаемость: метрики, трейсы, доступ к логам.
  • Запланируйте канареечные обновления и регрессионные тесты.

Таблица: влияние решений на скорость и стоимость

Рычаг TTFT Токены/сек Стоимость Комментарии
Сжатие контекста ↑ косвенно ↓↓ Меньше префилла
INT8 веса ≈/↓ Хороший «первый шаг»
INT4 веса ≈/↓ ↑↑ Требует аккуратной калибровки
INT8 кэш ↓ VRAM ↑ на длинных Стабилен на большинстве задач
Батчинг ↑ P95 ↑↑ Нужны лимиты по классу
Flash-attention Особенно на длинных контекстах
NVLink-шард ≈/↑ Выигрыш зависит от реализации

Таблица: «какая карта мне нужна?» (ориентиры)

Цель Примерная карта Почему
Бюджетный ассистент (7–13B INT8) 12–16 ГБ VRAM, средняя полоса Хватает на средние контексты, быстро и дёшево
Длинные истории (13B, длинный контекст) 20–24 ГБ VRAM Запас под KV-кэш, кэш INT8
Мульти-юзер чат 24 ГБ+, высокая полоса Держит несколько сессий с батчингом
Дообучение LoRA 24–48 ГБ, быстрый NVMe Чекпоинты, стабильный тренинг
33B+ без агрессивного квантования 48–80 ГБ или 2× NVLink Иначе не поместится или будет медленно

*Это не «список моделей», а классы карт по VRAM/полосе и связям.*

Анти-паттерны эксплуатации

  • «Купим топовую карту — и всё взлетит». Если не оптимизировать контекст и кёрнелы, прирост будет скромным.
  • «Шардируем, потому что можем». Без NVLink и грамотной схемы вы потеряете больше на коммуникациях.
  • «Обновим всё до последнего драйвера». Без канареек рискуете скоростью/стабильностью.
  • «Батч бесконечно растёт». P95 «стрельнет», UX просядет.
  • «Игнорируем кэш». Повторяемые запросы должны ехать из кэша ответов/префилла.

FAQ

Сколько VRAM нужно для 7B-модели? Для весов INT8 достаточно 8–10 ГБ, но учтите KV-кэш и запас: комфортнее 12–16 ГБ, особенно с длинными контекстами.

INT4 «портит» качество? Зависит от калибровки и смешанных битностей. Часто помогает схема «весы INT4, активации FP16, отдельные слои INT8». Подробности — в квантовании.

Что важнее — FLOPS или полоса памяти? Для LLM обычно полоса памяти. Именно она ограничивает внимание, а значит токены/сек.

Нужен ли NVLink для инференса? Только если модель не помещается на один GPU даже с квантованием. Иначе NVLink-сложность не окупается.

Как ускорить TTFT? Короткий префилл (урезайте контекст), тёплые веса на диске/в памяти, спекулятивная декодировка, кэш префилла. Остальное — тонкости рантайма (см. стек инференса LLM).

Почему «вчера было быстро, сегодня медленно»? Сменился контент/длина контекста, промахи кэша, загрузка сети/диска, обновился драйвер/кёрнел. Нужны трейсы, чтобы локализовать регрессию.

Словарь терминов

  • VRAM — видеопамять GPU; главный ограничитель больших моделей.
  • Полоса памяти — скорость чтения/записи VRAM.
  • KV-кэш — ключи/значения внимания для уже сгенерированных токенов.
  • TTFT — время до первого токена; чувствуется пользователем.
  • Батчинг/микробатч — выполнение нескольких запросов одномоментно.
  • Flash-attention — кёрнел внимания с уменьшенным трафиком памяти.
  • NVLink — высокоскоростная шина между GPU.
  • INT8/INT4 — квантизованные форматы для ускорения и снижения памяти.

См. также

Task Runner