Допустим, модель встречает сочетание «Новый год», «искусственный интеллект» или «белый медведь». Обычная сеть снова и снова прогоняет это через слои и восстанавливает знакомые локальные связи.
DeepSeek решил дать модели гигантскую шпаргалку — Engram на 196 млрд параметров, из которой часть таких представлений можно просто быстро достать по короткой последовательности токенов.
Здесь используются N-граммы. На пальцах — просто несколько соседних токенов:
Новый год → последовательность из двух токеновНовый год наступил → из трёхмашинное обучение больших моделей → из четырёхDeepSeek использует последовательности длиной 2, 3 и 4 токена как ключи к памяти.
Логика примерно такая:
увидели знакомую последовательность → вычислили адрес → достали готовый векторВместо:
увидели знакомую последовательность → снова прогнали через кучу вычислений → опять восстановили то, что модель уже тысячу раз виделаПричём шпаргалка получилась не карманная. Основной DeepSeek V4.1 Flash содержит 552 млрд параметров, а отдельно под Engram выделено ещё 196 млрд.
Но эти 196 млрд не работают как обычный кусок нейросети, через который каждый раз надо прогонять все данные. Это скорее огромная ассоциативная память: для конкретной последовательности токенов достаётся только небольшая нужная часть.
Чтобы быстро находить запись, используется несколько способов вычислить её адрес. Это уменьшает вероятность того, что совершенно разные последовательности случайно попадут в одну и ту же ячейку памяти.
И найденная запись не вливается в мозг модели бездумно.
Контекст всё равно важен.
Например:
«белый медведь» — почти наверняка животное.
А «белый шум» — уже совсем другая история.
Поэтому модель дополнительно решает, насколько сильно вообще использовать то, что достала из шпаргалки.
Есть и очень приятная инженерная деталь: адрес записи известен сразу по самим токенам. То есть не нужно ждать, пока половина модели что-то вычислит.
Увидели последовательность → уже знаем, какой кусок памяти понадобится → можно заранее начать его подгружать, пока видеокарта занята другой работой.
И вот здесь идея Engram становится особенно красивой:
не всё, что модель знает, обязательно каждый раз заново вычислять.
Часть часто встречающихся локальных зависимостей можно просто хранить и быстро доставать, а дорогие вычисления оставить для нового контекста и реально сложных связей.
В отдельной работе про Engram такой подход улучшал не только задачи на знания, но и рассуждение: примерно +3.4 пункта на MMLU, +5.0 на BBH (BIG-Bench Hard — набор из самых сложных задач из более крупного BIG-Bench.), +3.0 на HumanEval и +2.4 на MATH. Извлечение информации из длинного контекста выросло с 84.2 до 97.0.
То есть гигантская шпаргалка неожиданно помогает не только помнить, но и лучше думать.
Логичное объяснение: если первые слои меньше тратятся на восстановление банальных локальных шаблонов, они могут заняться чем-нибудь полезнее.
Интересно другое - будет ли это первым шагом к разделению паттернов на некие уровни, сейчас локальные паттерны, в следующей версии добавят паттерны следующего уровня и разместят это в неком глобальном распределенном кэше, который кстати смогу использовать несколько инференс движков одновременно.
Ну и найдет ли команда Дипсика метод сжимать этот словарь также как они сжали K/V кэш (в прошлой статье).