Добавить в корзинуПозвонить
Найти в Дзене
Смыслопрактика

Токены, контекст, сложность

Вот три главных ресурса в применении семантических функций. Каждая задача должна требовать меньше токенов: меньше читать и писать. Цена токенов растёт квадратично относительно размера контекста: значит, выгоднее несколько раз решить малую задачу с малым контекстом, чем один раз — большую с большим. Размер контекста — ограничение принципиально другое. Сколько бы ни было денег (токенов), контекстное окно ограничено. Задача, вместе со всем решением и дополнительными материалами, не может быть больше некоторого предела. Более того, качество работы модели падает с ростом контекста: она хорошо помнит только начало и конец, середина — в тумане. Если задача не влазит в контекст, последствия — тотальная деградация качества: - контекст компактифицируется, то есть сжимается с потерями - токены на пределе дороговизны, дописываются в конец контекстного окна - новые данные не влазят, старые припоминаются неуверенно - модель движется хаотично, броуновским движением, не способная ни на целостность,

Токены, контекст, сложность.

Вот три главных ресурса в применении семантических функций.

Каждая задача должна требовать меньше токенов: меньше читать и писать. Цена токенов растёт квадратично относительно размера контекста: значит, выгоднее несколько раз решить малую задачу с малым контекстом, чем один раз — большую с большим.

Размер контекста — ограничение принципиально другое. Сколько бы ни было денег (токенов), контекстное окно ограничено. Задача, вместе со всем решением и дополнительными материалами, не может быть больше некоторого предела. Более того, качество работы модели падает с ростом контекста: она хорошо помнит только начало и конец, середина — в тумане.

Если задача не влазит в контекст, последствия — тотальная деградация качества:

- контекст компактифицируется, то есть сжимается с потерями

- токены на пределе дороговизны, дописываются в конец контекстного окна

- новые данные не влазят, старые припоминаются неуверенно

- модель движется хаотично, броуновским движением, не способная ни на целостность, ни на качество

Но даже это — не вся проблема. Есть ещё сложность. Сложность модели, задачи, внутренней связности контекста. Количество параметров, цена обработки токена, качество удержания контекста, способность ориентироваться в недосказанном.

Сложные модели — frontier models, вроде Claude Opus — дорогие, медленные, капризные, дефицитные. Безумные чеки за использование ИИ – это про них.

А простые и дешёвые модели — ничего не понимают толком, работают топорно. То есть не удерживают качество и целостность, не позволяют решить задачу.

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

Но что это за задача и что именно нужно помнить?

Заранее – неизвестно. Отсюда тривиальное решение — помнить всё: свободный текст в markdown, файлики, которые модель пишет будущей-себе.

Почему это не работает?

Почему, работает. Но с некоторыми ограничениями:

- файлики не контролируют собственную семантическую и структурную целостность

- а значит, всякое крупное (принципиальное) изменение — это неизвестный объём чтения и записи

- поддержка такого корпуса знаний уже оказывается трудной и предельной по токенам, контексту, сложности

- но и поиск — нетривиальное блуждание модели по текстам

Очень медленно, дорого, ненадёжно.

Другой вариант — memory. Идея проста: а давайте записывать всё в сервис памяти, и давать эффективный (семантический, векторный) поиск по ней. И решим как-то задачу забывания: например, пусть старые записи "затухают" в поиске.

Это самый популярный подход сейчас, один из базовых строительных блоков: RAG, mem0, всё такое.

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