# llama.cpp b11411: проверка вращения KV-кеша ломает совместимость сохранённых состояний

Источник: https://modelium.tech/zhurnal/llama-cpp-b11411-kv-cache-rotation-state-compatibility/

В предварительной сборке llama.cpp b11411 исправлено восстановление KV-кеша при несовпадении параметров вращения: теперь формат сохраняет параметры для K и V и отклоняет несовместимое состояние вместо молчаливой интерпретации данных. Версии файлов сессий и состояний последовательностей повышены, поэтому старые сохранения потребуют пересоздания. Обычная загрузка весов модели этим изменением не затронута.

llama.cpp b11411: проверка вращения KV-кеша и старые сессии

5 октября 2026 года разработчики llama.cpp выпустили предварительную сборку **b11411** с изменением формата сохранения KV-состояния. Повод — исправление редкой, но неприятной ошибки: при восстановлении кеша с иной настройкой вращения ключей или значений прежний код мог принять данные без ошибки и затем неверно их интерпретировать. Это относится к сохранённому состоянию инференса, а не к файлу весов GGUF. Релиз помечен *prerelease*; мы не запускали эту сборку и описываем изменение по коду и документации проекта. [s1](#src-s1) [s2](#src-s2)

## Что изменилось

В PR #28498 разработчики добавили в сериализуемое состояние точные размеры матриц вращения для K и V. При чтении сохранения они сравниваются с текущим контекстом; при несовпадении восстановление прекращается с диагностикой «incompatible key rotation» или «incompatible value rotation». Автор PR приводит воспроизводимый сценарий: сохранить состояние с квантованным Q8-кешем K/V и настройкой вращения по умолчанию, затем перезапустить процесс с `LLAMA_ATTN_ROT_DISABLE=1` и попытаться восстановить его. Раньше такое несовпадение могло давать некорректный результат без явной ошибки. [s2](#src-s2) [s3](#src-s3)

Повышены **LLAMA_SESSION_VERSION с 10 до 11** и **LLAMA_STATE_SEQ_VERSION с 3 до 4**. Автор прямо предупреждает о несовместимости ранее сохранённых состояний. Это изменение нельзя трактовать как необходимость переустановить или скачать модель заново: версии относятся к формату состояния сессии/последовательности, не к GGUF-весам. [s2](#src-s2) [s3](#src-s3)

## Кому проверить обновление

- Если ваш процесс **сохраняет и восстанавливает состояние сессии либо отдельной последовательности**, после обновления закладывайте пересоздание старого сохранения на новой сборке. Не отключайте проверку вращения ради чтения несовместимого файла. Это эксплуатационный вывод из повышения версий и проверки полей. [s2](#src-s2) [s3](#src-s3)

- Если вы переключаете параметры квантованного KV-кеша или `LLAMA_ATTN_ROT_DISABLE`, не переносите уже сохранённое состояние между отличающимися конфигурациями. Совпадающая конфигурация в добавленном тесте восстанавливается; несовпадающая должна отклоняться только там, где вращение действительно используется. [s2](#src-s2) [s3](#src-s3)

- Если приложение каждый раз начинает новый контекст и не загружает сохранённый KV-кеш, именно несовместимость формата сохранений ему не нужна для миграции. Это не универсальное утверждение о совместимости всех API llama.cpp.

Изменение вошло в открытый код llama.cpp под MIT; **новых модельных весов этот релиз не выпускает**, а права на используемый GGUF надо проверять отдельно. Для понимания выбора K/V-квантизации и проверки памяти на своём стенде пригодится наше отдельное руководство по KV-кешу. [s1](#src-s1) [s4](#src-s4)

## Источники

1. [ggml-org/llama.cpp: release b11411](https://github.com/ggml-org/llama.cpp/releases/tag/b11411) — получено 2026-10-05
2. [ggml-org/llama.cpp PR #28498: restore mismatched KV rotation](https://github.com/ggml-org/llama.cpp/pull/28498) — получено 2026-10-05
3. [ggml-org/llama.cpp PR #28498: changed files](https://github.com/ggml-org/llama.cpp/pull/28498/files) — получено 2026-10-05
4. [ggml-org/llama.cpp LICENSE at b11411](https://github.com/ggml-org/llama.cpp/blob/b11411/LICENSE) — получено 2026-10-05
