Как обслужить LLM на своих GPU
Вопрос
Компания хочет поднять открытую модель на своих GPU для 200 одновременных пользователей. Что вы учтёте?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Память: веса с учётом квантования плюс KV-кеш на пользователей и длину контекста
Движок с continuous batching и PagedAttention (vLLM, TGI, SGLang)
Метрики: TTFT, TPOT, throughput, загрузка GPU, длина очереди
Компромисс размера батча: throughput против задержки
Квантование и проверка качества на своих данных
Масштабирование: реплики, tensor parallel для крупных моделей, prefix caching
Что могут спросить следом
- Как посчитать, сколько GPU нужно?
- Что делать при пиковой нагрузке?
- Когда выгоднее API провайдера?
Разбор
Образцовый ответ: «Сначала профиль нагрузки: длина промптов и ответов, пиковые запросы в секунду, целевые TTFT и TPOT. Память считаю как веса плюс KV-кеш: например, модель на 8 млрд в bf16 около 16 ГБ, а кеш на 200 пользователей по 4 тысячи токенов может быть больше весов, поэтому важны GQA в модели и квантование кеша. Беру движок с continuous batching и paged-кешем, например vLLM, включаю prefix caching для общего системного промпта. Если не влезает, квантую веса в 8 или 4 бита и меряю качество на своём наборе. Крупную модель режу tensor parallel по нескольким GPU, по нагрузке добавляю реплики за балансировщиком. Мониторю TTFT, TPOT, очередь и загрузку, ставлю лимиты на длину и очередь, чтобы при пике деградировать предсказуемо. И сравниваю стоимость с API: при неровной нагрузке API часто дешевле».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.