🧠 Память

Как работает память у ИИ: контекст, RAG и карточки памяти

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

Чтобы ИИ стал по-настоящему личным помощником, ему нужна память в человеческом смысле слова: помнить факты о вас, возвращаться к старым разговорам, учитывать вашу активность. Разберём механику по слоям — что такое память ии на самом деле, как работает rag, что такое эмбеддинги простыми словами и почему большой контекст ии — это ещё не долговременная память ии. Если вы только знакомитесь с темой, начните с обзорной статьи о том, что такое личный ИИ.

Контекстное окно: рабочий стол модели

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

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

Почему окно сравнивают с оперативной памятью

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

Токены: чем измеряют память

Размер окна измеряют не в символах и не в словах, а в токенах. Токен — это кусочек текста, на которые модель режет входящий поток: иногда целое короткое слово, иногда часть слова, иногда знак препинания. Для русского текста ориентир приблизительный — примерно 3–4 символа на токен, но это очень грубая оценка: разные модели токенизируют по-разному, и точное число зависит от конкретного текста.

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

Краткосрочная против долговременной памяти

Здесь полезна аналогия с человеком.

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

Фокус в том, что сама модель не «запоминает» в долгосрочном смысле — её веса не меняются от разговора к разговору. Базовая модель после обучения остаётся неизменной; она не дообучается на лету от того, что вы ей сказали вчера. Долговременную память поэтому строят вокруг модели: отдельное хранилище плюс механизм, который в нужный момент достаёт из него релевантное и подкладывает обратно в контекстное окно. Именно эта связка превращает безликий чат-бот в помощника, который вас знает.

Что такое эмбеддинги (простыми словами)

Чтобы внешнее хранилище умело находить «нужное по смыслу», тексту нужно придать форму, с которой удобно работать математически. Эту роль играют эмбеддинги.

Эмбеддинг — это представление куска текста в виде набора чисел (вектора). Можно представить себе огромную карту смыслов: каждая фраза получает координаты на этой карте. Фразы, близкие по смыслу, оказываются рядом, а далёкие — в разных её концах. «Поеду в горы кататься на лыжах» и «планирую зимний отпуск в Альпах» окажутся почти соседями, хотя у них почти нет общих слов. А «купить молоко» будет где-то совсем в другой части карты.

Зачем это нужно

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

RAG пошагово: как работает извлечение

Главный инструмент долговременной памяти — RAG (Retrieval-Augmented Generation, «генерация с дополнением через поиск»). Идея простая: прежде чем отвечать, система ищет в хранилище подходящие фрагменты и добавляет их в контекст. Модель отвечает уже не «по памяти из обучения», а опираясь на конкретные найденные данные.

Пайплайн RAG удобно представить как конвейер из двух фаз — подготовки и ответа.

Фаза подготовки (один раз, заранее):

  1. Берём ваши данные — заметки, карточки памяти, фрагменты переписки.
  2. Режем их на небольшие куски (чанки).
  3. Каждый кусок прогоняем через модель-эмбеддер и получаем вектор.
  4. Складываем векторы вместе с исходным текстом в хранилище (векторную базу).

Фаза ответа (на каждый ваш запрос):

  1. Ваш вопрос тоже превращаем в вектор.
  2. Ищем в хранилище куски, чьи векторы ближе всего к вектору запроса.
  3. Достаём эти куски и подкладываем их в контекстное окно рядом с вопросом.
  4. Модель формирует ответ, опираясь на найденное.

Отсюда и название: retrieval (поиск) дополняет generation (генерацию). Ответ опирается на реальные фрагменты, а не на догадки. Это резко снижает галлюцинации, потому что у модели под рукой настоящие данные, а не размытые воспоминания из обучения.

Хорошая память — это не «помнить всё», а доставать нужное в нужный момент. RAG — именно про второе.

Векторный поиск: поиск по смыслу, а не по словам

Шестой шаг конвейера — сердце RAG. Обычный поиск ищет точное совпадение слов: нет слова «отпуск» в тексте — нет и результата. Векторный поиск работает иначе: он сравнивает смыслы через близость эмбеддингов.

Поэтому на вопрос «что я говорил про отпуск» система найдёт и заметку «планирую съездить в горы в июле», даже если слова «отпуск» там нет вовсе. Она сопоставит не буквы, а смысловые координаты. Это и есть поиск по смыслу: модель «вспоминает» то, что относится к делу, а не то, что дословно совпадает.

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

Суммаризация и карточки памяти

Складывать в хранилище сырые логи разговоров неэффективно: они длинные, шумные и быстро забивают любой поиск похожими, но бесполезными кусками. Поэтому Persona работает с карточками памяти — короткими структурированными записями вроде «Пользователь — фронтенд-разработчик, предпочитает TypeScript» или «Запущен проект блога, дедлайн — июнь».

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

Сырые логи Карточки памяти
Длинные, занимают много токенов Короткие, экономят контекст
Шум мешает поиску Только суть, точный поиск
Трудно редактировать Можно посмотреть и поправить
Дублируют одно и то же Сводят повторы в один факт

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

«Потерянное в середине»: большой контекст не равно память

Может показаться, что решение очевидно: возьмём модель с огромным окном и просто загрузим туда всё. Контекстное окно на 1 миллион токенов действительно удерживает целые книги и кодовые базы — зачем тогда RAG и карточки?

Причин несколько, и они принципиальны.

Внимание распределяется неравномерно

Исследователи описали эффект, который называют «потерянным в середине» (lost in the middle): модели заметно лучше используют информацию в начале и в конце длинного контекста, чем ту, что зарыта в середине. Чем длиннее окно, тем выше риск, что важный факт окажется в «слепой зоне» внимания. Большое окно — это вместимость, но не гарантия, что модель действительно опёрлась на нужный кусок.

Окно всё равно временное и недешёвое

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

Приватность памяти: почему важно локально

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

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

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

Частые вопросы

Чем эмбеддинг отличается от обычного текста?

Эмбеддинг — это тот же смысл текста, но записанный числами (вектором), чтобы компьютер мог сравнивать смыслы как расстояния на карте. Сам текст человекочитаем, эмбеддинг — нет; зато по нему быстро искать «похожее по смыслу».

RAG — это и есть долговременная память ИИ?

RAG — это механизм извлечения, а не само хранилище. Долговременная память состоит из двух частей: хранилища (где лежат факты и их эмбеддинги) и RAG, который в нужный момент достаёт оттуда релевантное и подкладывает в контекст. Одно без другого не работает.

Если у модели окно на миллион токенов, RAG не нужен?

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

Откуда берутся карточки памяти?

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

Снижает ли RAG галлюцинации?

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

Вывод

Память у ИИ — это не одна функция, а несколько слоёв, работающих вместе. Контекстное окно даёт быструю краткосрочную память на время диалога; токены задают его ёмкость и цену. Долговременная память живёт во внешнем хранилище и переживает сессии. Эмбеддинги превращают смысл в координаты, векторный поиск достаёт нужное по смыслу, RAG подкладывает найденное в контекст, а карточки и суммаризация хранят суть компактно. Эффект «потерянного в середине» напоминает: большой контекст — это вместимость, но не замена грамотному извлечению.

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

← Раньше
Приватный ИИ: как держать данные у себя и не сливать в облако

Хочешь ИИ, который помнит тебя?

Persona видит твой день, помнит контекст и работает на твоём железе.

Создать аккаунт