Токены и контекстное окно: рабочий стол повара
🤔 Зачем это читать
Юрист загружает в AI-чат договор на сорок страниц и просит: «найди все пункты про штрафы». Ответ приходит складный, по делу — но пары пунктов в нём нет. Юрист удивлён: он же дал весь документ, целиком. Ощущение, будто модель прочитала половину и уверенно дописала остальное по памяти. А на важной встрече именно эти два пункта и были самыми дорогими.
Знакомо? Или другой вариант: бухгалтерия полгода гоняла длинные диалоги с AI-ассистентом, а в конце месяца прилетел счёт, который никто не понимает. Разговоры вроде те же, что и в начале, а вышло заметно дороже. Откуда набежало?
Оба раза дело в одной и той же невидимой механике. Модель не работает с твоим текстом как с цельным листом бумаги. Она режет его на маленькие кусочки и раскладывает на ограниченном «рабочем столе». Когда кусочков становится слишком много, часть просто не помещается — а каждый кусочек ещё и стоит денег. Не видишь этого устройства — и тебя ждут сюрпризы: то «недочитанный» документ, то непонятный счёт.
После этой темы ты сможешь объяснить — себе или коллеге, — почему модель иногда отвечает, будто видела не весь текст, и почему длинные разговоры дорожают. Два образа в голове — и обе загадки перестают быть загадками.
Задержись на 10 секунд. Вспомни случай, когда ты дал AI большой текст, а ответ был так себе — будто половину он пропустил. Или когда счёт за AI-инструмент оказался больше, чем ты прикидывал. Что это была за ситуация? Держи её в голове: к концу страницы станет видно, что именно там произошло.
🔪 Повар не видит текст — он видит нарезку
В прошлой теме (2.1 — Почему LLM сам ничего не делает) мы условились: модель — это повар по насмотренности, который работает только с текстом. Так вот, есть важная деталь. Повар не берёт твою фразу целиком, как ты её написал. Первым делом он её нарезает.
Представь, что ты принёс на кухню морковку. Повар не кидает её в кастрюлю целиком — он режет её на ломтики и работает уже с ними. С текстом то же самое: модель режет его на маленькие кусочки. Такой кусочек называется токен (кусочек текста, которым оперирует модель). Один токен — это не обязательно целое слово. Чаще это слог, короткое слово или его часть. Грубо: «договор» может разойтись на пару кусочков, а «и» — это один кусочек целиком.
Зачем тебе это знать? Потому что модель считает не буквы и не слова, а именно токены — и по ним же берёт деньги. Сколько кусочков нарезала на входе и сколько выдала на выходе — столько и в счёте. Слова для тебя, токены для неё.
И вот деталь, которая бьёт по кошельку у нас в стране особенно ощутимо. Нож, которым модель режет текст, заточен в основном под английский — поэтому русский текст режется мельче английского. Одно и то же по смыслу предложение на русском обычно превращается в заметно больше кусочков, чем на английском. Прикидка простая: латиница идёт примерно по кусочку на короткое слово, а кириллица часто крошится по слогам. Практический вывод без формул: один и тот же текст на русском обходится дороже, чем на английском, — потому что кусочков больше, а платишь ты за кусочки. Это не повод переходить на английский, просто держи в голове, откуда берётся цена.
🍳 Контекстное окно — это рабочий стол повара
Окей, текст нарезали на кусочки. Дальше повар раскладывает их перед собой, чтобы готовить. И тут вступает вторая ключевая вещь — контекстное окно (рабочий стол повара: сколько кусочков-заготовок помещается перед ним разом).
У любого повара стол не бесконечный. На него влезает какое-то количество заготовок — и всё, край. Захочешь выложить больше — что-то придётся убрать или оно просто не поместится. Контекстное окно модели — ровно этот стол. Это предельное число токенов, которое модель удерживает «перед глазами» за один раз. Не больше.
Теперь самое важное, из-за чего вся путаница. Думают, что на этот стол кладётся только твой вопрос. Нет. На одном и том же столе разом лежит всё:
- Твой запрос — то, что ты сейчас пишешь модели (как давать его правильно — отдельная тема дальше в курсе).
- История разговора — всё, что вы наговорили до этого в этом же диалоге.
- Приложенные документы — тот самый договор на сорок страниц.
- Сам ответ — место под то, что модель собирается написать, тоже надо на столе.
Один стол на всех четверых. Чем больше заняли первые три, тем меньше места остаётся под ответ — и тем ближе момент, когда самые старые заготовки приходится сдвигать с края стола, чтобы освободить место под новые.
🤷 Почему модель «не дочитала» документ
Вернёмся к юристу с договором. Что там случилось? Сорок страниц — это очень много кусочков. Они либо не поместились на стол целиком, либо заняли его так плотно, что повар работал не со всем сразу. А есть ещё одна неприятная подробность, которую честно стоит знать: даже когда всё формально влезло, середина стола у повара как будто в полумраке. Руки лучше всего работают с тем, что лежит прямо под носом — в начале и в конце. То, что в глубине, он замечает хуже. Поэтому пропущенные пункты про штрафы вполне могли оказаться где-то в середине договора.
Запомни вывод, он сэкономит тебе нервы: «я дал весь документ» не равно «модель надёжно учла весь документ». Чем больше вываливаешь на стол разом, тем выше шанс, что что-то важное окажется в полумраке. Эту разницу между «заявленным размером стола» и «реально рабочим» мы разберём вплотную в следующей теме (2.4 — Миллион токенов: маркетинг и реальность) — пока достаточно держать в голове сам факт: большой стол не значит, что повар одинаково внимателен к каждому его углу.
И отсюда же ответ на загадку с дорожающими диалогами. Каждый новый круг разговора тащит за собой всю историю целиком — её каждый раз заново раскладывают на стол, чтобы повар помнил, о чём вы говорили. А раскладывать на стол — это считать токены, а считать токены — это деньги. Поэтому длинный диалог дорожает не потому, что последний вопрос сложный, а потому, что вместе с ним каждый раз оплачивается весь предыдущий разговор. Сотый вопрос в диалоге дороже первого, даже если он короче.
на_столе = запрос + вся_история_диалога + приложенные_документы
кусочков_на_входе = посчитать_токены(на_столе)
кусочков_на_выходе = посчитать_токены(ответ_модели)
счёт = кусочков_на_входе + кусочков_на_выходе # платишь за оба
# → диалог растёт → история растёт → «на_столе» растёт → счёт растёт
Прежде чем трогать тренажёр — прикинь сам. Ты собираешься выложить на рабочий стол повара длинный документ. Как думаешь: что произойдёт с местом под ответ и со счётом, если документ станет вдвое длиннее? А если ты к тому же ведёшь долгий диалог — на чьём месте на столе это скажется в первую очередь? Подержи свою догадку в голове и проверь её ползунком ниже.
🎮 Накрываем рабочий стол
Перед тобой рабочий стол повара — контекстное окно на 10 000 токенов (для примера; у настоящих моделей он больше, но устроен так же). На столе уже лежат твой запрос и история диалога. Двигай ползунок — клади на стол документ разной длины — и смотри, что происходит с местом под ответ. Это не экзамен, а наглядная прикидка.
📖 Ключевые понятия
- Токен
- Кусочек текста, которым оперирует модель: чаще это слог, короткое слово или часть слова, а не целое слово. Текст режется на токены, как морковка на ломтики. Модель считает и тарифицирует именно токены — на входе и на выходе. Русский текст режется мельче английского, поэтому при том же смысле даёт больше токенов и обходится дороже.
- Контекстное окно
- Рабочий стол повара: предельное число токенов, которое модель удерживает «перед глазами» за один раз. Конечно и общее на всё сразу — запрос, историю диалога, приложенные документы и место под ответ. Заполнил одним — осталось меньше под другое.
- Токены — это деньги
- Счёт за работу модели считается в токенах: сколько кусочков на входе плюс сколько на выходе. Поэтому длинные документы и длинные диалоги дорожают: на стол каждый раз заново раскладывается вся история, и за неё каждый раз платишь.
🛡️ Частые заблуждения
«Раз я загрузил весь документ, модель точно учла его целиком»
Не обязательно. Документ может не поместиться на стол целиком, а если и поместился — середина у повара в полумраке: то, что в начале и в конце, он замечает лучше, чем глубину. «Дал весь текст» и «модель надёжно учла весь текст» — разные вещи.
«Контекстное окно — это память модели на вопрос; ответ туда не считается»
Стол один на всё сразу: запрос, история, документы и место под ответ делят его между собой. Чем плотнее заняли стол вводом, тем меньше места под ответ — и ответ может выйти обрубленным.
«Длинный диалог не дороже короткого — вопросы-то такие же»
Дороже. Каждый новый круг тащит на стол всю предыдущую историю заново, и за неё каждый раз платишь токенами. Сотый вопрос в диалоге обходится дороже первого, даже если он короче, — потому что вместе с ним оплачивается весь разговор до него.
🧠 AI-чутьё (AI Judgment)
Токены — это деньги, а стол — общий на всё
Вот мысль, которую стоит унести с этой страницы: каждый кусочек текста, который попадает на стол к повару, стоит денег — и на входе, и на выходе. Это переворачивает интуицию. Кажется, что «закинуть в чат всё на всякий случай» — бесплатная подстраховка. На деле это прямая строчка в счёте, да ещё и забивает стол так, что под нужное остаётся меньше места.
Отсюда рабочее правило владельца. Когда тебе обещают AI-процесс, который «прожуёт все наши документы разом», или ты сам собираешься вести бесконечные диалоги, мысленно прикладывай два вопроса: «Сколько токенов мы реально кладём на стол каждый раз — и кто за это платит?» и «А весь ли этот объём вообще нужен повару под носом, или мы просто заваливаем ему стол?». Часто оказывается, что половину можно не класть — и качество выше, и счёт ниже.
Эта ниточка — «токены = деньги» — протянется до конца курса и развернётся в полный разговор про себестоимость и скорость в одной из поздних тем. Пока достаточно запомнить связку: больше кусочков на столе — больше счёт. Не «модель дорогая», а «стол мы накрыли с запасом».
🎯 Практика
Одно задание на пять минут, чтобы «токены = деньги» почувствовать руками, а не на словах.
- Открой любой привычный AI-чат. Возьми небольшой реальный текст из работы — например, абзац письма, пункт договора или пару строк из накладной поставщика, строк на пять.
- Попроси модель прямо: «посчитай, во сколько примерно токенов превращается этот текст». Запомни число. Потом попроси её же перевести этот текст на английский (английский знать не нужно — модель переведёт сама) и посчитать токены у перевода. Сравни два числа — почувствуй, насколько русский «крошится мельче».
- А теперь представь, что таких текстов у тебя не один, а тысяча в месяц, и каждый прогоняется через AI. Прикинь на глаз: счёт за это — в районе обеда или в районе зарплаты? Точная цифра не важна; важно, что ты теперь видишь, из чего она складывается, и можешь спросить с вендора по делу.
Помнишь случай из начала — «недочитанный» документ или непонятный счёт? Теперь видно, что там было: либо текст не уместился на стол целиком (а середина — в полумраке), либо за каждый круг диалога заново оплачивалась вся история. Ни то ни другое уже не выглядит магией.