EverProduct
Нейросети

Этап 01 · Как это устроено на самом деле

Токены и контекстное окно

У модели нет памяти — у неё есть стол. Всё, что она знает прямо сейчас, лежит на этом столе, и у стола есть края.

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

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

Она не видит букв

Текст доходит до модели не буквами. До всякой работы он режется на куски — токены, то есть часто встречающиеся сочетания символов. Обычное слово чаще всего один токен, длинное или редкое разваливается на несколько: «невероятный» может прийти как «не» + «вероят» + «ный». Грубый ориентир: в английском токен — это примерно четыре символа, в русском заметно меньше, поэтому один и тот же смысл по-русски стоит больше токенов, чем по-английски.

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

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

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

Стол

Теперь вторая вещь — та, что реально меняет манеру работы.

У модели нет памяти о тебе. Вообще. Между двумя твоими сообщениями внутри неё ничего не сохраняется.

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

Модель знает ровно то, что лежит на столе. И больше ничего.

У стола есть жёсткий край — контекстное окно, измеряемое в токенах. Современные окна большие: сотни тысяч токенов, несколько книг. Но «большое» — не «бесконечное», и отсюда три следствия, которых не отменит никакая формулировка запроса.

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

Со стола ничего не уходит само. Каждая неудачная попытка, каждый забракованный черновик, каждое «нет, не так» продолжает лежать там и тянуть ответы на себя. Это самая частая причина, по которой диалог медленно портится: человеку кажется, что он исправляет модель, а на деле он подкладывает на тот же стол всё больше противоречащих друг другу бумаг.

Позиция имеет значение. В 2023 году Нельсон Лю с коллегами из Стэнфорда опубликовали работу с отличным названием Lost in the Middle: нужный факт прятали в разных местах длинного контекста и смотрели, найдёт ли модель. Вышла U-образная кривая — то, что лежало в начале и в конце, использовалось надёжно, а закопанное в середину терялось заметно чаще. Новые модели держатся лучше, но форма кривой никуда не делась. Где именно ты положил кусок в длинном запросе — это решение, а не оформление.

Зеркало твоей головы

Здесь есть красивая инверсия, которую стоит забрать, и растёт она прямо из сферы «Как учиться».

Твоя рабочая память держит около четырёх элементов одновременно — ровно поэтому существуют чанки. Зато долговременная память огромна и при интервальных повторениях практически вечна.

У модели всё наоборот. Её «рабочая память» гигантская: сотни страниц одновременно, причём с точностью до буквы. А долговременной нет вовсе — из разговора в разговор не переносится ничего, пока что-нибудь не положит это обратно на стол.

Из зеркала следует разделение труда, которое проходит через всю сферу. Модель держит объём: длинные документы, весь код, все версии черновика. Ты держишь смысл и непрерывность: зачем это, о чём мы договорились, что здесь важно. Попытка работать наоборот — самому помнить то, что удержала бы модель, и ждать от модели, что она вспомнит твоё решение недельной давности, — верный способ провалить обе роли сразу.

Откуда берутся деньги и тормоза

Раз модель перечитывает стол целиком на каждом ходу, длинный диалог честно дороже короткого в пересчёте на сообщение и часто медленнее. Это не дефект, а тот же факт, выраженный в деньгах: на пятидесятом ходу модель отвечает не на твою последнюю реплику — она перечитывает сорок девять предыдущих и только потом отвечает.

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

На практике

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

Начало и конец — дорогая недвижимость. В длинном запросе ставь задачу сверху, а ключевое ограничение повтори внизу, после материала. То, что в середине, может провалиться.

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

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

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

Проверь себя

Закрой статью и ответь своими словами:

  1. Что такое токен и почему из-за него счёт букв — плохая задача для модели?
  2. Что лежит на «столе» и что происходит со столом между двумя твоими сообщениями?
  3. Почему длинный диалог не умнеет, а портится, и что с этим делать?
  4. Что показала работа Lost in the Middle и как это меняет раскладку длинного запроса?
  5. Чем память модели зеркальна твоей и какое разделение труда из этого следует?

Коротко

  • Текст приходит токенами — кусками символов, а не буквами. Работа на уровне символов модели не видна; отдавай её коду.
  • Памяти у модели нет. Всё, чем она пользуется, лежит на столе: системная инструкция, файлы, весь диалог, твоё сообщение. Каждый ход она перечитывает стол целиком.
  • Новый чат — пустой стол, а не забывчивый коллега.
  • Со стола ничего не уходит само: неудачные попытки и забракованные версии продолжают тянуть ответы. Поэтому длинные диалоги деградируют.
  • Lost in the Middle (Лю и др., 2023): начало и конец длинного контекста используются надёжно, середина теряется. Раскладывай соответственно.
  • У тебя четыре ячейки рабочей памяти и огромная долговременная; у модели наоборот. Пусть она держит объём, а ты — смысл.
  • Модель знает ровно то, что лежит на столе. И больше ничего.