Skip to content

Инференс, serving и стоимость

English · Русский · AI Interview Atlas › Темы

Обслуживание моделей в масштабе: prefill и decode, батчинг, кеширование, квантизация, метрики задержки и рычаги стоимости.

На этой странице: Оба трека (4) · AI-инженерия (14)

Оба трека

  • Сервис может потратить больше вычислений на один reasoning-запуск или получить несколько кандидатов и проверить их. Как распределить бюджет при ограничении задержки?
    • Прикладной сценарий · 🧪 сгенерировано по темам вакансий · ✍ Ответ · Предложить правку
    • Что проверяет: Умение распределять вычисления по измеренной пользе для задачи с учётом расходов на проверку.
    • Сильный ответ покрывает:
      • Сравнить стратегии на одинаковых отложенных задачах, включая стоимость проверяющего и полную задержку.
      • Измерить успех по сложности задач и выбрать правило маршрутизации, которому не нужен правильный ответ.
      • Задать остановку и резервный сценарий; показать все расходы на успешную задачу и нарушения срока.
    • Читать: Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters (Snell et al., arXiv) · Evaluation best practices (OpenAI API documentation)
  • Разграничьте time to first token, time per output token, inter-token latency и throughput при сравнении систем инференса.
    • Знания · Где спрашивали: Microsoft †, Perplexity † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение отличать задержку для пользователя от совокупной пропускной способности.
    • Сильный ответ покрывает:
      • Определить TTFT как очередь плюс prefill, TPOT и inter-token latency как темп декодирования, throughput как ёмкость.
      • Объяснить, как больший батч обменивает скорость декодирования для пользователя на throughput и как prefill прерывает декодирование.
      • Сравнивать при одинаковой нагрузке и распределении длин: p50 и p99 по каждой задержке, throughput в пределах целей.
    • Читать: vLLM documentation (vLLM project)
  • Как сравнить vLLM, SGLang, TensorRT-LLM и собственный runtime на конкретной нагрузке?
    • Прикладной сценарий · Предложить правку
    • Что проверяет: Умение выбирать по воспроизводимой нагрузке, а не общему рейтингу.
    • Сильный ответ покрывает:
      • Воспроизвести снятую нагрузку: реальные распределения длин промптов и ответов, характер поступления запросов, общие префиксы и параллельность.
      • Зафиксировать модель, точность, параллелизм и оборудование, честно настроить каждый движок и учесть стоимость сопровождения собственного runtime.
      • Сравнивать goodput — запросы в секунду в пределах SLO по TTFT и задержке между токенами — и совпадение выходов с базовой реализацией.
    • Читать: vLLM documentation (vLLM project) · DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving (Zhong et al., arXiv)
  • Вам поручили снизить стоимость инференса на порядок. Расставьте меры по приоритету и объясните, как проверить достижимость цели.
    • Прикладной сценарий · Где спрашивали: Amazon †, Microsoft † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение оценить экономию при явных ограничениях качества и задержки.
    • Сильный ответ покрывает:
      • Измерить стоимость успешной задачи при нужном качестве и SLO.
      • Сравнить меньшие модели, сокращение контекста, переиспользование, батчинг и точность.
      • Измерить каждое изменение и проверить, достигается ли цель в совокупности.
    • Читать: Optimizing inference (Hugging Face Transformers docs) · Site Reliability Engineering (Google)

AI-инженерия

  • Запрос к reasoning API расходует токены, но не возвращает пригодный ответ. Как найти причину и организовать восстановление с ограниченным бюджетом?
    • Прикладной сценарий · 🧪 сгенерировано по темам вакансий · ✍ Ответ · Предложить правку
    • Что проверяет: Умение различать учёт токенов, статус завершения и бюджет повторов.
    • Сильный ответ покрывает:
      • Проверить статус, расход токенов, размер контекста и смысл выходного лимита у провайдера.
      • До восстановления отличить исчерпание лимита от ошибки инструмента, отказа и таймаута.
      • Ограничить попытки, расходы и полное время; измерять успех восстановления и исключать повторные действия инструментов.
    • Читать: Reasoning models (OpenAI API documentation)
  • Сравните prefill и авторегрессионное декодирование: когда узким местом становятся вычисления, а когда пропускная способность памяти?
    • Знания · ✍ Ответ · Предложить правку
    • Что проверяет: Умение определять узкое место с учётом нагрузки и батча.
    • Сильный ответ покрывает:
      • Prefill обрабатывает позиции промпта параллельно, decode идёт авторегрессионно.
      • При малом батче decode часто читает веса и почти не переиспользует их в арифметике.
      • Профилировать длины и батчинг до вывода о вычислительном или memory-bound ограничении.
    • Читать: Optimizing inference (Hugging Face Transformers docs)
  • Объясните батчинг на уровне итераций: как запросы добавляются в выполняющийся батч и покидают его?
    • Знания · Где спрашивали: Anthropic † · ✍ Ответ · Предложить правку
    • Что проверяет: Понимание связи планировщика с утилизацией, справедливостью и ожиданием.
    • Сильный ответ покрывает:
      • Добавлять последовательности на границах итераций и удалять завершённые.
      • Ограничивать токены и KV-память, а не только число запросов.
      • Измерять ожидание и голодание запросов наряду с throughput.
    • Читать: Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv)
  • Как страничная организация KV-кеша сокращает потери памяти и какие задачи остаются планировщику?
    • Знания · ✍ Ответ · Предложить правку
    • Что проверяет: Умение отличать управление памятью от планирования запросов.
    • Сильный ответ покрывает:
      • Объяснить фрагментацию при непрерывном выделении памяти под самый длинный возможный ответ.
      • Описать блоки фиксированного размера с таблицей косвенности и общие блоки между запросами.
      • Назвать нерешённое: приём, вытеснение и справедливость остаются политикой планировщика.
    • Читать: Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv)
  • Объясните точное speculative decoding, проверку предложенных токенов и случаи, когда draft-модель лишь добавляет накладные расходы.
    • Знания · ✍ Ответ · Предложить правку
    • Что проверяет: Понимание условий ускорения без универсальных обещаний.
    • Сильный ответ покрывает:
      • Малая модель предлагает несколько токенов для параллельной проверки целевой моделью.
      • Описать принятие и корректирующий сэмплинг, сохраняющие распределение целевой модели.
      • Оценить долю принятых токенов, стоимость draft и доступные параллельные вычисления.
    • Читать: Fast Inference from Transformers via Speculative Decoding (Leviathan et al., arXiv)
  • Когда префикс промпта можно переиспользовать и какие изменения обесценивают или инвалидируют кеш?
    • Знания · ✍ Ответ · Предложить правку
    • Что проверяет: Учёт точного совпадения, срока жизни кеша и изоляции клиентов.
    • Сильный ответ покрывает:
      • Сформулировать условие переиспользования: одинаковый префикс токенов при той же модели и конфигурации.
      • Расположить промпт так, чтобы стабильная часть шла первой, а изменчивая — последней.
      • Ограничить срок жизни кеша и область записей, чтобы один клиент не читал префикс другого.
    • Читать: Prompt caching (Claude Platform Docs)
  • Сравните форматы с плавающей точкой и целочисленные форматы вплоть до четырёх бит: как проверить допустимость снижения точности?
    • Знания · Предложить правку
    • Что проверяет: Умение сопоставить экономию памяти с качеством, ядрами и поддержкой оборудования.
    • Сильный ответ покрывает:
      • Сравнить неравномерную сетку FP8 и FP4 с равномерной сеткой INT8 и INT4 и масштабы по группам, без которых не обойтись при малой разрядности.
      • Отделить квантование только весов до 4 бит, ускоряющее memory-bound декодирование, от квантования активаций, которому нужны нативные ядра FP8 или INT8 на целевом GPU.
      • Сравнить с bf16 по задачным оценкам и KL на токен, отдельно на длинном контексте, коде и математике, затем измерить реальную пропускную способность.
    • Читать: QLoRA: Efficient Finetuning of Quantized LLMs (Dettmers et al., arXiv) · Optimizing inference (Hugging Face Transformers docs) · GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers (Frantar et al., arXiv) · SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models (Xiao et al., arXiv) · FP8 Formats for Deep Learning (Micikevicius et al., arXiv)
  • Сравните tensor, pipeline, data, sequence и expert parallelism при развёртывании большой модели.
  • Оцените память для обслуживания модели с 70 млрд параметров, явно задав точность, контекст и конкурентность.
    • Прикладной сценарий · ✍ Ответ · Предложить правку
    • Что проверяет: Умение учесть веса, кеш и запас памяти во время выполнения.
    • Сильный ответ покрывает:
      • Память весов — число параметров на байты на параметр, без метаданных квантования.
      • Добавить KV-память конкретной архитектуры для заданных параллельных последовательностей.
      • Заложить активации, рабочие буферы и запас аллокатора; явно указать шардирование.
    • Читать: Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv)
  • Постройте roofline-оценку декодирования модели 70B для одного запроса на H100; сначала проверьте, помещается ли выбранное представление.
    • Прикладной сценарий · Предложить правку
    • Что проверяет: Умение ограничить оценку пропускной способностью памяти, её объёмом и достижимой утилизацией.
    • Сильный ответ покрывает:
      • Сначала проверить, помещается ли модель: 70B в bf16 — около 140 ГБ, больше одной H100 на 80 ГБ; в FP8 почти не остаётся места под KV.
      • Сопоставить байты, читаемые на токен (все веса плюс KV), с примерно 2 FLOP на параметр: декодирование одного запроса упирается в пропускную способность памяти.
      • Ограничить число токенов в секунду достижимой, а не пиковой пропускной способностью HBM и сверить оценку с профилем реального запуска.
    • Читать: Efficiently Scaling Transformer Inference (Pope et al., arXiv)
  • После релиза p99 задержки удвоился, хотя веса модели не менялись. Как локализовать причину?
    • Прикладной сценарий · Где спрашивали: Amazon †, Databricks †, OpenAI †, Perplexity † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение разделить ожидание, планирование, зависимости и изменения трафика.
    • Сильный ответ покрывает:
      • Сравнить состав трафика, время в очереди и задержки этапов до и после релиза.
      • Проверить попадания в кеш, батчинг, хвосты зависимостей и насыщение ресурсов.
      • Проверять гипотезы по одной и подтвердить причинность откатом или canary.
    • Читать: The Tail at Scale (Dean and Barroso, Google Research)
  • Почему разбиение prefill на части помогает смешанному трафику и какой компромисс задаёт размер части?
    • Знания · Предложить правку
    • Что проверяет: Совместный учёт пропускной способности и пауз декодирования.
    • Сильный ответ покрывает:
      • Объяснить паузу: длинный prefill занимает итерацию целиком, все идущие декодирования ждут, и задержка между токенами подскакивает.
      • Смешивать в итерации части prefill с decode в пределах бюджета токенов; мелкие части сглаживают decode, но растят TTFT и накладные расходы.
      • Перебрать бюджет токенов на итерацию на смешанном трафике и сопоставить p99 задержки между токенами с TTFT и пропускной способностью.
    • Читать: vLLM documentation (vLLM project) · Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve (Agrawal et al., arXiv)
  • Когда стоит разделить prefill и decode между воркерами и как оценить накладные расходы передачи KV?
    • System design · Предложить правку
    • Что проверяет: Умение сопоставить независимое масштабирование со стоимостью передачи и эксплуатации.
    • Сильный ответ покрывает:
      • Разделять фазы, когда всплески prefill ломают SLO по задержке decode или фазам нужны разный параллелизм и оборудование.
      • Оценить передачу как байты KV на токен, умноженные на длину промпта и делённые на пропускную способность канала, с послойным перекрытием с prefill.
      • Сравнить goodput на GPU с совмещённой схемой и chunked prefill, учитывая хвост задержки передачи и перебалансировку числа воркеров.
    • Читать: vLLM documentation (vLLM project) · DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving (Zhong et al., arXiv)
  • В первоначальном домашнем задании Anthropic для инженеров производительности, введённом в 2024 году и впоследствии снятом с использования, оптимизируйте последовательную программу для симулятора ускорителя с помощью многоядерного, векторного и инструкционного параллелизма.
    • Кодинг · Где спрашивали: Anthropic ✅ · Предложить правку
    • Что проверяет: Умение методично находить параллелизм и строить инструменты, чтобы измерять и отлаживать каждый шаг.
    • Сильный ответ покрывает:
      • Сначала обеспечить корректность: сверять каждый выход с последовательной версией и исправить имеющиеся ошибки до оптимизации.
      • Найти независимые итерации по зависимостям данных и разложить их по ядрам, SIMD-полосам и слотам инструкций за такт.
      • Измерять циклы симулятора после каждого изменения и по трассе инструкций искать простои и незанятые исполнительные блоки.
    • Читать: Designing AI resistant technical evaluations (Anthropic)

← Основы LLM · RAG и поиск →