Малоизвестный среди обычных людей факт: у нейросетей нет никаких "разговоров". Ты смотришь в веб-интерфейсе на "диалог" - но это обман, красивый фокус.

Каждый раз, когда ты пишешь новое сообщение, все старые сообщения обрабатываются заново. У нейросетей по-настоящему многоразовых задач не существует. Если результат немного поменялся — тебе просто не покажут в веб-интерфейсе изменившиеся сообщения.

Иначе пользователь чувствовал бы себя как в дурке, ИИ его бы постоянно как бы газлайтил, изменяя старые ответы без предупреждения. И стоило бы это вагон денег. По факту, история переписки в ИИ-чатах фиксирована, тем или иным способом.

Почему так сделали? Ну, как придумали по-быстрому, так и сделали. И так сойдет. Отрасль развивается так стремительно, что страшно засыпать - пока ты спишь, кто-то пишет и публикует новые работы. Есть все основания считать, что такая ситуация не будет вечной. "Attention is all you need" был написан в 2017 году, в масштабах истории — это почти вчера.

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

У многих нейросетей можно указывать настройки. Особенно если это не веб-интерфейс ChatGPT, а нечто, запущенное локально на твоем компьютере. И Если додолбаться до слов, то при фиксированных параметрах запуска (например, temperature=0 и seed), и идентичном входном вопросе, ответ детерминирован. Но кому нужна нулевая температура и одинаковые ответы тулов?

Кроме того, настоящие процессоры из железа отличаются от идеальной математической модели. Арифметика с плавающей точкой на GPU недетерминирована по умолчанию. Даже с одинаковым сидом, можно получить разные ответы на разных GPU или даже разных запусках. С общей тенденцией делать облачные "kubernetes для GPU", которой сейчас озабочены примерно все, быть уверенным нельзя ни в чем.

(Тут внимательный читатель может доскрестись до слов и сказать: на самом деле, арифметика с плавающей точкой строго детерминирована, и ее поведение подробно документировано в спеках железа. Это утверждение, справедливое в смысле IEEE 754, дальше сталкивается с практикой разработки. Например, сложение float не ассоциативно: (a + b) + c != a + (b + c). Вычисления все массивно параллельные. Когда тысячи ядер GPU суммируют миллионы чисел параллельно, порядок редукции может меняться от запуска к запуску. И что куда важнее, CUDA/cuDNN по умолчанию используют недетерминированные алгоритмы ради скорости. А мы все плотно сидим на Nvidia, это как героин.)

При увеличении контекста, у тебя нелинейно (в большую сторону) растёт РАСХОД И СТОИМОСТЬ всех используемых ресурсов. Можно об этом думать как о последовательном увеличении стоимости токена и прогрессирующем отупевании.

Квадратичная сложность, минимум O(n²) по длине контекста — это фундаментальная проблема текущего поколения механизмов внимания. Генерация n+1-го токена требует внимания ко всем предыдущим n. Это жесть.

Существуют смелые эксперименты как поправить это фундаментально. Некоторые новые архитектуры (Mamba, RWKV) могут дать почти линейную сложность. Но это не то, чем вы пользуетесь в интерфейсе ChatGPT, и не на эти эксперименты Трамп собирается сжечь 500 миллиардов денег.

AI-модели текущего поколения - все stateless, у них нет "памяти разговора" между вызовами API.

Конечно, за последнее время придумали лютую гору оптимизаций, и теперь это утверждение "каждый раз заново" - это не совсем так. Самая мощная оптимизация - и самая первая приходящая в голову! - это кэш ключ-значение. Проекции уже обработанных токенов кладутся в кэш, и это означает теоретическую почти линейную скорость O(n).

Но по факту, у тебя и нейросеть там не одна работает (особенно в мультиагентных мультимодальных решениях - типа генерации картинок внутри ChatGPT), и инструменты выдают неповторяющиеся результаты, и накладные расходы имеются. Короче, всё не так радужно, и там не O(n).

И справедливо всё это только для инкрементальной генерации следующего токена. Первичная обработка всего промпта всё равно O(n²).

KV-cache экономит на повторном вычислении K и V для старых токенов. А вот attention для каждого нового токена всё равно требует просмотра всех предыдущих — это O(n) на токен. Корректнее: KV-cache превращает генерацию m токенов из O((n+m)² · layers) в O(n² + nm · layers). Это существенная экономия, но не "почти линейная" в общем смысле.

(Тут внимательный читатель мог бы снова доскрестись к словам и сказать: но префилл же очень дешевый! О каких огромных деньгах ты говоришь? Окей, если сравнивать с квадратичной сложностью и квадратичными деньгами это вообще нисколько. А если сравнивать в абсолютных числах — уважаемый, а вы бы сходили и поставили в интернете бесплатный Redis для всех, ну чисто по доброте душевной, это же дешево. Вот как поставите, так и будем считать, что префилл дешевый, а пока я побуду жадным).

Получается, общая сложность генерации m токенов: O(n² + nm + всякая_фигя) · непонятный_коэффициент + оверхед. Не очень опитмистичная формула.

Ну, если вы вдруг задумывались, зачем греются датацентры и сливаются бабки, то вот на это.

Но для богатого молодого человека, которому наплевать на стоимость токенов, всё равно есть один дракон, которого не победить деньгами.

По ходу диалога нейросеть становится не только дороже, но и тупее. Типичные ошибки это "lost-in-the-middle" — модели хуже извлекают информацию из середины длинного контекста и "attention dilution". Softmax размазывается по большему числу токенов, да и сама модель в период обучения учится определённым паттернам внимания на тренировочных данных с ограниченной длиной.

Про это тоже придумали множество оптимизаций, типа sparse attention и разные чудеса, которые показывает Gemini на контексте в миллион токенов. Большинство коммерческих моделей до сих пор использует до вполне себе dense attention, но с оптимизациями типа FlashAttention. Важно, что Flash Attention — это IO-оптимизация, минимизация обращений к HBM, она не вычислительная. Сложность остаётся O(n²), но константа сильно меньше за счёт tiling и fusion.

Казалось бы, всё хорошо? Напротив. Проблема встала только острее, потому что, если раньше миллион токенов казался каким-то заоблачным числом, теперь это просто час работы программиста в Claude Code / OpenAI Codex / Antigravity.

Но! Релевантный контекст всё ещё помогает. Это не монотонная неизбежная деградация, а "немного избежная". Например, обратная сторона lost-in-the-middle - это полезный recency bias. То, что ты сказал в самом начале разговора, и то что ты сказал самым последним запросом - имеет больший приоритет, чем всё остальное. Поэтому, нужно самые важные вещи либо говорить сразу в начале разговора. Либо повторять раз за разом, снова и снова - как дедушке с деменцией, или как очень тупой подруге.

Таких приёмов много. Когда ты используешь нейросеть, ты их моментально их придумываешь на ходу. Это не какой-то учебник со "всеми правильными приемами". Ты понимаешь, как работает эта конкретная нейросеть, на каких принципах она основана, какие у нее плюсы и минусы, как ее обучали - и быстро придумываешь способ справиться с проблемами.

Айзек Азимов когда-то предположил появление робопсихологов. А это скорее, робопсихиатрия - когда обычная психология не помогает, но можно глотать очень хорошо подобранные колёса. Если вы не знаете, чем бы заняться в изучении нейросетей - можно посмотреть на это, там поразительная глубина.

В итоге, как оплачивается нейросеть?

У тебя была последовательность вопроса и ответа:

Q1 - A1

Ты пошел и написал еще вопрос, расширив её до:

Q1 - A1 - Q2 - A2

По тарифам на input, за каждый следующий раз, ты заплатишь за всю цепочку: Q1 - A1 на первом шаге, Q1 - A1 - Q2 - A2 на втором шаге. Расширяя цепочку, ты вначале заливаешь весь уже существующий контекст в input.

Но по тарифам output (в несколько раз дороже, чем input) ты заплатишь только за A2.

Без этого, цены были бы совсем безумные. Если учитывать и стоимость вычислений, получалось бы что-то типа O(n⁴) в худшем случае для всего диалога, и чатиками бы никто не пользовался. Чат на десять вопросов могли бы позволить себе только очень богатые люди, типа Трампа.

Но провайдеры не перекладывают вычислительную сложность напрямую на пользователя, они во-первых мутят крутые оптимизации.

В том числе это и оптимизации по стоимости: если между запросами начало контекста не меняется, у Anthropic/Claude ты платишь в 10 раз меньше, это называется prompt caching.

А еще, посмотрите на тарифы output токенов. У китайцев они могут быть всего в 3 раза дороже. У OpenAI - в четыре, у Anthropic/Claude - в пять.

Anthropic вообще знатно офигели, ждем когда Grok и Gemini покажут всем кузькину мать. Впрочем, DeepSeek V3 на порядок дешевле западных аналогов, и кузькина мать может прийти откуда не ждали.

Во-вторых - сейчас все 200/300 баксовые тарифы от Claude и Grok - субсидируемые за счет инвестиций. Ты пользуешься своей подпиской и не заморачиваешься до поры до времени.

Но все же понимают, что это кроилово, а кроилово приводит к попадалову.

Провайдерам жизненно важно скрыть от массового пользователя, сколько всё это на самом деле стоит. И то, что их "богатые" 200-баксовые подписки это пыль на ветру. Только так можно продолжать расти дальше за счет повышения уровня ожиданий массового потребителя.

AI bubble вполне может лопнуть. Вот почему всем, кто собрался поставить свою жизнь и карьеру на кон нейросетей, нужно понимать экономику inference. Не похоже, что юнит-экономика провайдеров сейчас сходится. Сколько OpenAI/Anthropic теряют на каждом запросе? Когда достигнут break-even? Один бог знает, но это уже тема совсем другой истории.

Комментарии (8)


  1. Politura
    30.01.2026 15:53

    По тарифам на input, за каждый следующий раз, ты заплатишь за всю цепочку: Q1 - A1 на первом шаге, Q1 - A1 - Q2 - A2 на втором шаге. Расширяя цепочку, ты вначале заливаешь весь уже существующий контекст в input.

    На втором шаге заплатишь за Q1 - A1 как за Cached input, что будет в десять раз дешевле простого инпута, за Q2 как за инпут. A2, да, будет самым дорогим отупутом.


    1. olegchir Автор
      30.01.2026 15:53

      Согласен. Это всё не проблема, когда ты просто пару раз в день заходишь спросить "какого размера слон". Проблемы начинаются, когда ты начинаешь с этим программировать. Код - это сотни мегабайтов специфического текста, и каждая копейка моментально масштабируется в десятки, а то и сотни тысяч рублей в месяц.


      1. K0Jlya9
        30.01.2026 15:53

        Никто не показывает ллмке весь код. CLI агенты обычно показывают количество запросов и расход токенов за сессию. И там почти всегда написано что то типа 100 запросов, 100млн токенов потрачено, 99% кешировано, с вас 50 центов, приходите еще.


        1. olegchir Автор
          30.01.2026 15:53

          Нельзя написать код, не зная контекста. Вот у меня сейчас репозиторий занимает около 16 гигабайт после выкачивания исходников и около 72 гигабайт после сборки проекта. Это много и неприятно. Агенты справляются плохо, и денег хотят много.


  1. house2008
    30.01.2026 15:53

    Спасибо. Но я не совсем понял, вот, например, я спрашивал GPT про питон 5-10 вопросов в одном чате. Потом хочу поспрашивать про раст (без контекста питона), мне тогда лучше начать новый чат, чтобы не переотправлялись запросы про питон (так как в новом контексте это уже не нужно), чтобы ускорить работу ИИ и снизить использование кол-ва токенов ?


    1. olegchir Автор
      30.01.2026 15:53

      Да, в этом случае лучше начать новый диалог. Он будет сильно лучше соображать, что тебе ответить.

      Но с другой стороны, я всегда добавляю все свои языки в систем-промт и юзер-промт, чтобы ИИ знала, с кем общается

      Посмотри на мой дискавери промт: https://gist.github.com/olegchir/c1104526b000be33763b6369d20f0ebc

      Видишь там в секции EXTENSION_USER_INFO явно прописан профиль пользователя.

      (Кстати, можешь попробовать его. Только замени LLM на свою в разделе VARIABLES, и себя опиши в EXTENSION_USER_INFO. Если у тебя что-то умное типа Claude или DeepSeek, оно даже на русском языке справится, но я бы все равно рекомендовал английский).


    1. MountainGoat
      30.01.2026 15:53

      Да, мало того, вопросы про Питон, если они не вытекают один из другого, тоже лучше каждый отправлять новым чатом. Цена за каждый последующий вопрос в том же чате растёт.


  1. slonopotamus
    30.01.2026 15:53

    Например, сложение float не ассоциативно: (a + b) + c != a + (b + c).

    1. От этого оно не перестаёт быть детерминированным

    2. Железо здесь ни при чём, ему в каком порядке сказали посчитать, в таком и посчитает.

    Когда тысячи ядер GPU суммируют миллионы чисел параллельно, порядок редукции может меняться от запуска к запуску.

    Опять же, а при чём тут железо?