Когда вы общаетесь с обычным чат-ботом, он кажется умным внутри одной беседы и абсолютно беспамятным в следующей. Завтра он не вспомнит, как вас зовут, над каким проектом вы работаете и о чём договаривались вчера. Дело не в «глупости» модели — дело в том, как у языковых моделей устроена память. По умолчанию её почти нет, и это не баг, а фундаментальное свойство.
Чтобы ИИ стал по-настоящему личным помощником, ему нужна память в человеческом смысле слова: помнить факты о вас, возвращаться к старым разговорам, учитывать вашу активность. Разберём механику по слоям — что такое память ии на самом деле, как работает rag, что такое эмбеддинги простыми словами и почему большой контекст ии — это ещё не долговременная память ии. Если вы только знакомитесь с темой, начните с обзорной статьи о том, что такое личный ИИ.
Контекстное окно: рабочий стол модели
Самый базовый вид памяти у ИИ — контекстное окно. Это объём текста, который модель «держит перед глазами» прямо сейчас: ваш вопрос, история текущего диалога, системные инструкции и вложенные документы. Всё, что попало в окно, влияет на ответ. Всё, что не попало, для модели попросту не существует — она не может «вспомнить» то, чего нет перед глазами.
Важно понять ключевое: между запросами модель ничего не хранит сама. Каждый раз, когда вы отправляете сообщение, ей заново подаётся весь нужный текст — и она обрабатывает его с нуля. Иллюзия непрерывного разговора создаётся тем, что приложение каждый раз подкладывает в окно предыдущие реплики. Стоит окну переполниться или сессии закрыться — и контекст исчезает.
Почему окно сравнивают с оперативной памятью
Окно работает как оперативная память компьютера: быстро, гибко, но временно. Оно идеально для текущей задачи и бесполезно как долговременное хранилище. Закрыли чат — рабочий стол стёрли. Именно поэтому одного контекстного окна недостаточно, чтобы у ИИ появилась настоящая память: нужен ещё внешний слой, который переживёт конец сессии.
Токены: чем измеряют память
Размер окна измеряют не в символах и не в словах, а в токенах. Токен — это кусочек текста, на которые модель режет входящий поток: иногда целое короткое слово, иногда часть слова, иногда знак препинания. Для русского текста ориентир приблизительный — примерно 3–4 символа на токен, но это очень грубая оценка: разные модели токенизируют по-разному, и точное число зависит от конкретного текста.
Токены важны по двум причинам. Во-первых, в них измеряется ёмкость окна: «вмещается ли сюда вся переписка плюс документ». Во-вторых, через токены обычно считается стоимость и скорость работы — чем больше текста подано в окно, тем дороже и медленнее обработка. Поэтому инженеры не пытаются запихнуть в контекст всё подряд: подкладывать нужно только то, что реально пригодится для ответа. Это прямо подводит нас к идее умного извлечения вместо тупого «всё в окно».
Краткосрочная против долговременной памяти
Здесь полезна аналогия с человеком.
- Краткосрочная память — это контекстное окно. Она живёт в рамках текущего диалога и исчезает, когда сессия заканчивается.
- Долговременная память — это внешнее хранилище, которое переживает любую отдельную беседу. Туда складываются устойчивые факты: ваши предпочтения, цели, имена, повторяющиеся темы.
Фокус в том, что сама модель не «запоминает» в долгосрочном смысле — её веса не меняются от разговора к разговору. Базовая модель после обучения остаётся неизменной; она не дообучается на лету от того, что вы ей сказали вчера. Долговременную память поэтому строят вокруг модели: отдельное хранилище плюс механизм, который в нужный момент достаёт из него релевантное и подкладывает обратно в контекстное окно. Именно эта связка превращает безликий чат-бот в помощника, который вас знает.
Что такое эмбеддинги (простыми словами)
Чтобы внешнее хранилище умело находить «нужное по смыслу», тексту нужно придать форму, с которой удобно работать математически. Эту роль играют эмбеддинги.
Эмбеддинг — это представление куска текста в виде набора чисел (вектора). Можно представить себе огромную карту смыслов: каждая фраза получает координаты на этой карте. Фразы, близкие по смыслу, оказываются рядом, а далёкие — в разных её концах. «Поеду в горы кататься на лыжах» и «планирую зимний отпуск в Альпах» окажутся почти соседями, хотя у них почти нет общих слов. А «купить молоко» будет где-то совсем в другой части карты.
Зачем это нужно
Главная польза эмбеддингов в том, что близость по смыслу превращается в близость координат, которую можно посчитать. Компьютеру больше не нужно понимать язык, чтобы сравнивать смыслы — ему достаточно измерить расстояние между точками. Именно на этом держится поиск по смыслу, а не по точному совпадению слов. Числовые значения внутри вектора сами по себе человеку ни о чём не говорят — важно лишь то, насколько одни векторы близки к другим.
RAG пошагово: как работает извлечение
Главный инструмент долговременной памяти — RAG (Retrieval-Augmented Generation, «генерация с дополнением через поиск»). Идея простая: прежде чем отвечать, система ищет в хранилище подходящие фрагменты и добавляет их в контекст. Модель отвечает уже не «по памяти из обучения», а опираясь на конкретные найденные данные.
Пайплайн RAG удобно представить как конвейер из двух фаз — подготовки и ответа.
Фаза подготовки (один раз, заранее):
- Берём ваши данные — заметки, карточки памяти, фрагменты переписки.
- Режем их на небольшие куски (чанки).
- Каждый кусок прогоняем через модель-эмбеддер и получаем вектор.
- Складываем векторы вместе с исходным текстом в хранилище (векторную базу).
Фаза ответа (на каждый ваш запрос):
- Ваш вопрос тоже превращаем в вектор.
- Ищем в хранилище куски, чьи векторы ближе всего к вектору запроса.
- Достаём эти куски и подкладываем их в контекстное окно рядом с вопросом.
- Модель формирует ответ, опираясь на найденное.
Отсюда и название: retrieval (поиск) дополняет generation (генерацию). Ответ опирается на реальные фрагменты, а не на догадки. Это резко снижает галлюцинации, потому что у модели под рукой настоящие данные, а не размытые воспоминания из обучения.
Хорошая память — это не «помнить всё», а доставать нужное в нужный момент. RAG — именно про второе.
Векторный поиск: поиск по смыслу, а не по словам
Шестой шаг конвейера — сердце RAG. Обычный поиск ищет точное совпадение слов: нет слова «отпуск» в тексте — нет и результата. Векторный поиск работает иначе: он сравнивает смыслы через близость эмбеддингов.
Поэтому на вопрос «что я говорил про отпуск» система найдёт и заметку «планирую съездить в горы в июле», даже если слова «отпуск» там нет вовсе. Она сопоставит не буквы, а смысловые координаты. Это и есть поиск по смыслу: модель «вспоминает» то, что относится к делу, а не то, что дословно совпадает.
У такого поиска есть тонкость: он возвращает наиболее похожие фрагменты, а не гарантированно правильные. Если в хранилище нет нужного факта, поиск всё равно вернёт что-то «похожее» — поэтому качество памяти зависит от того, что и в каком виде в неё попадает. Отсюда следующий слой.
Суммаризация и карточки памяти
Складывать в хранилище сырые логи разговоров неэффективно: они длинные, шумные и быстро забивают любой поиск похожими, но бесполезными кусками. Поэтому Persona работает с карточками памяти — короткими структурированными записями вроде «Пользователь — фронтенд-разработчик, предпочитает TypeScript» или «Запущен проект блога, дедлайн — июнь».
Карточки рождаются через суммаризацию: ИИ периодически просматривает диалоги и активность, выделяет устойчивые факты и сохраняет их компактно. Разница между двумя подходами наглядна.
| Сырые логи | Карточки памяти |
|---|---|
| Длинные, занимают много токенов | Короткие, экономят контекст |
| Шум мешает поиску | Только суть, точный поиск |
| Трудно редактировать | Можно посмотреть и поправить |
| Дублируют одно и то же | Сводят повторы в один факт |
Отдельный слой памяти — контекст из вашей активности. Persona умеет учитывать, что происходит на экране и в работе, превращая это в карточки. Подробнее об этом механизме — в материале про запись экрана как источник памяти ИИ. Так помощник знает не только то, что вы ему рассказали словами, но и то, чем вы реально заняты.
«Потерянное в середине»: большой контекст не равно память
Может показаться, что решение очевидно: возьмём модель с огромным окном и просто загрузим туда всё. Контекстное окно на 1 миллион токенов действительно удерживает целые книги и кодовые базы — зачем тогда RAG и карточки?
Причин несколько, и они принципиальны.
Внимание распределяется неравномерно
Исследователи описали эффект, который называют «потерянным в середине» (lost in the middle): модели заметно лучше используют информацию в начале и в конце длинного контекста, чем ту, что зарыта в середине. Чем длиннее окно, тем выше риск, что важный факт окажется в «слепой зоне» внимания. Большое окно — это вместимость, но не гарантия, что модель действительно опёрлась на нужный кусок.
Окно всё равно временное и недешёвое
Даже огромное окно очищается между сессиями — это краткосрочная память, а не долговременная. И каждый раз тащить туда весь архив дорого и медленно: вы платите токенами за гору текста, из которой реально нужен один абзац. RAG решает обе проблемы — подаёт в окно компактную, отобранную по смыслу выжимку, которая переживает сессии. Поэтому «большой контекст» и «настоящая память» — это про разное: одно про объём здесь и сейчас, другое про то, что сохраняется и грамотно извлекается.
Приватность памяти: почему важно локально
Память тем ценнее, чем больше она знает о вас — и тем чувствительнее становится. Карточки с вашими привычками, проектами и перепиской — это очень личные данные, и вопрос «где они хранятся» перестаёт быть техническим.
Принципиальный выбор здесь — между облаком и локальным хранением. В классической облачной схеме и тексты, и их эмбеддинги уезжают на чужие серверы: вам приходится доверять, что их не прочитают, не используют для обучения и не потеряют при утечке. Когда же память, эмбеддинги и векторная база лежат на вашем устройстве, данные никуда не уезжают, а вы остаётесь их единственным владельцем.
Persona строит долговременную память по принципу приватного ИИ с локальным хранением: карточки можно просматривать, редактировать и удалять. Это ещё и вопрос контроля над качеством — раз вы видите, что записано, вы можете поправить неверный факт. Память, которой нельзя управлять, — это не помощник, а слежка.
Частые вопросы
Чем эмбеддинг отличается от обычного текста?
Эмбеддинг — это тот же смысл текста, но записанный числами (вектором), чтобы компьютер мог сравнивать смыслы как расстояния на карте. Сам текст человекочитаем, эмбеддинг — нет; зато по нему быстро искать «похожее по смыслу».
RAG — это и есть долговременная память ИИ?
RAG — это механизм извлечения, а не само хранилище. Долговременная память состоит из двух частей: хранилища (где лежат факты и их эмбеддинги) и RAG, который в нужный момент достаёт оттуда релевантное и подкладывает в контекст. Одно без другого не работает.
Если у модели окно на миллион токенов, RAG не нужен?
Нужен. Большое окно — это краткосрочная вместимость на одну сессию, а не постоянная память. К тому же из-за эффекта «потерянного в середине» модель хуже использует факты, зарытые в глубине длинного контекста, и платить токенами за весь архив каждый раз дорого. RAG подаёт компактную, отобранную выжимку и переживает сессии.
Откуда берутся карточки памяти?
Из суммаризации: ИИ периодически просматривает диалоги и вашу активность, выделяет устойчивые факты и сохраняет их короткими записями. Сырые логи при этом не нужны как основное хранилище — карточки компактнее, чище для поиска и их можно редактировать.
Снижает ли RAG галлюцинации?
Да, и заметно: модель отвечает, опираясь на реальные найденные фрагменты, а не на размытые воспоминания из обучения. Но RAG не всесилен — если нужного факта нет в хранилище, поиск вернёт лишь «похожее». Качество памяти прямо зависит от того, что в неё попало.
Вывод
Память у ИИ — это не одна функция, а несколько слоёв, работающих вместе. Контекстное окно даёт быструю краткосрочную память на время диалога; токены задают его ёмкость и цену. Долговременная память живёт во внешнем хранилище и переживает сессии. Эмбеддинги превращают смысл в координаты, векторный поиск достаёт нужное по смыслу, RAG подкладывает найденное в контекст, а карточки и суммаризация хранят суть компактно. Эффект «потерянного в середине» напоминает: большой контекст — это вместимость, но не замена грамотному извлечению.
И всё это имеет смысл только тогда, когда данные остаются под вашим контролем. Именно сочетание этих слоёв — плюс локальное хранение — отличает безликий чат-бот от помощника, который вас по-настоящему знает.