Понимание памяти ИИ: объяснение контекста, эмбеддингов, технологии RAG и весов модели
В этой статье подробно рассматривается, как системы ИИ фактически запоминают информацию, с упором на окна контекста, эмбеддинги, векторные базы данных, технологию RAG и параметры моделей.
Картинка: общение с ИИ сегодня:
«Я работаю над проектом машинного обучения».
Затем, на следующий день, вы пишете снова:
«Что мне стоит улучшить в своем проекте?»
Вы думаете, что ИИ вспомнит то, что вы ему ранее сказали?
Иногда да.
Иногда нет.
А иногда он запоминает часть разговора, но полностью забывает другую часть.
Это поднимает интересный вопрос:
Что на самом деле позволяет системе ИИ что-то запоминать?
Настоящий ответ более сложен, чем простое утверждение:
«У ИИ есть память».
Современные системы ИИ опираются на несколько различных механизмов для хранения информации, таких как окна контекста, состояние разговора, внешняя память, системы поиска, базы данных и собственные параметры модели.
Понимание этих механизмов помогает выяснить, что делает современный ИИ способным к выполнению задач, и где на самом деле лежат его ограничения.
1. Первое удивление: LLM не запоминает всё автоматически
Общение с языковой моделью может создать впечатление, что вы разговариваете с кем-то, у кого есть постоянная память о вас.
Например:
You:
My project is about crop disease detection.
AI:
That's interesting. You can use computer vision...
Позже:
You:
What model should I use?
AI:
For crop disease images, a vision model could be appropriate.
Кажется, что ИИ запомнил то, что вы сказали.
Но что на самом деле происходит внутри?
Объяснение зависит от того, откуда на самом деле поступает эта информация.
Это может быть:
- по-прежнему находится в контексте активного диалога
- хранится в специальной системе памяти
- загружается из внешнего источника
- косвенно включается в обученные параметры модели
- снова вводится пользователем незаметно для вас
Это совершенно разные механизмы, хотя конечный результат может казаться идентичным.
2. Память — это не то же самое, что знания
Это различие имеет огромное значение.
Модель может знать ответ на вопрос:
"Что такое CNN?"
Но это не гарантирует, что она вспомнит:
"На прошлой неделе вы использовали CNN в своем проекте."
Рассмотрим ситуацию так:
KNOWLEDGE
"What is a CNN?"
↓
Learned during training
MEMORY
"The user is working on a CNN project."
↓
Stored/retrieved from context or memory system
Знания отражают то, что модель усвоила во время обучения.
Память отражает ту информацию, которая в данный момент доступна ей о конкретном пользователе, задаче, среде или текущем взаимодействии.
3. Самая простая форма памяти ИИ: контекст
Самым элементарным видом «памяти» в рамках одного диалога является контекст.
Рассмотрим следующий обмен сообщениями:
User:
My dataset has 10,000 images.
AI:
Okay.User:
Should I use CNN?AI:
For 10,000 images, CNN could be...
Как ИИ понимает, на что относится фраза «10 000 изображений»?
Потому что предыдущие сообщения могут быть переданы обратно в модель вместе с новым.
Концептуально это выглядит так:
Previous messages
+
Current message
↓
Context
↓
LLM
↓
Response
При формировании ответа модель использует тот контекст, который ей был предоставлен.
4. Но у контекста есть ограничения
Здесь всё становится сложнее.
Модель не может принимать бесконечный объем текста в одной заявке.
Для этого существует определенный лимит, называемый:
Окно контекста
Представьте себе это как общее количество информации, которое модель может учитывать одновременно.
Концептуально:
┌───────────────────────────────┐
│ CONTEXT WINDOW │
│ │
│ Previous messages │
│ Documents │
│ Instructions │
│ Current question │
│ Tool results │
│ │
└───────────────────────────────┘
Когда диалог затягивается достаточно долго, более ранние части могут быть упущены, сокращены или стать менее доступными в зависимости от того, как система справляется с переполнением.
Это показывает первое серьезное ограничение памяти ИИ:
Контекст действительно полезен, но он не бесконечен.
5. Считается ли контекст настоящей памятью?
Не совсем.
Представьте, что кто-то передает вам стопку документов прямо перед тем, как задать вопрос. Вы можете использовать эти документы для ответа, но это не значит, что они навсегда сохраняются в вашем мозгу.
Здесь применяется та же логика:
Context
=
Information currently available to the model
Постоянная память, в отличие от нее, работает иначе:
Memory
=
Information stored for possible future retrieval
Эта разница имеет огромное значение, когда вы начинаете создавать ИИ-агентов.
6. Краткосрочная память
ИИ-агент может хранить информацию, важную для выполнения текущей задачи.
Возьмем в качестве примера следующее указание:
«Скачайте набор данных, отредактируйте его, проанализируйте и составьте отчет».
В процессе выполнения задачи агент может отслеживать свой прогресс следующим образом:
Task:
Create dataset report
Completed:
✓ Downloaded dataset
✓ Removed duplicates
✓ Calculated statisticsRemaining:
□ Create graphs
□ Write report
Это похоже на краткосрочную рабочую память у людей. Агент не пытается сохранять всё навсегда — ему нужны только те детали, которые важны для завершения текущей задачи.
7. Долгосрочная память
Теперь рассмотрим ситуацию, когда агенту необходимо сохранять что-то, что будет актуально дольше, чем текущая задача.
Например:
«Я предпочитаю Python для анализа данных».
Система памяти может сохранять подобные детали, чтобы они были доступны позже. Примерно:
Conversation
↓
Important Information
↓
Memory Store
↓
Future Conversation
↓
Retrieve Relevant Memory
↓
AI
Ключевое слово здесь —:
Релевантный.
Хорошо спроектированная система памяти не должна загружать всё, что у неё хранится. Она должна показывать только то, что полезно для текущей задачи.
8. Как система выбирает подходящую память?
Именно здесь всё становится по-настоящему интересным.
Предположим, хранилище памяти содержит записи вроде:
Memory 1:
User likes Python.
Memory 2:
User is working on computer vision.Memory 3:
User built a website.Memory 4:
User is learning distributed systems.Memory 5:
User prefers dark UI designs.
Тогда пользователь спрашивает:
«Какую модель мне использовать для своего проекта с изображениями?»
Загружать всю сохранённую память было бы расточительно и ненужно. Системе необходимо определить, какие из записей действительно применимы.
Именно такие проблемы и предназначены для решения эмбеддинги и векторный поиск.
9. Что такое эмбеддинг?
Эмбеддинг преобразует фрагмент информации в числовой вектор.
Концептуально:
"My project uses image classification"
↓
Embedding Model
↓
[0.12, -0.73, 0.44, ...]
Отдельный фрагмент текста может пройти через тот же процесс:
"Which model should I use for images?"
↓
Embedding Model
↓
[0.15, -0.69, 0.41, ...]
Если полученные векторы оказываются достаточно близкими согласно используемому методу сходства, система может рассматривать их как связанные понятия.
Это позволяет извлекать информацию на основе семантического сходства, а не полного совпадения ключевых слов.
10. Векторные базы данных
Когда у вас появляется большое количество эмбеддингов, им нужно место для хранения — обычно это база данных, созданная специально для векторного поиска.
Концептуально:
MEMORY
│
↓
Embeddings
│
↓
Vector Database
│
↑
User Query
│
↓
Query Embedding
│
↓
Similar Memories
Затем система поиска может искать воспоминания, эмбеддинги которых находятся рядом друг относительно в этом векторном пространстве.
Этот механизм лежит в основе большинства современных систем RAG и архитектур памяти.
11. RAG также является своего рода внешней памятью
Представьте компанию, у которой есть 50 000 внутренних документов.
Было бы неразумно включать каждый из этих документов напрямую в параметры модели, особенно учитывая, что их содержимое постоянно меняется со временем.
Вместо этого документы проходят этап подготовки:
Documents
↓
Chunking
↓
Embeddings
↓
Vector Database
И каждый раз, когда поступает вопрос, система сначала выполняет шаг поиска, прежде чем генерировать ответ:
Question
↓
Embedding
↓
Search
↓
Relevant Documents
↓
LLM
↓
Answer
Этот подход называется Retrieval-Augmented Generation, или RAG.
Вместо того чтобы запоминать весь набор документов, модель берет ту информацию, которая необходима в данный момент.
12. Параметры модели — это другой вид памяти
Существует еще один способ рассматривать «память» в системе ИИ:
Веса модели.
В процессе обучения нейронная сеть постоянно настраивает миллионы или даже миллиарды числовых параметров.
Грубо говоря:
Training Data
↓
Neural Network
↓
Parameter Updates
↓
Learned Weights
Эти веса в итоге кодируют закономерности, усвоенные во время обучения.
Однако это не то же самое, что наличие поискового архива отдельных фактов.
Как правило, невозможно задать модели что-то вроде:
"Покажите мне точное предложение, которое вы изучили по теме X."
Все, что она знает, распределено среди обученных параметров, а не хранится в виде доступной для поиска записи.
13. Три разных вида того, что мы часто называем «памятью»
На этом этапе стоит разделить три отдельные идеи:
1. Знания модели
Хранятся косвенно в параметрах модели.
Training
↓
Weights
↓
Learned capabilities
2. Контекст
Любая информация, которая в данный момент поступает в модель.
Conversation
↓
Context Window
↓
LLM
3. Внешняя память
Информация, хранящаяся полностью вне модели.
Database
Vector Store
Files
Documents
User Memory
↓
Retrieval
↓
LLM
Разделение этих трех аспектов помогает прояснить множество аспектов поведения ИИ, которые иначе кажутся запутанными.
14. Почему ИИ может «забывать»?
Предположим, вы говорите системе ИИ:
«Мой любимый язык программирования — Python».
Затем, после длительного разговора, она больше никогда не упоминает эту предпочтение.
Что произошло?
Возможно несколько объяснений:
Information no longer in active context
OR
Memory wasn't persisted
OR
Memory wasn't retrieved
OR
System chose not to use it
OR
The model misunderstood the reference
Когда ИИ, кажется, забывает, это не обязательно означает, что он ведет себя как забывчивый человек.
Настоящая причина может кроется в сбое в:
хранении данных, их извлечении, доступности контекста или поведении модели.
15. ИИ-агентам еще более необходима память
Вспомните предыдущее обсуждение ИИ-агентов.
Агент обычно выполняет последовательность шагов, таких как:
Plan
↓
Action
↓
Observation
↓
Action
↓
Observation
Без какой-либо формы сохранения состояния задачи, требующие нескольких шагов, становятся крайне сложными для управления.
Рассмотрим агента, работающего над проектом по программированию.
Ему необходимо отслеживать такие вещи, как:
Which files changed?
What tests failed?
What has been completed?
What remains?
What errors occurred?
What decisions were made?
Вот почему структура памяти агента часто выглядит примерно так:
AI AGENT
│
┌──────────┼──────────┐
↓ ↓ ↓
Context State Long-Term
Memory Memory
│ │ │
└──────────┼────────────┘
↓
Actions
16. Память не обязательно должна быть неструктурированной
Не все, что стоит запомнить, должно храниться в виде свободного текста.
Вместо этого агент может вести структурированные записи, примерно такие:
Project:
AirStore
Language:
PythonFramework:
FastAPIDatabase:
SQLiteCurrent Phase:
Storage NodeKnown Issue:
Heartbeat timeout
Данные, организованные в таком формате, гораздо проще найти и обновить позже, чем просматривать длинный блок необработанных разговоров.
Именно поэтому реальные ИИ-системы редко опираются на один механизм хранения. Вместо этого они обычно сочетают несколько подходов одновременно:
- базы данных
- структурированные объекты состояния
- хранилища векторов
- историю необработанных разговоров
- сгенерированные краткие изложения
17. Краткое изложение как техника хранения
Представьте разговор, длина которого достигла 100 000 слов.
Вместо того чтобы считать каждую строку одинаково важной, система может сжать этот обмен в краткое изложение.
Long Conversation
↓
Summarization
↓
Compact Memory
↓
Future Context
В качестве примера: вместо хранения 20 отдельных сообщений о проекте система может просто сохранять что-то вроде:
«Пользователь работает над системой на Python и FastAPI для хранения данных между отключенными узлами в офлайн-режиме, в настоящее время сосредотачиваясь на том, как узлы регистрируются друг с другом и реплицируют данные».
Это сокращает объем информации, которую необходимо передавать на каждом этапе.
Но сжатие также несет свои риски:
Что произойдет, если по пути будет потеряна какая-то важная информация?
Поэтому принятие решения о том, как ответственно сжимать память, само по себе является непростой инженерной задачей.
18. По сути, память — это способ извлечения информации
Одним из более тонких аспектов здесь является то, что память ИИ на самом деле не сводится к:
Сохраняется абсолютно всё.
Речь идет о:
Сохранении того, что полезно, и получении нужной информации в подходящий момент.
Упрощённый способ выразить это:
M* = argmax over m in M of S(m, q)
где:
- M — полный набор сохранённых данных
- q — текущий запрос
- S(m, q) — показатель релевантности между данными и запросом
- M* — данные (или несколько данных), выбранные как наиболее релевантные
Проще говоря:
Millions of memories
↓
Current question
↓
Relevance calculation
↓
Top useful memories
↓
AI
19. Наличие большего количества сохранённых данных не означает большей умности
Этот момент очень важен.
Предположим, одна система ИИ хранит:
10,000 irrelevant facts
в то время как другая хранит только:
3 relevant facts
Какая из них показывает лучшие результаты на практике? Чаще всего — вторая.
Большое количество нерелевантных сохранённых данных на самом деле может мешать их поиску и ненужно занимать пространство для хранения контекста.
Таким образом, реальная зависимость выглядит следующим образом:
Полезная память > Максимальная память
Цель не в том, чтобы максимизировать объём хранимых данных, а в том, чтобы максимизировать их релевантность.
20. Запоминание информации вызывает проблемы с конфиденциальностью
Как только система становится способной запоминать детали о пользователе, возникает новый вопрос:
Где именно хранится эта информация?
Потенциально конфиденциальные данные могут оказаться разбросанными по:
Conversation history
Databases
Vector stores
Application logs
Files
Caches
Эта реальность сопровождается рядом инженерных требований:
- ограничение доступа
- шифрование храняемых данных
- определение сроков хранения
- обеспечение механизмов удаления
- ведение журналов аудита
Без этих мер защиты система, которая запоминает всё о своих пользователях, может стать настоящей угрозой для их конфиденциальности.
21. Использование памяти для персонализации ответов
Именно память делает ИИ-системы заметно более полезными.
Предположим, ИИ выяснил, что вы обычно предпочитаете:
Python
Simple explanations
Practical examples
Technical diagrams
В будущем ответы могут формироваться с учетом этих предпочтений.
Это не означает, что сама основная модель стала умнее в целом. Скорее:
General AI
+
Relevant User Context
↓
Personalized Interaction
Именно это различие является одной из главных причин, по которой память стала таким важным элементом проектирования современных ИИ-продуктов.
22. Что дальше: ИИ, построенный на нескольких уровнях памяти
Развитый ИИ-агент в будущем сможет использовать комбинацию подобных элементов:
AI AGENT
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Working Memory Long-Term External
Memory Knowledge
↓ ↓ ↓
Current Task Preferences Documents
History Databases
Projects APIs
└─────────────┼─────────────┘
↓
Retrieval
↓
LLM
↓
Action
Вместо единого объединенного «ящика памяти» это скорее похоже на стопку отдельных слоев памяти, работающих вместе.
23. Почему память ИИ не похожа на человеческую память
Человеческая память — биологический процесс. Она динамична, ассоциативна и формируется под влиянием восприятия, эмоций, повторения и бесчисленного количества других факторов, которые взаимодействуют способами, которых мы полностью не понимаем.
Память ИИ, напротив, создается по заранее разработанному проекту.
Обычно она опирается на такие компоненты, как:
Tokens
Vectors
Databases
Indexes
Parameters
Summaries
Retrieval algorithms
Оба вида памяти могут давать внешне схожие результаты, однако они функционируют на совершенно разных принципах.
Поэтому каждый раз, когда кто-то говорит:
«ИИ запоминает».
стоит на мгновение остановиться и спросить:
Какой механизм на самом деле предоставляет эту информацию?
24. Сводка всего
Современную систему ИИ можно представить следующим образом:
USER
│
↓
QUESTION
│
↓
┌──────────────────┐
│ AI / LLM │
└────────┬─────────┘
│
┌───────────────┼────────────────┐
↓ ↓ ↓
Context Memory RAG/Search
│ │ │
Conversation Vector DB Documents
Current Task Database Web/Data
│ │ │
└───────────────┼────────────────┘
↓
Relevant Context
↓
LLM
↓
Response
А когда в игру вступает агент, картина становится ещё более сложной:
Goal
↓
Retrieve Memory
↓
Plan
↓
Choose Tool
↓
Execute
↓
Observe
↓
Store Important Result
↓
Plan Again
↓
Finish
Здесь память перестаёт быть пассивным хранилищем и становится активной частью цикла принятия решений агентом.
Заключительные мысли
Каждый раз, когда кто-то говорит:
«ИИ помнит».
как правило, за это не отвечает какая-то едина, волшебная система памяти.
Вместо этого обычно работают несколько уровней вместе:
Знания модели + контекст + внешняя память + механизм поиска
Параметры модели хранят шаблоны, выученные во время обучения. Окно контекста предоставляет модели всю информацию, доступную в данный момент. Внешняя память хранит информацию вне самой модели. Механизм поиска определяет, какую из сохраненных данных следует восстановить тогда, когда она действительно нужна.
Это приводит к интересному выводу:
Будущее памяти ИИ, вероятно, не заключается в том, чтобы заставить модели запоминать всё.
Скорее речь идет о том, чтобы научить их сохранять то, что важно, отбрасывать ненужное, извлекать информацию в подходящий момент и ответственно с ней обращаться.
ИИ, способный хранить неограниченное количество данных, но плохо их извлекать, по-прежнему будет сложен в использовании. ИИ с тщательно спроектированной системой памяти, даже небольшой, может оказаться гораздо более полезным.
Поэтому настоящий вопрос не в том:
«Сколько может запомнить ИИ?»
А в том:
«Может ли ИИ вспомнить правильную информацию в нужный момент?»