Автоматы и сознание

Фокус внимания и память агентов

Цели урока

  • Понять проблему ограниченных вычислительных ресурсов и почему приоритизация - фича, не баг
  • Различать типы памяти агента: сенсорная, рабочая, эпизодическая, семантическая
  • Разобрать механизм scaled dot-product attention (Q, K, V) и multi-head attention
  • Понять RAG как паттерн внешней памяти: когда и почему применяется

Предварительные знания

  • Иерархические автоматы (урок 06-hierarchical)
  • POMDP и belief state (урок 05-pomdp)
  • Линейная алгебра: векторы, матричное умножение, dot product
  • Базовое понимание нейронных сетей и softmax

Gato (DeepMind, 2022) управляет 604 задачами с контекстом 1024 токена. Notion AI индексировала 4 миллиарда страниц. Это не магия - это правильная архитектура памяти и attention.

  • **Трансформеры (2017):** 'Attention Is All You Need' - самая цитируемая статья в NLP, основа GPT/Claude/Gemini
  • **GitHub Copilot:** RAG по репозиторию - релевантные файлы в контекст, генерация с кодовой базой
  • **Cursor IDE:** индексирует весь проект, retrieval по семантике, 500K+ пользователей
  • **Notion AI:** 4 миллиарда страниц, RAG + summarization, real-time обновление базы
  • **ChatGPT memory:** эпизодическая память между сессиями - хранит предпочтения, контекст пользователя

Революция Attention: от RNN к трансформерам

До 2017 года NLP работал на RNN и LSTM: последовательная обработка токен за токеном, информация о начале последовательности терялась к концу. Vaswani et al. предложили убрать рекуррентность полностью и оставить только attention. Статья вышла на NeurIPS 2017 с названием 'Attention Is All You Need' - за иронию в названии авторов немного критиковали, но результат говорил сам за себя. За 7 лет механизм не изменился принципиально - изменился только масштаб.

Проблема ограниченных ресурсов

**Google DeepMind, 2022: агент Gato обрабатывает 604 задачи - от управления роботом до игры в Atari. При этом контекст одного forward pass - фиксированные 1024 токена.** Мир бесконечно сложен, вычислительные ресурсы конечны. Это фундаментальное ограничение, которое определяет всю архитектуру интеллектуальных систем.

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

МеханизмВопросАналогияВ LLM
ВниманиеЧто обрабатывать СЕЙЧАС?Фонарик в темнотеSelf-attention по токенам
Рабочая памятьЧто удерживать АКТИВНО?7 открытых вкладокKV-cache контекста
Долгосрочная памятьЧто сохранить НАВСЕГДА?Записная книжкаRAG / веса модели

Закон Миллера (1956): рабочая память человека удерживает **7 +/- 2 элемента** одновременно. GPT-4 с контекстом 128K токенов - не исключение из этого правила, а попытка его обойти инженерными средствами.

**Prioritization как фича, не баг:** мозг игнорирует 99% входящей информации - ощущение одежды, фоновые звуки, периферийное зрение. Это не сбой, а необходимое условие работоспособности. Любой агент без приоритизации потребляет ресурсы равномерно - и ни на что не хватает.

Большой контекст решает проблему памяти

Большой контекст - компромисс: дороже, медленнее, и за его пределами всё равно ничего нет

Стоимость inference растёт квадратично с длиной контекста. Claude 3 с 200K токенов стоит в 10+ раз дороже, чем с 2K. При этом за границей контекста для модели не существует ни одного символа. RAG и другие механизмы внешней памяти решают именно эту часть проблемы.

Почему даже у модели с контекстом 128K токенов есть проблема "ограниченных ресурсов"?

Архитектура памяти агента

**Когнитивная архитектура SOAR (Laird, 1983) - первая попытка формализовать типы памяти интеллектуального агента. Сегодня LLM-агенты воспроизводят ту же структуру, но на другом субстрате.** Четыре типа памяти дают агенту разные возможности хранения и поиска.

Тип памятиВремя жизниЧто хранитВ агенте (LLM)
Сенсорный буферМиллисекундыСырые входные данныеВходные токены до обработки
Рабочая памятьМинуты / сессияАктивный контекст, 7+-2 элементаKV-cache, context window
ЭпизодическаяДолгосрочноКонкретные события с контекстомИстория диалогов (vector store)
СемантическаяПостоянноФакты и знания без привязки к событиюВеса модели после предобучения

Эпизодическая память хранит не факты, а **события**: где, когда, с кем. Именно поэтому можно вспомнить момент когда узнал формулу, но не саму формулу - они хранятся в разных системах.

**Консолидация памяти:** во сне мозг переносит важное из рабочей памяти в долгосрочную. Для агентов - аналог: ночной batch-процесс по эпизодам, извлечение паттернов, прунинг неважного. Без консолидации агент помнит всё одинаково - что хорошо ровно до момента, когда памяти не хватает.

Когда LLM отвечает на вопрос о Python без примеров из текущего диалога - какой тип памяти используется?

Механизм attention: мягкая адресация

**"Attention Is All You Need" (Vaswani et al., 2017, Google) - статья которую скачали более 100 000 раз за первый год. До неё LSTM обрабатывал последовательности по одному токену, теряя контекст на дистанции. Attention позволил смотреть на всё одновременно - и это перевернуло NLP.** GPT, BERT, Claude - все построены на этом одном механизме.

**Attention - мягкая адресация:** вместо жёсткого выбора "смотрю на позицию 5" система смотрит на все позиции одновременно с разными весами. Три компонента: Query (что ищем), Keys (метки доступного), Values (сам контент). Веса определяются близостью Query к каждому Key.

КомпонентАналогия (поиск файлов)В трансформере
Query (Q)Поисковый запрос: 'баг в auth'Текущий токен ищет информацию
Keys (K)Теги файлов: readme, auth, testsМетки каждого токена в контексте
Values (V)Содержимое файловСам контент каждого токена

**Multi-Head Attention:** вместо одного взгляда на контекст - несколько параллельных. Каждая голова специализируется на своём аспекте: синтаксические связи, семантическое сходство, позиционные паттерны. BERT-Large использует 16 голов в каждом слое из 24.

Голова attentionНа что смотрит (эмпирически)
Голова 1-2Синтаксические связи (подлежащее - сказуемое)
Голова 3-5Семантическое сходство (синонимы, замены)
Голова 6-8Позиционные паттерны (соседние токены)
Голова 9+Специализированные паттерны, зависят от задачи

Multi-head attention просто дублирует вычисления для надёжности

Каждая голова специализируется на разном типе зависимостей в данных

Это подтверждено интерпретируемостью: у BERT разные головы детектируют синтаксические vs семантические отношения. Это не избыточность - это параллельная обработка разных аспектов структуры. Одна большая голова с теми же параметрами показывает худшее качество.

Зачем в attention делят на sqrt(d_k)?

RAG: внешняя долговременная память

**Notion AI (2023): индексировано более 4 миллиардов страниц пользовательского контента. Ни одна модель не вместит такой базы в контекст. Решение - RAG (Retrieval-Augmented Generation): сначала найти релевантное, потом генерировать с ним.** Это паттерн, перевернувший enterprise-применение LLM.

ПараметрContext WindowRAG Vector Store
Объём128-200K токеновМиллиарды документов
Скорость доступаМгновенно (GPU)Поиск 50-200ms
ТочностьВидит всё в окнеМожет пропустить при плохом query
СтоимостьДорого (quadratic)Дёшево (хранение + index)
Когда обновляетсяНовый promptЛюбой момент (живая база)

**Hybrid подход:** production-системы часто комбинируют оба метода. Релевантные документы из RAG загружаются в контекст, но сам контекст тоже используется полностью. LangChain, LlamaIndex, Haystack - популярные фреймворки для этого паттерна.

RAG всегда лучше длинного контекста

RAG - компромисс: масштабируемость за счёт точности retrieval

Длинный контекст 'видит всё' и никогда не пропустит релевантное. RAG масштабируется до миллиардов документов, но retrieval не идеален: плохой query = нужный документ не в top-K. Выбор зависит от объёма данных и критичности точности.

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

Вопросы для размышления

  • ChatGPT иногда 'забывает' информацию из начала длинного диалога. Какой тип памяти при этом переполняется, и как бы выглядела архитектура агента, которая бы этого не допускала?

Связанные уроки

  • dl-01
Фокус внимания и память агентов

0

1

Войти