исследования 2 мин

Fractale-350M: модель с памятью в 8 векторах вместо длинного контекста

Независимый исследователь выпустил языковую модель на 386M параметров, которая вместо длинного контекста использует банк из 8 обучаемых векторов-«заметок». Модель сжимает каждые 512 токенов в один вектор и читает память как часть прямого прохода, а не через механизм внимания. Открыты веса, код и полный лог исследования.

Это работающий proof-of-concept памяти без длинного контекста: вместо квадратичного роста attention или внешнего RAG модель учится сжимать историю в маленький набор обучаемых векторов. Если подход масштабируется, это путь к моделям с постоянной памятью при фиксированных вычислительных затратах.

Память как поведение, а не как длинный контекст

Независимый исследователь KKuettes выпустил Fractale-350M — экспериментальную языковую модель на 386 млн параметров с радикально иным подходом к памяти. Вместо растущего окна контекста модель использует банк из 8 обучаемых векторов, каждый из которых сжимает 512-токенный фрагмент текста.

Как это работает

Модель обрабатывает документ кусками по 512 токенов. Каждый кусок порождает один «вектор-заметку», который записывается в банк памяти. Когда банк заполняется, самый старый вектор вытесняется (FIFO). Ключевая особенность: эти векторы читаются не через механизм внимания, а как fast weights — каждый слот разворачивается через гиперсеть в маленький low-rank MLP, и поток токенов проходит через него.

Любая информация старше текущего 512-токенного окна доступна модели только через эти 8 векторов. Во время предобучения модель училась предсказывать начало следующего, никогда не виденного фрагмента документа, имея на входе только банк — без текста.

Результаты

На отложенных данных разница в cross-entropy между состояниями «банк сброшен» и «банк сохранён» составила +9.4 nat на коде и +7.3 nat на веб-текстах. Разрыв оставался стабильным на протяжении 2–8 записанных фрагментов (без обвала при вытеснении). Более того, в процессе обучения модель становилась всё более зависимой от памяти: качество с банком росло, а без банка — падало.

На меньших масштабах (3M параметров) показана адресуемость содержимого, устойчивость после вытеснения на 2000+ шагов и перенос контекста (например, docstring → код) в обе стороны. Одно 13-токенное предъявление устанавливало правило с точностью 0.79–1.00 на новых запросах, тогда как test-time training ничего не переносил, стоя в 138 раз дороже.

Что это НЕ

  • Это базовая модель, не чат-бот: без instruction tuning, без выравнивания.
  • Банк хранит суть (домен, структуру, заявленные факты), а не дословный текст — попросите процитировать строку 3, и модель не сможет.
  • Сравнение идёт с самой моделью без памяти, а не с attention-baseline того же вычислительного бюджета.

Практика

Память — это состояние, которое вы храните отдельно:

from fractale import BankSession
sess = BankSession.from_pretrained("fractale-lm/Fractale-350M-base")
sess.read(open("long_doc.txt").read())  # любая длина
print(sess.continuation(32))            # предсказание только по 8 заметкам
sess.save_bank("doc.bank")              # несколько кБ; можно загрузить завтра

Открытость

Всё опубликовано: веса на Hugging Face, полный research log с командами воспроизведения, код обучения, статья на Zenodo. Весь прогон стоил ~$320 на арендованных 8×A100 и профинансирован автором. Следующий этап — instruction tuning, чтобы модель училась использовать память намеренно.

Ключевые выводы

  • Память можно реализовать как обучаемое поведение (fast weights), а не как растущий контекст или RAG
  • Модель становится более зависимой от памяти в процессе обучения: качество с банком растёт, без банка — падает
  • 8 векторов дают стабильный прирост 7–9 nat на документах любой длины без обвала при вытеснении
  • Состояние памяти (несколько кБ) можно сохранить, переносить между сессиями и использовать как артефакт
  • Полный pretrain 386M-модели на 10B токенов обошёлся в $320 на арендованных GPU
fast-weightsпамятьархитектураopen-researchsolo-researcher

Автор: Ксения Лаврова · Источник: reddit.com

Мнение редакции

Это один из тех редких постов на Reddit, где за скромным «я тут поковырялся» скрывается настоящий research. KKuettes в одиночку, на своей RTX 3090 и $320 облачного времени, реализовал идею, которую крупные лабы обсуждают в теории: память как обучаемое поведение, а не как attention over tokens. Восемь векторов на всю историю — звучит безумно, но цифры говорят сами: +9.4 nat на коде, стабильно на любой длине, без обвала. И, что важно, модель сама научилась этому полагаться: чем дольше обучалась, тем сильнее зависела от банка.

Конечно, это не production-ready решение — 386M параметров, 10B токенов, базовая модель без tuning. Но ценность в другом: полностью открытый эксперимент с воспроизводимыми результатами, пошаговым research log и честными цифрами, включая NaN-инциденты. Это не hype, это методичная работа. Если идея выживет на больших масштабах (а автор обещает steelman-сравнение с gated-DeltaNet), мы можем увидеть новый класс архитектур — модели с постоянной, переносимой памятью вместо бесконечно растущего окна контекста.

Инструменты из статьи

AI-ассистент Anthropic. Сильнейший в работе с кодом, длинными документами и...

Доступ из РФ →

Ещё по теме

Комментарии