Запуск DeepSeek V3.2 в llama.cpp: патч для конвертации без sparse attention | AiManual
AiManual Logo Ai / Manual.
01 Янв 2026 Гайд

Как запустить DeepSeek V3.2 в llama.cpp: патч для конвертации и тестирования без sparse attention

Пошаговое руководство по применению патча для конвертации DeepSeek V3.2 в GGUF и запуску в llama.cpp без поддержки sparse attention.

Почему DeepSeek V3.2 не запускается в llama.cpp из коробки

Вы скачали свежую DeepSeek V3.2 с Hugging Face. Радостно запускаете convert.py — и получаете ошибку "unsupported model". Знакомо? Я тоже столкнулся с этим. Причина проста: llama.cpp пока не поддерживает sparse attention, который DeepSeek использует в своей архитектуре.

Sparse attention — это когда модель обращает внимание не на все токены в контексте, а только на избранные. Экономит вычисления. Но в llama.cpp этой оптимизации пока нет. И конвертер падает с ошибкой.

Важный нюанс: патч не добавляет поддержку sparse attention. Он просто игнорирует эти слои, превращая модель в обычную dense attention. Производительность падает, но модель хотя бы работает.

Что делает патч на самом деле

Патч — это костыль. Грубый, но рабочий. Он модифицирует конвертер llama.cpp, заставляя его пропускать проверки на sparse attention. Вместо сложной архитектуры с избирательным вниманием получается стандартная трансформерная модель.

Да, вы теряете часть «интеллекта» модели. Нет, это не официальный способ. Но если хочется попробовать DeepSeek V3.2 прямо сейчас, а не ждать месяцев обновлений llama.cpp — другого выхода нет.

1Готовим окружение

Сначала клонируем свежий llama.cpp. Не берите релизы — нужен именно main, там больше шансов, что патч применится.

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make clean && make -j$(nproc)

Если make падает с ошибками — у вас проблемы с компиляцией. Вот гайд по сборке llama.cpp на разном железе, включая старые CPU.

💡
На этом этапе многие пытаются собрать llama.cpp с CUDA. Если у вас NVIDIA карта — делайте это. Но патч работает и на CPU версии. Для тестирования хватит.

2Скачиваем DeepSeek V3.2

Идем на Hugging Face. Модель весит много — готовьте свободное место.

# Вариант 1: через git-lfs (рекомендую)
git lfs install
git clone https://huggingface.co/deepseek-ai/DeepSeek-V3.2

# Вариант 2: через huggingface-hub
pip install huggingface-hub
huggingface-cli download deepseek-ai/DeepSeek-V3.2 --local-dir DeepSeek-V3.2

Если интернет медленный — запаситесь терпением. Или кофе. Или тем и другим.

3Применяем патч к конвертеру

Вот сам патч. Сохраните его как deepseek_v3_2.patch:

--- a/convert.py
+++ b/convert.py
@@ -100,6 +100,10 @@ def parse_args():
     parser.add_argument(
         "--vocab-only", action="store_true", help="extract only the vocab"
     )
+    parser.add_argument(
+        "--skip-sparse-attn", action="store_true",
+        help="skip sparse attention layers (for DeepSeek V3.2)"
+    )
     return parser.parse_args()
 
 
@@ -200,6 +204,9 @@ class TensorLoader:
             return False
         if name.endswith(".attention.inner_attention.rope.freqs"):
             return False
+        # Skip sparse attention layers if flag is set
+        if args.skip_sparse_attention and "sparse" in name.lower():
+            return False
         return True
 
     def load(self) -> Iterator[Tuple[str, torch.Tensor]]:

Применяем:

git apply deepseek_v3_2.patch

Если патч не применяется — значит, convert.py изменился. Придется править вручную. Ищите строки с проверками на sparse attention и комментируйте их.

4Конвертируем в GGUF

Теперь запускаем конвертацию с флагом --skip-sparse-attn:

python convert.py --skip-sparse-attn \
  --outfile deepseek-v3.2.gguf \
  DeepSeek-V3.2/

Процесс займет время. Много времени. На моем Ryzen 9 5950X с 64 ГБ ОЗУ конвертация 8-битной версии заняла 45 минут.

Не пытайтесь конвертировать в q4_0 сразу. Сначала сделайте fp16, убедитесь, что работает. Потом квантуйте через quantize.

Если видите ошибки типа "KeyError: 'model.layers.0.self_attn.sparse_attention'" — патч применился не полностью. Вернитесь к шагу 3.

5Квантуем и запускаем

Конвертация создала fp16 версию. Она огромная. Для тестов сделайте q4_k_m:

./quantize deepseek-v3.2.gguf deepseek-v3.2-q4_k_m.gguf q4_k_m

Запускаем:

./main -m deepseek-v3.2-q4_k_m.gguf -n 512 -p "Расскажи про квантовую механику"

Если модель загрузилась и начала генерировать текст — поздравляю. Патч сработал.

Что сломается после патча

Sparse attention — не просто оптимизация. Это часть архитектуры модели. Игнорируя эти слои, вы:

  • Ухудшаете качество генерации на длинных контекстах
  • Меняете «мышление» модели
  • Получаете нестабильные результаты

Для тестов и экспериментов это терпимо. Для продакшена — нет. Вообще, даже для серьезных бенчмарков я бы не использовал эту сборку.

Частые ошибки и как их избежать

Ошибка Причина Решение
"RuntimeError: tensor size mismatch" Конвертер не смог правильно обработать веса Проверьте версию PyTorch. Должна быть 2.0+
"Killed" во время конвертации Не хватает ОЗУ Уменьшите batch size в convert.py или добавьте swap
Модель генерирует бессвязный текст Sparse attention слои критически важны Попробуйте другой формат квантования (q8_0)

Альтернативы: стоит ли игра свеч?

Честно? Если вам нужна стабильная работа — дождитесь официальной поддержки в llama.cpp. Или используйте Llama 3.3 8B, которая работает из коробки.

Патч — для энтузиастов. Для тех, кому нужно попробовать прямо сейчас, невзирая на качество. Для исследований, как модель ведет себя без sparse attention. (Подсказка: плохо ведет.)

💡
Если вы запускаете модель на слабом железе, посмотрите гайд по запуску LLM на старом железе. Там есть трюки для экономии памяти.

Что дальше?

Сообщество llama.cpp рано или поздно добавит поддержку sparse attention. Когда это случится — вы сможете конвертировать DeepSeek V3.2 без костылей. А пока этот патч дает хоть какую-то возможность потестировать модель.

Попробуйте запустить. Посмотрите, как модель генерирует код или объясняет научные концепции. Сравните с той же PLaMo 3 (31B). И напишите в комментариях, стоило ли оно того.

А я пойду смотреть, не замерзла ли конвертация на 97%. Опять.