# Почему думающая модель долго молчит: time-to-first-token ничего не говорит о reasoning

> На коробке Strix Halo привычная цифра TTFT выглядела отлично, а большинство запросов возвращали пустой ответ с HTTP 200. Клиентские замеры, три режима работы, evidence-пакеты приложены.

- Published: 2026-08-02
- Evidence level: lab_repeated
- Funding: Собственное финансирование, внутреннее исследование
- Canonical: https://agmind.ai/ru/reports/ttft-thinking-model-strix-halo/

> **Уровень доказательств: `lab_repeated`.** Каждая цифра ниже заново выводится
> из сырых записей по запросам тем запросом, который назван в реестре claims, —
> ни одна не вписана в эту страницу руками. Глубина диагностическая: по три
> измеренных прогона на режим, concurrency 1, один юнит. Это исследование,
> доказывающее работоспособность конвейера перед флагманом, а не сам флагман.
> Цифры с репликацией на втором юните выйдут вместе с замороженной
> пререгистрацией.

## Коротко

Модель, которая размышляет перед ответом, ломает метрику, которую все цитируют.

На протестированной конфигурации привычное время до первого токена выглядит
отлично — пятая доля секунды. Но этот первый токен — токен **размышления**.
Первый токен собственно ответа приходит примерно в сто раз позже, а при
распространённом бюджете токенов большинство запросов ответа не даёт вообще:
вызывающая сторона получает HTTP 200 и пустую строку.

В бенчмарке, который отчитывается токенами в секунду, этого не видно.

## Что измерялось

| Идентичность | Значение |
|---|---|
| Система | Beelink GTR9 Pro (Ryzen AI Max+ 395, Radeon 8060S / gfx1151, 128 ГБ unified) |
| Runtime | llama.cpp `server-vulkan-b9049`, пинен по digest образа |
| Модель | Qwen3.6-35B-A3B Q4_K_M из `ggml-org`, скачана на пиненой ревизии и сверена по хэшу |
| Workload | `interactive-assistant-v1` @ 2026-08-02 — 16 замороженных промптов, EN и RU, три диапазона длины |
| Ячейка | concurrency 1, контекст 8192, temperature 0, кэш промптов выключен |

Замер **клиентский**: секундомер стартует при уходе запроса и снимает время на
токенах по мере их прихода. Серверные `timings` скрыли бы ровно тот эффект,
которому посвящён этот отчёт. Каждый запрос несёт уникальную соль, кэш промптов
выключен — ничего не отвечается за счёт работы предыдущего запроса.

Прогонялись три режима, меняя по одной вещи за раз:

1. размышление включено, бюджет 1024 токена;
2. размышление включено, бюджет 4096 токенов;
3. размышление отключено через chat template, бюджет 1024 токена.

## Результаты

**Привычная цифра первого токена одинакова во всех трёх режимах** — около
**221 ms** ([strix.qwen36.interactive.c1.ttft-any-token](https://agmind.ai/claims/strix.qwen36.interactive.c1.ttft-any-token/)). Она не отличает
конфигурацию, которая отвечает сразу, от той, которая не отвечает никогда.

**С включённым размышлением ответ начинается сильно позже.** При бюджете 4096
первый токен **ответа** приходит с медианой
**23453 ms** ([strix.qwen36.interactive.c1.ttfa-thinking](https://agmind.ai/claims/strix.qwen36.interactive.c1.ttfa-thinking/)). Всё это время
пользователь смотрит на поток токенов — это модель думает вслух, а не отвечает.

**При меньшем бюджете большинство запросов ответа не дало.** С включённым
размышлением и бюджетом 1024 токена
**75.0 % of requests** ([strix.qwen36.interactive.c1.answerless-1k](https://agmind.ai/claims/strix.qwen36.interactive.c1.answerless-1k/)) запросов вернули
успешный HTTP-ответ с пустым содержимым: размышление съело весь бюджет до того,
как начался ответ. Приложение, которое смотрит на коды статуса, записало бы их
в успешные.

**Отключение размышления схлопывает разрыв.** С выключенным блоком размышления
первый токен ответа приходит на
**220 ms** ([strix.qwen36.interactive.c1.ttfa-nothink](https://agmind.ai/claims/strix.qwen36.interactive.c1.ttfa-nothink/)) — ответ начинается
вместе с потоком. Медианное сквозное время упало примерно в пять раз против
ячейки с размышлением и бюджетом 4096, а ответы по-прежнему прошли гейты языка
и повторов.

**Один гейт не прошёл ни в одном режиме.** Половина ответов вышла за объявленный
для промпта бюджет слов. Это свойство многословности модели, а не режима
размышления, — и именно поэтому конфигурация не получила бы безоговорочный pass
на этом workload.

## Что это значит на практике

- **Цифра первого токена без определения бесполезна.** Спрашивайте, какой это
  токен: первый в потоке или первый принадлежащий ответу. На думающей модели это
  два разных вопроса с разницей в сто раз.
- **Бюджет токенов — настройка корректности, а не только стоимости.** Ниже
  бюджета, нужного проходу размышления, эндпоинт возвращает успех и пустоту.
  Мониторинг, следящий только за кодами статуса, этого не заметит.
- **Ответы-пустышки принадлежат вашему error rate.** В этом исследовании они
  засчитаны как отказы и остаются в знаменателе каждой метрики задержки.

## Чего это не устанавливает

Не заявление о ёмкости: только concurrency 1. Не вердикт о качестве: гейты
покрывают формат, язык и повторы, а не корректность. Не заявление об устройстве:
один юнит, один digest образа, один артефакт. Повторено, но не реплицировано: по
три измеренных прогона на режим на одном юните — поэтому уровень доказательств
`lab_repeated`, и operating envelope здесь не рекомендуется. Стоит ли
отключение размышления потери качества ответов — не проверялось; вероятно да, и
это отдельная квалификация.

## Доказательства

Каждый прогон произвёл пакет: манифест с полной идентичностью, записи по каждому
запросу включая отказы, результаты гейтов, лог runtime и файл контрольных сумм.
Цифры в отчёте заново выводятся из этих записей SQL-запросами, лежащими рядом с
claims; сборка падает, если отрендеренное значение перестаёт совпадать со своим
доказательством. Как это устроено — на странице
[доказательств и данных](https://agmind.ai/ru/data/).

---

Machine-readable claim registry: https://agmind.ai/claims.json · llms.txt: https://agmind.ai/llms.txt
