[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-time-to-first-token::ru":3,"gloss-cluster-time-to-first-token::ru":23,"gloss-next-time-to-first-token::ru":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"time-to-first-token","mlops","Time to First Token (TTFT)","Time to first token — задержка между отправкой запроса LLM и получением первого токена ответа. В ней доминирует фаза prefill: модель обязана обработать весь входной промпт, прежде чем сможет что-то генерировать, поэтому TTFT растёт с длиной промпта — вопрос на 50 токенов отвечается почти мгновенно, а контекст на 100 тысяч токенов может занять многие секунды до появления первого слова. TTFT измеряют отдельно от межтокенной задержки (темпа токенов после первого), и они по-разному формируют опыт пользователя: TTFT определяет, как долго интерфейс кажется зависшим, а межтокенная скорость — насколько плавным ощущается стриминг. Практические рычаги снижения TTFT: кэширование промптов (пропуск повторной обработки общего префикса), урезание извлечённого контекста, маршрутизация коротких запросов в меньшие модели и стриминг, чтобы пользователь видел вывод в момент его появления. Воспринимаемая скорость часто важнее общего времени ответа. Два уточнения удерживают TTFT от неверного прочтения. Это не то же самое, что общая задержка ответа: модель может начать быстро и всё равно долго дописывать длинный ответ, а может начать медленно и завершить стремительно — поэтому продуктовое решение, принятое по одной лишь общей задержке, часто оптимизирует не ту половину опыта. И это не чистая функция размера модели. Инфраструктурные решения — стратегия батчинга, поколение железа, доступен ли для переиспользования KV-кэш предыдущего хода — сдвигают TTFT существенно и независимо от того, какую модель вы выбрали; поэтому одна и та же модель у одного провайдера кажется вязкой, а у другого мгновенной. Практический рычаг — связь с фазой prefill: раз весь промпт должен быть обработан до появления первого токена, TTFT растёт с длиной ввода, и переиспользование кэшированного состояния префикса — самый действенный способ не платить за prefill дважды. Именно эта связь и объясняет, почему кэширование промпта и контекста существует как платная функция продукта, а не как невидимая оптимизация. Для диалоговых и голосовых интерфейсов метрика близка к решающей: пауза до появления хоть какого-то вывода читается как неотзывчивость так, как медленный, но уже начавшийся вывод не читается никогда. Поэтому ей место в ваших дашбордах задержки отдельной строкой от сквозного времени, причём измерять её стоит по высокому перцентилю, а не по среднему: восприятие функции формирует именно медленный хвост запросов. На продуктовой стороне помогают и дешёвые приёмы: показать вместо спиннера осмысленное сообщение о статусе, заранее прогреть длинный контекст в фоне или отдать первую фразу меньшей модели, передав остальное большой. Всё это улучшает воспринимаемый TTFT независимо от измеренного. Измеренная и воспринимаемая задержка — не одно и то же, а пользователь переживает только вторую.","Time to first token (TTFT) — время до первого токена ответа LLM; метрика, решающая, кажется ли AI-функция зависшей.",null,[11,14,17,20],{"slug":12,"name":13},"inference","Инференс",{"slug":15,"name":16},"latency","Задержка (Latency)",{"slug":18,"name":19},"prompt-caching","Кэширование промптов",{"slug":21,"name":22},"streaming-generation","Потоковая генерация",[24,28,32,35,38,42,45,48,51,54,57,60],{"slug":25,"category":5,"name":26,"updated_at":27},"annotation-guidelines","Инструкции по разметке","2026-08-24T03:30:02+00:00",{"slug":29,"category":5,"name":30,"updated_at":31},"baseline-model","Базовая модель (baseline)","2026-08-24T02:46:38+00:00",{"slug":33,"category":5,"name":34,"updated_at":31},"batch-inference","Батч-инференс",{"slug":36,"category":5,"name":37,"updated_at":31},"canary-prompt","Канареечный промпт",{"slug":39,"category":5,"name":40,"updated_at":41},"champion-challenger","Чемпион–претендент (A\u002FB-тестирование моделей)","2026-08-24T02:46:37+00:00",{"slug":43,"category":5,"name":44,"updated_at":31},"class-imbalance","Дисбаланс классов",{"slug":46,"category":5,"name":47,"updated_at":31},"continuous-batching","Continuous Batching (непрерывная пакетная обработка)",{"slug":49,"category":5,"name":50,"updated_at":31},"cross-validation","Перекрёстная проверка",{"slug":52,"category":5,"name":53,"updated_at":31},"data-labeling","Разметка данных",{"slug":55,"category":5,"name":56,"updated_at":41},"drift-detection","Обнаружение дрейфа (Drift Detection)",{"slug":58,"category":5,"name":59,"updated_at":41},"eval-harness","Испытательный стенд оценки (Eval Harness)",{"slug":61,"category":5,"name":62,"updated_at":41},"experiment-tracking","Трекинг экспериментов (Experiment Tracking)"]