Вычисления и выделение ресурсов
Получение GPU-мощностей, пулы узлов, драйверы и стеки CUDA, совместимость которых с движком сервинга поддерживается постоянно.
Всё, что окружает модель и позволяет ей обслуживать запросы: компоненты платформы, эксплуатационная дисциплина для безопасной выкатки изменений модели, масштабирование при всплесках нагрузки, работа в нескольких регионах и облаках и сборка нескольких моделей в один продукт.
Получение GPU-мощностей, пулы узлов, драйверы и стеки CUDA, совместимость которых с движком сервинга поддерживается постоянно.
Движок инференса плюс шлюз перед ним: аутентификация, квоты, маршрутизация, переключение между бэкендами при отказе.
Размещение моделей на оборудовании, политики автомасштабирования, динамическое распределение ресурсов между нагрузками.
Какая модель, какие веса, промпт и конфигурация работают и где именно; способность ответить на этот вопрос является обязательным условием безопасных изменений.
Контроль доступа к вызовам и к артефактам модели, защита промптов и ответов, аудит того, кто и что менял.
Себестоимость обслуживания по каждой нагрузке и каждой функции; рычаги влияния: выбор модели, соответствие оборудования задаче, батчинг, маршрутизация и политика масштабирования.
Эксплуатационная практика, которая относится к деплою моделей с той же строгостью, что и к деплою кода, но адаптирована к артефактам, у которых отказы проявляются в поведении, а не только в падениях:
Трафик инференса приходит всплесками, а GPU-минуты дороги в обе стороны: избыточное выделение ресурсов тратит деньги, недостаточное теряет запросы. Эластичное масштабирование для LLM сложнее классического автомасштабирования по двум причинам:
Новая реплика платит три счёта подряд: выделение GPU-инстанса, скачивание большого образа контейнера и загрузка десятков гигабайт весов из хранилища в память GPU. Меры противодействия работают на каждом этапе: тёплые пулы, кеширование и облегчение образов, веса на быстром локальном хранилище или их параллельная потоковая загрузка. Масштабирование до нуля экономит на простое, но перекладывает весь холодный старт на первый запрос; решайте отдельно для каждой нагрузки.
Утилизация CPU мало что говорит о сервисе, который упирается в GPU, а показанная утилизация GPU может выглядеть высокой, пока чип делает мало полезной работы. Масштабируйтесь по сигналам со стороны спроса: глубина очереди, число одновременных запросов в работе и частота запросов, соотнесённые с размерами батчей, которых движок реально достигает.
Продуктовые функции редко состоят из одной модели. Ответ с дополнением из поиска соединяет в цепочку модель эмбеддингов, поисковик, часто переранжировщик, генератор и проверки безопасности; обработка документов соединяет OCR, разбор вёрстки, классификацию и суммаризацию; мультимодальные ассистенты добавляют энкодеры под каждую модальность. Сборка из специализированных моделей выигрывает у одной монолитной, когда у этапов разные требования к возможностям, разные оптимальные конфигурации железа и разное поведение при масштабировании.
Самостоятельно управляемая инфраструктура инференса несёт расходы, которые редко попадают в первую оценку: закупка GPU на дефицитном рынке, автомасштабирование и контроль конкурентности, построенные и настроенные вручную, оптимизации (кеширование префиксов, дизагрегация), которые платформы дают из коробки, а самодельный стек обязан реализовать сам, наблюдаемость с учётом GPU и бесконечная гонка версий движка, фреймворка и драйверов, которые должны двигаться синхронно. Добавьте прикладную обвязку (пред- и постобработка, коннекторы, поведение стриминга и кеширования для каждой модели) и дефицитных дорогих специалистов, которые всё это ведут. Взвесьте эти регулярные инженерные расходы против стоимости платформы и упущенной выгоды от того, что команда не строит; правильный ответ зависит от масштаба, и его стоит пересматривать по мере роста объёмов.