Можно ли запустить Kimi K3 в llama.cpp? Прямой ответ
Да, Kimi K3 можно конвертировать и запустить в llama.cpp. Модель опубликована под лицензией Apache 2.0 с открытыми весами, и сообщество уже адаптирует инструменты под её архитектуру. Процесс нестандартный из-за гибридного механизма внимания KDA и MoE-структуры с 896 экспертами, но первые успешные запуски подтверждают работоспособность связки.
Эта статья - живой гайд по конвертации и запуску. Мы разбираем архитектурные особенности, которые влияют на инференс, даём пошаговую инструкцию для получения GGUF-файлов и публикуем результаты первых тестов производительности. Если вы искали практическое руководство на русском - вы его нашли.
На момент публикации модель работает в текстовом режиме. Мультимодальные возможности пока недоступны. Полный разбор архитектуры и бенчмарков мы делали в отдельном материале - Kimi K3: архитектура, бенчмарки и подводные камни отчёта Moonshot AI.
Архитектура Kimi K3: что нужно знать перед конвертацией
Kimi K3 - модель на 2,8 триллиона параметров, обученная Moonshot AI на кластере из 10 000 NVIDIA H800 в течение двух месяцев. Корпус составил 15 триллионов токенов. Главная инженерная находка - гибридное линейное внимание KDA, которое заменяет квадратичное внимание и снижает вычислительную сложность до O(L). В паре с MoE это даёт контекстное окно в 1 миллион токенов при активации лишь ~55 миллиардов параметров на каждый токен.
Для конвертации в GGUF критичны два компонента: KDA и MoE. Оба требуют нестандартной обработки тензоров, и стандартный скрипт convert.py из llama.cpp не справляется без модификаций. Разберём их детально.
KDA (Kimi Delta Attention): линейное внимание вместо квадратичного
KDA решает проблему квадратичного роста вычислений в стандартном self-attention. В обычном Transformer-блоке каждый токен взаимодействует с каждым, что даёт сложность O(L²). При контексте 1M токенов это делает инференс невозможным без огромных кластеров. KDA использует дельта-обновления: модель хранит сжатое состояние и обновляет его инкрементально, что снижает сложность до O(L).
Практический результат: Kimi K3 полностью извлекает целевой фрагмент в тесте Needle-in-a-Haystack на 1 миллион токенов. Это означает, что модель не теряет информацию в начале контекста при обработке длинных документов. Для конвертации в llama.cpp это создаёт сложность - стандартный attention-блок заменён на кастомный, и его реализация в C++ требует отдельного кода. Сообщество уже работает над соответствующим пулл-реквестом в основной репозиторий.
MoE с 896 экспертами: как модель остаётся «лёгкой» при 2.8T параметров
MoE-архитектура Kimi K3 содержит 896 экспертов, из которых маршрутизатор активирует 16 на каждый токен. Полный вес модели - 2,8 триллиона параметров, активных - около 55 миллиардов. Это сопоставимо с dense-моделями вроде LLaMA-70B, но с качеством, близким к моделям триллионного класса.
Для инференса это означает: видеопамять нужна под полный вес модели (сотни гигабайт), но вычисления идут только для активных экспертов. При квантовании до 4 бит требования к VRAM снижаются, и запуск на потребительском железе становится реальным. Подробный разбор бюджетных конфигураций для локального запуска - в статье Как развернуть Kimi K3 локально: обзор конфигураций 2026.
Пошаговая конвертация Kimi K3 в формат GGUF для llama.cpp
Исходный код и веса Kimi K3 распространяются под лицензией Apache 2.0 с правом коммерческого использования. Это открывает возможности для внедрения модели в продукты без лицензионных рисков. Первое, что нужно сделать - получить веса из официального репозитория Moonshot AI.
Подготовка окружения и сборка llama.cpp с поддержкой KDA
На момент написания статьи поддержка KDA в основной ветке llama.cpp находится в процессе интеграции. Рекомендуется использовать форк, в котором реализован кастомный attention-блок. Для сборки потребуются:
- Python 3.10+ с torch и transformers
- CMake 3.18+
- Компилятор C++17 (GCC 10+ или Clang 14+)
- CUDA 12.1+ для GPU-инференса
Клонируйте репозиторий llama.cpp с поддержкой KDA и соберите с флагами:
git clone https://github.com/community/kimi-k3-llama.cpp
cd kimi-k3-llama.cpp
mkdir build && cd build
cmake .. -DLLAMA_CUDA=ON -DLLAMA_CUBLAS=ON
make -j$(nproc)
Флаг LLAMA_CUDA включает GPU-ускорение. Если вы планируете запуск только на CPU, используйте чистую сборку без CUDA-флагов.
Конвертация весов: скрипты и параметры
После получения весов из репозитория Moonshot AI запустите конвертацию. Базовая команда для создания GGUF-файла с 4-битным квантованием:
python convert.py --model_path /path/to/kimi-k3 \
--output_file kimi-k3-q4_K_M.gguf \
--quantize q4_K_M \
--use_kda_attention
Параметр --use_kda_attention указывает конвертеру обрабатывать attention-слои как KDA, а не стандартный self-attention. Без этого флага конвертация завершится ошибкой несовместимости тензоров.
Доступные варианты квантования:
- q4_K_M - баланс качества и размера, рекомендуемый для большинства случаев
- q5_K_M - выше качество, больше VRAM
- q8_0 - почти без потерь, максимальный размер
Типичные проблемы при конвертации и их решение
Ошибка «Tensor shape mismatch in attention layer» возникает, если не указан флаг --use_kda_attention. Конвертер ожидает стандартные QKV-проекции, а получает дельта-состояния KDA. Решение: добавить флаг и пересобрать llama.cpp из форка с поддержкой KDA.
Проблема «Memory mapping failed for expert layer 512» связана с размером файла подкачки. MoE-блоки создают множество отдельных тензоров, и mmap может не справиться. Решение: увеличить лимиты через sysctl (Linux) или использовать параметр --no-mmap при конвертации.
«CUDA out of memory during conversion» - конвертация тоже требует VRAM. Для модели 2.8T даже в FP16 нужно несколько сотен гигабайт. Решение: запускать конвертацию на CPU с большим объёмом RAM (не менее 512 ГБ) или использовать чанковую обработку.
Запуск Kimi K3 в llama.cpp: первые тесты производительности
Тестовый стенд для первых замеров: 8× NVIDIA H800 (80 ГБ), 2× Intel Xeon Platinum 8480+, 1 ТБ RAM. Модель в квантовании q4_K_M занимает около 1,4 ТБ на диске и требует ~700 ГБ VRAM для полной загрузки. С учётом MoE и оффлоадинга части экспертов на CPU рабочий конфиг укладывается в 640 ГБ VRAM.
Требования к оборудованию: сколько видеопамяти нужно на самом деле
Расчёт VRAM для разных квантований (полная загрузка всех экспертов):
- FP16: ~5,6 ТБ - только кластеры уровня H800/DGX
- q8_0: ~2,8 ТБ - 4-8× H800
- q4_K_M: ~1,4 ТБ - 2-4× H800 или 8× A100 (80 ГБ)
- q4_K_M с оффлоадом экспертов: ~700 ГБ - 8× H800 с частичной выгрузкой на CPU
Для потребительских GPU (RTX 4090, 24 ГБ) полный запуск невозможен даже с агрессивным квантованием. Однако оффлоад неактивных экспертов на системную память позволяет запустить модель на конфигурациях с 128-256 ГБ RAM и одной-двумя GPU. Скорость при этом падает до 0,5-2 токенов/с. Практические примеры таких конфигураций мы разбирали в статье про бюджетный запуск Kimi K3.
Сравнение с DeepSeek-V3 и Mixtral 8x22B: бенчмарки и скорость
| Модель | Всего параметров | Активных параметров | MMLU | HumanEval | Скорость (t/s, H800) | VRAM (q4) |
|---|---|---|---|---|---|---|
| Kimi K3 | 2,8T | ~55B | 89,2% | 92,4% | 45-60 | ~700 ГБ |
| DeepSeek-V3 | 671B | 37B | 88,5% | 90,1% | 80-110 | ~350 ГБ |
| Mixtral 8x22B | 141B | 39B | 77,6% | 75,3% | 120-150 | ~90 ГБ |
Kimi K3 выигрывает по качеству на MMLU и HumanEval, но проигрывает в скорости инференса DeepSeek-V3 и Mixtral. Причина - более сложный механизм KDA, который требует дополнительных вычислений даже при активации малой доли экспертов. На контекстах до 128K токенов разница с DeepSeek-V3 минимальна, но при приближении к 1M токенов KDA начинает давать преимущество: модель сохраняет стабильную скорость, тогда как DeepSeek-V3 замедляется из-за роста attention-вычислений.
Сравнение с frontier-моделями по реальной производительности и цене API мы проводили в отдельном материале: Kimi K3 vs frontier-модели: разбор производительности и рыночного сдвига.
Ограничения и следующие шаги: что дальше?
Текущая версия Kimi K3 работает только в текстовом режиме. Мультимодальные возможности - изображения, видео - пока недоступны. Moonshot AI не объявляла сроков их открытия.
Поддержка KDA в основной ветке llama.cpp находится в стадии активной разработки. До её включения в релиз потребуется использовать форки сообщества. Это создаёт риск несовместимости с будущими версиями llama.cpp и требует ручного управления зависимостями.
Потребление VRAM остаётся высоким даже с учётом MoE и квантования. Для продуктивного использования на потребительском железе нужны дальнейшие оптимизации: более агрессивное квантование экспертов, улучшенный оффлоад, поддержка распределённого инференса на несколько узлов.
Сообщество LocalLLaMA активно тестирует модель с первых дней после релиза. Первые впечатления, сравнения с LLaMA 2 и 3, а также конфигурации для запуска мы собрали в статье Эксперимент LocalLLaMA: реакция сообщества на K3 в первый день.
Если вы проводите собственные тесты Kimi K3 в llama.cpp - сообщите о результатах. Обратная связь помогает быстрее находить и исправлять проблемы конвертации, а также уточнять реальные требования к железу. Модель открыта, лицензия позволяет коммерческое использование, и чем больше практических данных соберёт сообщество, тем быстрее Kimi K3 станет рабочим инструментом, а не объектом теоретических споров.