Когда маленькая модель забывает всё через 5 минут
Представьте: вы настроили локальную Llama 3.2 1B на правила Rust. Объяснили про ownership, borrowing, lifetimes. Модель кивает, отвечает правильно. Вы закрываете сессию, возвращаетесь через час - и она снова спрашивает, что такое mutable reference. Знакомо?
Маленькие LLM страдают синдромом золотой рыбки. Контекстное окно - их кратковременная память. Закрыл чат - забыл всё. Дообучать модель на каждом правиле? Слишком дорого. Хранить всё в промпте? Контекст переполнится. Vestige предлагает третью опцию: слой памяти, который работает как гиппокамп для нейросети.
FSRS: алгоритм из Anki для нейросетей
FSRS (Free Spaced Repetition Scheduler) - это не просто очередной алгоритм интервальных повторений. Это математическая модель, которая предсказывает, когда вы забудете информацию. В Anki он рассчитывает, через сколько дней показать карточку. В Vestige - через сколько токенов напомнить модели правило.
| Компонент | В Anki | В Vestige |
|---|---|---|
| Память | Ваш мозг | Векторы активации LLM |
| Забывание | Кривая Эббингауза | Деградация внимания |
| Повторение | Показ карточки | Инжект в контекст |
Вот как это работает на практике. Вы объясняете модели: "В Rust нельзя иметь две изменяемые ссылки на одну переменную". Vestige сохраняет это как "память" с начальной силой 1.0. Каждый раз, когда модель генерирует ответ, сила памяти уменьшается по формуле FSRS. Когда она падает ниже порога - правило автоматически добавляется в следующий промпт.
Почему это не просто кэш промптов
Первая мысль: "Так это же просто умный кэш!" Не совсем. Обычный кэш хранит текст. Vestige хранит векторы активации - паттерны, которые возникают в нейросети при обработке информации. Это ближе к тому, как работает память в биологическом мозге.
Важный нюанс: Vestige не заменяет RAG для работы с документами. Он для инструкций и правил, которые должны стать частью "личности" модели. Для справочной информации используйте классический RAG.
Пример с Rust правилами показывает разницу. В RAG вы бы искали в базе знаний параграф про borrowing. В Vestige модель "вспоминает" правило в момент, когда собирается нарушить его. Как внутренний голос программиста: "Стой, тут же будет двойной mutable borrow!".
Сравнение с альтернативами: что выбрать в 2026
На рынке памяти для LLM сейчас три основных подхода:
- Контекстное окно (у всех моделей) - просто, но ограничено. Llama 3.3 держит 128K токенов, но цена внимания растет квадратично.
- Внешняя память (как в SMART SLM) - отдельный векторный поиск. Хорошо для фактов, плохо для инструкций.
- Дообучение - эффективно, но ведет к катастрофическому забыванию.
Vestige занимает нишу между ними. Он не требует перетренировки модели (в отличие от дообучения), но дает более глубокое запоминание, чем простое хранение в контексте. Плата за это - дополнительный latency в 15-30 мс на инжект памяти.
Кому реально нужен Vestige (а кому нет)
Технология не для всех. Вот типичные сценарии, где она работает:
Идеальные кандидаты
- Локальные код-ассистенты на маленьких моделях. Когда не хватает денег на Copilot Enterprise, но нужна модель, которая помнит ваши code style правила.
- Образовательные боты. Модель преподает Rust, Python, математику - и не забывает объясненные концепции между сессиями.
- Персонализированные ассистенты. "Я не ем глютен", "Мой кот болеет, нужен совет ветеринара" - такие предпочтения идеально ложатся в память Vestige.
Плохие кандидаты
- Большие модели (70B+). У них и так хорошая память, overhead от Vestige не оправдан.
- Сценарии с strict latency требованиями. Финансовые трейдинг-боты, где каждый миллисекунд на счету.
- Сильно мультимодальные задачи. Vestige 1.0 работает только с текстом, изображения и аудио не поддерживает.
Как выглядит использование на практике
Допустим, вы делаете Rust-ассистента на Llama 3.2 1B. Без Vestige диалог выглядел бы так:
Вы: В Rust что такое lifetime аннотация?
Модель: Lifetime аннотации указывают, как долго ссылки действительны...
(проходит 50 сообщений)
Вы: А как связаны lifetime и borrowing?
Модель: Borrowing? Это что-то про заимствование денег?
С Vestige модель получает микро-напоминания. После объяснения borrowing, через N токенов (рассчитанных FSRS) в промпт автоматически добавляется: "Напомню: borrowing в Rust - это механизм заимствования ссылок без передачи владения". Неявно, без вашего участия.
Технические ограничения и подводные камни
Vestige - не серебряная пуля. Вот что бесит в текущей реализации (версия 0.8.3 на 30.01.2026):
- Нет batch обработки. Каждое напоминание инжектится отдельно, что убивает throughput в production.
- Параметры FSRS нужно подбирать вручную. Для Rust правил - одна кривая забывания, для кулинарных рецептов - другая. Универсальных настроек нет.
- Конфликты с другими техниками. Если вы используете RLM для управления контекстом, могут быть race conditions.
И главное: Vestige не создаёт понимание. Он создаёт привычку. Модель не начинает "понимать" правила Rust лучше - она просто чаще их видит в промпте. Это как зубрёжка перед экзаменом: работает, но глубины нет.
Что будет дальше: прогноз на 2026-2027
Сейчас Vestige - экспериментальная библиотека. Но тренд очевиден: маленькие модели становятся умнее не через увеличение параметров, а через улучшение архитектуры памяти.
К концу 2026 жду:
- Интеграцию с фреймворками reasoning. Чтобы память активировалась не по таймеру, а когда модель действительно "задумалась" о теме.
- Адаптивные кривые забывания. Модель сама будет учиться, как быстро она забывает разные типы информации.
- Поддержку мультимодальности. Чтобы помнить не только текст правил, но и примеры кода, диаграммы, скриншоты ошибок.
Не верьте хайпу про "нейросеть с вечной памятью". Биологический мозг тоже забывает - это feature, не bug. Идеальная память привела бы к информационному перегрузу. Vestige балансирует на грани: помнить достаточно, но не слишком много.
Попробуйте Vestige, если ваша маленькая модель страдает склерозом. Но не ждите чуда. Это костыль, хотя и очень умный. Настоящее решение придёт с архитектурными изменениями в самих LLM - возможно, в Llama 4 или следующем поколении open-source моделей.
А пока - учите модели как учили бы стажера. Повторяйте. Напоминайте. Терпите их забывчивость. В конце концов, даже люди с идеальной памятью редко становятся гениальными программистами. Иногда полезно забывать старое, чтобы учиться новому.