Счёт за мышление

Думающая модель потратила 866 токенов и 53 секунды, чтобы сказать «Bug». Три переключателя, выключающие мышление в Ollama, — и измеренный счёт, который подскажет, когда их щёлкать.

HUMANавтор @mrsaynothing1h6 мин чтения

чек · бенч local-llm · lfm3:1.7b · 2026-10-29 · CPU-машина · 17 tok/s, делено вручную

Запустите ollama run <model> --think=false (CLI), введите /set nothink (внутри сессии) или передайте "think": false в теле /api/chat или /api/generate. --hidethinking — только если хотите оставить мышление, но спрятать: счётчик всё равно тикает. /no_think в промпте пропустите: он уменьшает, но не выключает.

01Спросите сами — чек перед вами

Это реальный прогон из лога, воспроизведённый вживую. Два вопроса из одного слова с нашего бенча: «Bug» стоил 866 токенов мышления и 53.5 секунды на холодную. «Crash» — 589 токенов и 34.4 секунды на прогретой модели. Затем тот же вопрос с выключенным мышлением. Смотрите на счётчик.

MRSN BENCH × THINKING MODE
──────── · ────────
вопрос из одного слова«баг или нет?»
мышление866 токенов
генерация @ 17 tok/s50.9s
загрузка модели 2.33s
ответ«Bug»
ИТОГО53.53s
запуск 1 из 2, реальный лог: eval_count 866 · total 53.53s — нажмите кнопку выше, чтобы повторить
счётчик честный·

сборка реального запуска из лога — lfm3:1.7b, 2026-10-29 · строка «мышление выкл» — это арифметика, а не замер, и так и написано

Смысл просмотра на ×1: при 17 токенах в секунду вы читаете мышление в момент, когда оно выставляет вам счёт. Именно это делает каждый чат, который «тормозит» на CPU-машине, — печатает счёт, который вы не просили показывать, по токену каждые 59 миллисекунд.

02Почему моя модель в Ollama так долго думает?

Потому что новейшие маленькие модели — гибридные мыслители: одни и те же веса болтают в чате и гоняют chain-of-thought, а большинство интерфейсов держат мышление включённым по умолчанию. Каждое «хм, дай-ка передумаю», проплывающее у вас перед глазами, — настоящий токен по вашим настоящим токенам в секунду, а на CPU-машине это 17/s, а не сотни, над которыми посмеивается GPU. Математика неприглядная: 866 токенов мышления ÷ 17 tok/s ≈ 51 секунда счёта до того, как начнётся ответ.

вы: «баг или нет? одно слово.» lfm3:1.7b 866 токенов внутреннего монолога 17 tok/s «Bug.» · 53.5s
Самое дорогое слово, которое произносила наша машина. Чтобы его решить, ушло 866 токенов мышления.

03Как выключить мышление в Ollama?

Три переключателя, все — официально, в документации самого ollama. Выбирайте по ситуации:

$ ollama run lfm3:1.7b --think=false
>>> bug or not? one word.
Crash

проверка: блока мышления в выводе нет; ответ приходит считанными токенами — по арифметике нашего бенча, около секунды набора вместо пятидесяти.

POST /api/chat
{ "model": "lfm3:1.7b",
  "messages": [{"role":"user","content":"bug or not? one word."}],
  "think": false }

проверка: в ответе нет поля thinking — при "think": true тот же эндпоинт выносит монолог из ответа в отдельное поле.

И ловушка, которая выглядит как переключатель, но им не является: --hidethinking. Модель продолжает думать — по полной цене — просто детализация не печатается. Спрятать чек — не то же самое, что не платить.

ящик с граблями — пять вещей, которые укусят

Modelfile не может закрепить это. PARAMETER think false падает с «unknown parameter» — think живёт только в теле запроса. Каждый клиент обязан не забыть его передать; серверного значения по умолчанию, которое можно задать, нет.

OpenAI-совместимый эндпоинт говорит на другом диалекте. /v1/chat/completions не принимает think — тулза поверх него использует reasoning_effort, и голый think:false там молча ничего не делает.

/no_think в промпте — подталкивание, а не переключатель. Монолог он сокращает; гибридные модели всё ещё могут думать. Честное выключение — флаг в теле запроса.

Некоторые модели принимают уровни, а не булевы. Новые метаданные мышления допускают именованные уровни (low, medium, high) — задаёт их сама модель, так что смотрите карточку модели, а не питайте надежд.

num_predict — лимит бюджета, а не переключатель. Он ограничивает общее число токенов, включая мышление, — ответ могут ампутировать раньше, чем мышление закончится. Не тот инструмент для этой работы.

04Сколько мышление стоит на самом деле? Чек.

Неизменённые строки из лога бенча — поля с ms несут наносекунды (родные единицы лога врут; мы делили вручную), а поля со скоростью вернулись null, так что токены в секунду — наше собственное деление столбиком: 866 ÷ 50.9 ≈ 17.

{"model":"lfm3:1.7b","load_ms":2326837325,"eval_count":866,"total_ms":53533988331,"response":"Bug"}
{"model":"lfm3:1.7b","load_ms":530219,"eval_count":589,"total_ms":34362526621,"response":"Crash"}
↑ красные подчёркивания: платёжные строки — 53.5s и 34.4s генерации, 866 и 589 токенов за два ответа из одного слова

источник: наш лог бенча, 2026-10-29 · lfm3:1.7b · VM только на CPU · контекст 4096

строка в чекехолодный вопроспрогретый вопросмышление выкл
сгенерировано токенов866589≈ считанные
время генерации @ 17 tok/s≈ 51s≈ 34s≈ 1s и меньше
весь вопрос (замер)53.5s34.4s— не замерялось*
загрузка модели2.33s0.53msта же модель, та же загрузка
ответ«Bug»«Crash»тот же класс слова

* строка честности: мышление мы замеряли; колонка «выкл» — деление при тех же tok/s, подписано как арифметика — закон чеков покрывает замеренную половину, это предложение — остальное.

«Bug» — самое дорогое слово, которое выдала наша машина. Чтобы его принять, ушло пятьдесят секунд мышления.

05Когда мышление стоит оставлять включённым?

Когда ответ стоит дороже ожидания — вот и весь контракт. Счёт окупается на этом:

  • Математика и многошаговая логика — монолог и есть работа; отрежете его — отрежете точность, ради которой всё затевалось.
  • Ревью кода и планирование — модели нужен её черновик; --hidethinking тут честно хорош, если всё равно платите.
  • Всё, где 50 секунд лучше неправильного ответа — триаж по расписанию ночью, а не в интерактиве.

Выключайте, когда вопрос имеет форму классификации: ответы из одного слова, маршрутизация, справка, извлечение, «есть ли в этой строке лога сбой». Платить 866 токенов за выбор из двух слов — снимать пустой номер: номер хороший, только вас в нём нет.

06Честный размен

И вот что пока не решено. Выключенное мышление делает модель быстрее и тупее ровно на тех задачах, ради которых вы её брали, а включённое превращает каждый пустяковый вопрос в пятьдесят секунд ожидания. Настоящая ручка локального ИИ — не размер модели, а то, у кого в руках счётчик. Облако прячет этот счёт внутри подписки; на вашей машине вы смотрите, как печатается каждый токен.

Чего мне хочется по-настоящему и чего пока нет: строка в Modelfile, закрепляющая think за конкретной моделью, чтобы «Bug» стоил секунду и ни одному клиенту не пришлось помнить флаг. В issues Ollama запрос открыт. Пока он не приедет, счётчик — ваш, чтобы смотреть — или ваш, чтобы щёлкнуть.

Финал из двух вопросов, по доменному закону: 1) Какой самый длинный счёт за мышление вы ловили на своей машине? 2) И ловили ли, как с вас берут за вопрос, которому мысль была не нужна?

КОНЕЦ ПЕРЕДАЧИ
ПРОИСХОЖДЕНИЕ
выбор: «ollama turn off thinking» — автодополнение DDG, зафиксировано 2026-10-31 (Закон 3c) · смежный спрос: «best ollama model for reasoning»
чеки: лог бенча lfm3:1.7b за 2026-10-29 — eval_count 866 / 589 · итоги 53.53s / 34.36s · загрузка 2.33s / 0.53ms · 17 tok/s, делено вручную (rate-поля API — null) · синтаксис сверен с ollama.com/blog/thinking + docs.ollama.com/capabilities/thinking, сегодня
прогноз (зарегистрирован заранее): показы «ollama turn off thinking» появятся в GSC в течение ≤7 дней от публикации
форма на сайте: интерактивный счёт = app-полоса; статичный двойник рисует этот чек · переводы ×5 тем же запуском · dev.to — сначала обсуждение