AI-инфраструктура и GPU-пулы
(Раздел: Технологии и Инфраструктура)
Краткое резюме
Продакшн-AI — это не «одна модель на одном сервере», а кластер из GPU-узлов, общих пулов ускорителей, унифицированного сервинга, данных/фичей, наблюдаемости и управления стоимостью. Для iGaming это критично в реальном времени: антифрод, персонализация, чат-боты, LLM-ассистенты, рекомендации игр/акций. Базовые кирпичи: Kubernetes/Slurm для планирования, изоляция рабочих нагрузок, высокоскоростная сеть (100/200/400G с RDMA), быстрые хранилища, зрелый MLOps, и «железобетонные» SLO.
1) Архитектурная карта
Слои:1. Кластер вычислений: GPU-ноды (A/H-классы, AMD/ROCm, Intel Gaudi и т.п.), CPU-ноды для препроцессинга/фичей.
2. Сеть: 100G+ Ethernet/IB, RDMA (RoCEv2), NCCL-топологии, QoS.
3. Хранилище: объектное (S3-совмест.), распределенное POSIX (Ceph/грид), локальный NVMe-scratch.
4. Данные/фичи: фичестор (online/offline), векторные БД (ANN), кэш (Redis), очереди.
5. ML-платформа: реестр артефактов и моделей, пайплайны (CI/CD), контроль версий, фичи как код.
6. Сервисный слой: Triton/KServe/vLLM/ text-generation-inference (TGI), A/B/канари-деплой, авторесайз.
7. Говернанс и безопасность: PII, секреты, аудит, политики экспорта, лицензии весов/датасетов.
Типовые нагрузки:- Онлайн-скоринг (p95 ≤ 50–150 мс) — антифрод, рекомендации, ранжирование.
- LLM-сервинг (p95 ≤ 200–800 мс на 128–512 токенов) — чат/агенты/подсказки.
- Пакетная аналитика/дообучение — ночные окна, офлайн-метрики.
- Файнтюнинг/адаптация — периодически, с приоритетом ниже онлайна.
2) GPU-пулы и планирование
Модель пулов
Пул «Сервинг»: короткие запросы, высокий батчинг, строгие SLO.
Пул «Тренинг/Файнтюнинг»: долгие джобы, распределенный тренинг (DDP).
Пул «R&D/Эксперименты»: квоты/лимиты, preemption разрешена.
Пул «CPU/Pre-/Post-processing»: нормализация, токенизация, rerank на CPU.
Планировщики
Kubernetes (+ device-plugin, NodeFeatureDiscovery, taints/tolerations, PriorityClass, PodPriority/Preemption).
Slurm (часто для HPC-тренинга) — можно смешать со K8s через отдельных воркеров.
Фэйр-шэр и квоты: namespace-квоты по GPU, CPU, памяти; «банки» GPU-часов; лимиты по неймспейсу/проекту.
Партиционирование GPU
MIG (Multi-Instance GPU): нарезка ускорителя на изолированные слайсы (для сервинга/мульти-тенантности).
MPS: шаринг SM для мелких задач (следить за интерференцией).
NVLink/PCIe: учитывать топологию при пиннинге подов (Topology Aware Scheduling).
yaml apiVersion: v1 kind: Pod metadata:
annotations:
scheduling. k8s. io/group-name: "ai-serving"
spec:
nodeSelector: { gpu-pool: serving }
tolerations: [{ key: "gpu", operator: "Exists", effect: "NoSchedule" }]
priorityClassName: ai-serving-critical
3) Сеть и межузловая производительность
RDMA (RoCEv2) для NCCL-алл-редьюсов; ECN/PFC-настройки, изоляция классов трафика.
Локализация: тренинг внутри одной «фабрики» (pod/host/оптика), сервинг — ближе к пользователю (edge/регион).
Конгест-контроль: tuned профили, jumbo frames, pin-ning интерфейсов.
4) Хранилище и данные
Хранилище весов/артефактов: объектное (версионирование, immutability).
Датасеты/фичи: Lakehouse (Delta/Iceberg/Hudi) + offline-фичестор; online-фичестор (миллисекундные SLA).
Векторные БД (ANN): Faiss/ScaNN/акселераторы, или вендорные векторные движки; шардирование, HNSW/IVF, репликации.
Локальный NVMe-кэш: прогрев весов/эмбеддингов для холодного старта.
5) Сервинг моделей
Фреймворки
Triton Inference Server (мультимодель, мультирунтайм, динамический батчинг).
KServe (K8s-нативный, autoscaling HPA/KPA, канари).
vLLM/TGI для LLM-токенизации и высокопроизводительного декодинга (paged-attention, KV-кэш оффлоуд).
ONNX Runtime / TensorRT-LLM — для компиляции и ускорения.
Оптимизации
Квантование: INT8/FP8/INT4 (перцентили/калибровка, AWQ/GPTQ) — в онлайне осторожно, мерить качество.
Компиляция графа: TensorRT, TorchInductor/XLA, fused-kernels.
Батчинг/микробатчинг: динамический и статический; для LLM — continuous batching.
KV-кэш: шаринг между запросами, оффлоуд на CPU/NVMe при длинных контекстах.
Спекулятивный декодинг: драфт-модель + верификатор для ускорения токен-произв.
Лимиты токенов/контекста, ранняя остановка, стоп-слова, time-budget на запрос.
Политики деплоя
A/B, канари, shadow — сравнение латентности/качества/бизнес-метрик.
Блю-грин — без даунтайма.
Роллбэк по SLO/ошибкам.
6) Тренинг/файнтюнинг
DDP/FSDP/ZeRO: распределенная память/градиенты, учет NVLink/топологии.
Чекпоинты: инкрементальные/полные, частота vs I/O.
Mixed Precision: bf16/fp16 + loss scaling; профилировать стабильность.
Датасет-шардинг: равномерный итератор, репликация по узлам.
Приоритеты: прерываемые джобы (preemptible) в пользу сервинга.
Автономные пайплайны: data → train → eval → регистр → продвижение в PROD по gate-критериям.
7) MLOps и платформа
Реестр моделей: версии, подписи, зависимости, лицензии/право использования весов.
CI/CD моделей: тесты на совместимость, перформанс-регрессии, quality-гейты, безопасный деплой.
Фичестор: offline/online консистентность (feature parity), TTL и backfill.
Data/Model Lineage: трассировка от датасета до отчета/эксперимента.
Каталог промптов/шаблонов для LLM (версионирование).
8) Наблюдаемость и SLO
Онлайн-метрики:- Латентность p50/p95/p99, tokens/s, batch occupancy, queue wait, GPU-util/SM occupancy, память, ошибки.
- LLM-специфика: токены на ввод/вывод, средняя длина ответа, доля отказов по лимитам, кэш-hit KV.
- Качество: автоматические регрессионные тесты (offline), онлайн-телеметрия (контент-флаги, токсичность, точность выдачи на золотых выборках).
- Бизнес-SLO: конверсия персонализации, точность антифрода, удержание.
Алерты: рост p99/очереди, падение tokens/s, деградация batch-fill, исчерпание VRAM/PCIe-throttle, рост rate-limit отказов.
9) Безопасность, комплаенс и приватность
PII/финданные: сегментация вычислений и данных по регионам, шифрование в покое/в транзите, токенизация.
Секреты/ключи: KMS/Secrets Manager; исключить хранение в образах/коде.
Политики вывода LLM: фильтры безопасности, red-teaming, журналирование промптов/ответов (с анонимизацией).
Лицензии: соответствие лицензиям на датасеты/веса; «no-redistribute»/коммерческие ограничения.
Изоляция тенантов: namespace-RBAC, сети, MIG-слайсы, лимиты и квоты.
10) Стоимость и финопс
Капасити-планирование: профили нагрузки (RPS, токены/сек), «хвосты» турниров и кампаний.
Резерв/Spot: смешанные пулы (reserved + spot/preemptible) с повторной постановкой задач и чекпоинтами.
Автоскейл: HPA/KPA по RPS/queue depth/GPU-util; «теплый старт» с прогретыми весами.
Модельный зоопарк: сокращайте количество вариантов; используйте адаптацию (LoRA/PEFT) вместо полного дублирования.
Кэш: эмбеддинги/результаты дорогих запросов, шаринг KV-кэша для LLM.
Оптимизация токенов: сжатие промптов, retrieval-augmented generation (RAG), rerank до генерации.
11) Мультирегион, HA и DR
Active/Active сервинг ближе к пользователю, глобальный роутинг (latency-based).
Репликация весов и фичей с проверкой целостности; прогрев кэшей при релизах.
DR-план: потеря AZ/региона, эвакуация на резервный пул, контроль зависимости от централизованного каталога.
Chaos-дни: тесты отказа GPU-нод/сетевых доменов/хранилища.
12) Шаблоны конфигураций (концепты)
Triton — динамический батчинг:text dynamic_batching {
preferred_batch_size: [4, 8, 16, 32]
max_queue_delay_microseconds: 2000
}
instance_group { count: 2 kind: KIND_GPU }
KServe — канари:
yaml spec:
predictor:
canaryTrafficPercent: 20 model:
modelFormat: { name: triton }
resources:
limits: { nvidia. com/gpu: "1" }
vLLM — запуск (идеи):
--tensor-parallel-size 2
--max-num-seqs 512
--gpu-memory-utilization 0. 9
--enforce-eager
13) LLM-специфика: RAG и поисковый контур
Индексация: чанкинг, эмбеддинги, ANN-шардирование по `tenant/locale`.
Rerank: легкая модель на CPU/GPU-слайсе для повышения точности.
Кэш промптов/контекстов: дедуп, canonicalization.
Политики цитирования/ответственности для чувствительных доменов (KYC/правила).
14) Чек-лист внедрения
1. Зафиксируйте SLO (p95 latency/tokens/s, доступность) и профили нагрузок.
2. Разбейте кластер на пулы (serving/train/R&D), введите квоты/приоритеты.
3. Включите RDMA/NCCL и топологически осознанное планирование.
4. Настройте хранилища: весов, датасетов, фичестор (online/offline), векторные БД.
5. Выберите сервинг-стек (Triton/KServe/vLLM), добавьте батчинг/KV-кэш/квантование.
6. Запустите реестр моделей, CI/CD, канари/шадоу-деплой.
7. Поставьте наблюдаемость: системные+бизнес-метрики, качества, трассинг.
8. Введите политики безопасности/PII, лицензии, аудит.
9. Оптимизируйте TCO: reserved+spot, автоскейл, кэш, PEFT вместо полных клонов.
10. Подготовьте HA/DR и проведите game-day.
15) Антипаттерны
«Один большой GPU на все» без пулов и приоритетов.
Отсутствие динамического батчинга и KV-кэша для LLM → взрыв p99 и стоимости.
Тренинг и сервинг на одном пуле без preemption → SLO-инциденты.
Нулевая телеметрия качества/безопасности → незаметные деградации и риски.
Централизованный монолит без фичестора/реестра моделей → воспроизводимость отсутствует.
Игнорирование лицензий весов/данных.
Итоги
Успешная AI-инфраструктура — это пулы GPU с умным планированием, высокая сеть и правильные хранилища, эффективный сервинг (батчинг, кэш, квантование, компиляция), зрелый MLOps и строгие SLO. В сочетании с безопасностью/PII, мультирегиональным HA/DR и продуманным финопсом платформа дает стабильный p99, контролируемый $/запрос и быстрое внедрение новых моделей — от антифрода до персонализации и LLM-ассистентов.