GPU, ускорители и инфраструктура LLM · проверено по источникам

Обработка входного контекста LLM

Prefill — обработка уже известной входной последовательности перед её продолжением языковой моделью. В обычном причинном декодере вычисляются представления входных позиций, распределение для первого нового токена и, при включённом кэше, K/V для последующего decode.

Также ищут: inference prefill · prefill · prompt processing · этап prefill · обработка промпта

Практический смысл

Почему это важно

Большой вход может задержать начало ответа, даже если дальнейшие токены появляются быстро. Измерение prefill нужно отделять от очереди и доставки, а сравнение — проводить на точной длине входа с указанием, переиспользовался ли уже подготовленный префикс.

Доказательная часть

Что подтверждено

  1. Prefill можно объяснить как проход причинного декодера по уже известному входу: вычисления нескольких входных позиций могут выполняться совместно. Причинная маска при этом не даёт позиции использовать будущие токены. Известность полного входа не означает, что будущие выходные токены можно выбирать независимо.

    Граница применимости: Производное объяснение: Transformer задаёт причинную маску, PagedAttention рассматривает K/V при авторегрессионном обслуживании. Название serving-этапа prefill и его планирование не приписываются статье Transformer. Область — обычный причинный декодер с полным входным проходом.

  2. Если инференс использует KV-кэш, при обработке входа сохраняются представления ключей и значений нужных слоёв и позиций. Decode затем использует их вместо повторного вычисления тех же K/V; при выключенном кэше или другом механизме состояния этот путь меняется.

    Граница применимости: Трансформерный декодер с поддержанным use_cache; не универсальное требование хранить все промежуточные тензоры механизма внимания.

  3. Для обычного decoder-only продолжения распределение следующего токена берут из выхода последней позиции обработанного входа. После выбора из этого распределения получается первый новый токен; сам вход на 4096 токенов не является генерацией 4096 токенов ответа.

    Граница применимости: Непустой вход, обычная причинная авторегрессионная генерация; речь о модельном токене, а не о первом байте сетевого ответа.

  4. Время prefill описывает вычислительный этап, а время до первого токена зависит от выбранной границы сервиса. До и после prefill могут находиться очередь, токенизация, переносы, выбор токена и доставка; без трассы нельзя присвоить всю начальную задержку одной обработке входа.

    Граница применимости: Измерение одного сервиса с заданными начальной/конечной точками; этапы могут перекрываться, поэтому их длительности не всегда складываются механически.

  5. При полном причинном внимании число пар входных позиций растёт квадратично с длиной, а проекции и другие слои дают отдельную работу. Из этой зависимости нельзя вывести точное время prefill или размер рабочих буферов: они зависят от реализации операций, формы матриц и аппаратного исполнения.

    Граница применимости: Полное внимание по входу, без оконного или разреженного внимания и повторного использования префикса; асимптотика не является замером конкретной реализации.

  6. Движок с поддержкой совместного использования подготовленного префикса может не пересчитывать уже подходящие K/V. Поэтому холодный запрос и запрос с повторно используемым префиксом — разные условия замера; выигрыш второго нельзя обещать для произвольного нового текста.

    Граница применимости: Только точный префикс, модель и условия повторного использования кэша выбранного движка; наличие такой функции у любого сервера не предполагается.

  7. Нельзя безусловно считать prefill ограниченным только вычислительной мощностью: ограничивающий ресурс зависит от длины и пакета запросов, модели, реализации операций, обмена и устройства. При смене этих условий узкое место может измениться, поэтому профиль измеряют отдельно от decode и указывают фактический режим нагрузки.

    Граница применимости: Инженерная интерпретация производительности оборудования и сервиса; универсальный коэффициент масштабирования по длине не задаётся.

Граница терминов

Не путать

Пошаговая генерация LLM

Prefill обрабатывает известный вход, decode продолжает его выбранными токенами. Их формы работы и зависимость от длины различаются; быстрый decode не доказывает короткое ожидание первого токена.

Время до первого токена

Prefill — этап вычислений. TTFT — интервал между явно названными событиями сервиса, в который могут войти очередь, подготовка и доставка; эти величины нельзя подменять друг другом.

KV-кэш языковой модели

Prefill производит K/V входного префикса при включённом кэше, а KV-кэш — сохраняемое состояние для дальнейших шагов. Наличие места под кэш не доказывает длительность его построения.

Перед спецификацией

Что проверить

  1. Укажите модель, длину полного входа и действующий токенизатор.
  2. Проверьте use_cache и какие данные prefill оставляет для decode.
  3. Отделите модельный первый токен от первого доставленного сетевого фрагмента.
  4. Зафиксируйте, использовался ли готовый префикс или вход обрабатывался впервые.
  5. Измерьте очередь и подготовку отдельно от вычислительного этапа.
  6. Сравните несколько длин и размеров пакета; не объявляйте один ограничивающий ресурс навсегда.
  7. Проверяйте одновременно память, начальную задержку и качество длинного входа.
Открытые основания

Первоисточники

  • Первичная публикация

    Attention Is All You Need

    Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Открыть первоисточник
  • Первичная публикация

    Efficient Memory Management for Large Language Model Serving with PagedAttention

    Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Открыть первоисточник
  • Официальная документация

    Transformers 4.44.2: Generation

    Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Открыть первоисточник
  • Официальная документация

    CUDA C++ Programming Guide

    NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие