Skip to main content

Скорость генерации (TPS / TTFT / Latency)

Ключевые инженерные показатели производительности языковых моделей: Time to First Token (время реакции на входной контекст) и Tokens Per Second (скорость потоковой генерации выходного текста).

1. Обзор концепции и системная проблема

В инженерных дискуссиях производительность моделей часто сводят к размытым определениям «быстрая» или «медленная». Такой любительский подход приводит к провалу систем реального времени: интерфейс голосового бота зависает на несколько секунд перед ответом, автодополнение кода в IDE раздражает задержкой появления символов, а фоновые агентские циклы застревают в многочасовых очередях.

Реальный инференс больших языковых моделей подчиняется законам физики полупроводников и делится на две абсолютно разные аппаратные фазы:

  1. Фаза префилла (Prefill / Context Phase): параллельная обработка входного промпта.
  2. Фаза декодирования (Decode / Generation Phase): последовательная генерация выходных символов токен за токеном.

Метрики TTFT (Time to First Token) и TPS (Tokens Per Second) — это системный компас инженера, который определяет архитектуру очередей, выбор оборудования и пользовательский опыт интерактивных приложений.

2. Архитектурная таксономия и ментальная модель

Метрики задержки и пропускной способности классифицируются по этапам жизненного цикла запроса:

┌─────────────────────────────────────────────────────────────┐
│                 INFERENCE LATENCY TAXONOMY                  │
├─────────────────────────────────────────────────────────────┤
│ 1. Queue Time (Очередь ожидания свободных ресурсов GPU)     │
├─────────────────────────────────────────────────────────────┤
│ 2. Prefill Phase ➔ TTFT (Time to First Token)               │
│    • Compute-Bound (TFLOPS Tensor Cores)                    │
│    • Прямой расчет KV Cache для всего входного текста       │
├─────────────────────────────────────────────────────────────┤
│ 3. Decode Phase ➔ TPS / ITL (Inter-Token Latency)           │
│    • Memory-Bandwidth Bound (GB/s шины VRAM)                │
│    • Последовательное чтение весов на каждый токен          │
├─────────────────────────────────────────────────────────────┤
│ 4. Total E2E Latency = TTFT + (N_generated_tokens * ITL)    │
└─────────────────────────────────────────────────────────────┘
  1. TTFT (Time to First Token — время до первого токена):
    • Количество миллисекунд от момента отправки HTTP-запроса клиентом до получения первого байта потокового ответа. Состоит из задержки сети, ожидания в очереди и времени расчета префилла.
  2. TPS (Tokens Per Second — скорость генерации):
    • Количество токенов, которое система выдает за одну секунду. Для одного стрима это $1 / \text{ITL}$. Для всего сервера (Aggregate Throughput) — это суммарное количество токенов, сгенерированное всеми клиентами одновременно.
  3. ITL (Inter-Token Latency — межтокенная задержка):
    • Время между появлением соседних токенов во время стриминга. Для человеческого глаза комфортный показатель составляет менее 30 мс на токен (соответствует >33 TPS).
  4. Спекулятивное декодирование (Speculative Decoding):
    • Алгоритмический трюк, который преобразует часть операций фазы Decode в параллельную проверку, увеличивая чистый TPS в 2–3 раза без потери точности.

3. Технический пайплайн и внутренняя механика

Жизненный цикл инференса под микроскопом таймингов:

  1. Прием запроса и постановка в батч: Запрос из 4000 токенов кода попадает в движок инференса (например, vLLM).
  2. Префилл (Prefill Phase): GPU загружает матрицы весов и параллельно умножает все 4000 токенов на ядрах Tensor Cores. Вычисляются векторы Q, K, V и инициализируется память KV Cache.
  3. Эмиссия первого токена (Фиксация TTFT): Первый токен отправляется клиенту через Server-Sent Events. Если промпт кэширован (Prompt Caching), этот этап занимает 50 мс; если нет — от 500 мс до 3 секунд.
  4. Последовательный цикл декодирования (Decode Loop):
    • Для генерации одного токена видеокарта должна прочитать все 70 миллиардов параметров модели из VRAM в кеш кристалла.
    • На памяти с пропускной способностью 1000 ГБ/с (RTX 4090) чтение 35 ГБ квантованной модели занимает: $$35 \text{ ГБ} / 1000 \text{ ГБ/с} = 35 \text{ мс на токен} \approx 28 \text{ TPS}$$
  5. Завершение запроса: Генерация заканчивается по достижению токена <|im_end|> или лимита длины, и ресурсы KV Cache освобождаются для других запросов.

4. Практические инженерные сценарии в продакшене

01. Разработка голосового ассистента с живой реакцией (Human-Like Latency)

Человек замечает паузу в разговоре, если ответ задерживается более 500 мс:

  • Инженеры выбирают модель Gemini 2.0 Flash или Mistral NeMo с локальным размещением.
  • Благодаря оптимизации стека TTFT сокращается до 180 мс, преобразование текста в голос (TTS) занимает еще 120 мс. Суммарное время реакции в 300 мс создает эффект живого диалога.

02. Высокоскоростное автодополнение в IDE (Ghost Text)

Разработчик печатает код в Cursor со скоростью 5 символов в секунду:

  • Любая задержка более 150 мс приводит к тому, что подсказка появляется уже после того, как разработчик напечатал новый символ.
  • Для таких задач используют специальные легкие модели (3B–7B параметров) или спекулятивные движки, которые выдают первые символы за 40–80 мс.

03. Пакетная обработка больших массивов документов в бэкенде

Ночная обработка 100 000 пользовательских PDF-файлов:

  • Отдельный TTFT для каждого файла не имеет значения.
  • Сервер оптимизируется под Aggregate Throughput: через непрерывный батчинг (Continuous Batching) в vLLM кластер параллельно обслуживает 256 потоков, достигая суммарной скорости 4 000 токенов в секунду.

5. Подводные камни, типовые ошибки и безопасность

  • Падение TPS во время исчерпания KV Cache: Когда видеопамять заполняется на 95%, движок начинает выгружать кеш на SSD или CPU. Скорость генерации мгновенно падает в десятки раз, парализуя систему.
  • Слепая гонка за TPS без контроля качества: Модель с высокой скоростью (200 токенов/с), которая генерирует неработающий код с синтаксическими ошибками, лишь увеличивает время разработки на ручные исправления.
  • Иллюзия скорости через сетевую буферизацию: Если прокси-сервер (Nginx или Cloudflare) буферизует ответ вместо потоковой передачи (отсутствует заголовок X-Accel-Buffering: no), клиент не увидит ни одного токена, пока модель не сгенерирует весь текст полностью.
  • Влияние длины контекста на TTFT: При увеличении входного промпта с 2 000 до 100 000 токенов время префилла без включенного кэширования растет непропорционально, превращая «быструю» модель в медленную.
/ Частые вопросыSchema.org FAQPage

FAQ: Скорость генерации (TPS / TTFT / Latency)

Фаза Prefill параллельно обрабатывает весь входной промпт и ограничена чистыми вычислениями тензорных ядер GPU (Compute-Bound). Фаза Decode генерирует токены по очереди и жестко ограничена скоростью чтения весов из видеопамяти (Memory-Bandwidth Bound).
/ Внутренняя перелинковка
Все термины
Модели и Инференс

Gemini Flash & Pro (Google Gemini)

Семейство мультимодальных моделей от Google DeepMind, объединяющее рекордное контекстное окно (до 2 млн токенов), экстремальную скорость генерации (более 150 токенов/с) и нативное восприятие видео и аудио.

Читать термин
Модели и Инференс

vLLM (Высокопроизводительный движок инференса)

Ведущий открытый серверный движок инференса и обслуживания LLM, который произвел революцию в пропускной способности благодаря алгоритму виртуализации памяти PagedAttention и непрерывному батчингу.

Читать термин
Модели и Инференс

Параметры Семплирования (Температура, Top-p, Min-p)

Математические гиперпараметры стохастического декодирования (Temperature, Top-P, Min-P, Penalties), управляющие распределением вероятностей выбора следующего токена, определяя уровень детерминизма, точности и креативности модели.

Читать термин
Модели и Инференс

MoE (Mixture of Experts - Смесь Экспертов)

Архитектурный подход в глубоком обучении, где тяжелые полносвязные слои трансформера разбиваются на десятки специализированных подсетей («экспертов»), а динамический маршрутизатор активирует лишь небольшую часть из них для каждого отдельного токена.

Читать термин