Запуск динамических 1-битных GGUF-моделей DeepSeek-R1-0528
29 мая 2025 г. • Авторы: Дэниел и Майкл
29 мая 2025 г.
Авторы: Дэниел и Майкл
DeepSeek-R1-0528 — это новое обновление модели рассуждений R1 от DeepSeek. R1-0528 является самой мощной моделью с открытым исходным кодом в мире, конкурирующей с GPT-4.5 и o3 от OpenAI, а также с Gemini 2.5 Pro от Google.
DeepSeek также выпустили дистиллированную версию R1-0528, полученную путем дообучения (fine-tuning) Qwen3 (8B). Эта дистиллированная модель достигает той же производительности, что и Qwen3 (235B). Qwen3 GGUF: DeepSeek-R1-0528-Qwen3-8B-GGUF. Вы также можете дообучить модель Qwen3 с помощью Unsloth.
Вы можете запустить модель, используя динамические GGUF-модели Unsloth 1.78-bit 2.0 в ваших любимых фреймворках для инференса. Мы квантовали модель DeepSeek R1 с 671 млрд параметров, уменьшив её размер с 720 ГБ до 185 ГБ — это сокращение размера на 75%.
Рекомендуется: Прочитайте наше полное руководство (Complete Guide) с пошаговыми инструкциями по локальному запуску DeepSeek-R1-0528.
Чтобы обеспечить наилучший баланс между точностью и размером, мы не квантуем все слои подряд, а выборочно квантуем, например, слои MoE до более низкого битрейта, оставляя слои внимания и другие в 4 или 6 битах.
Скачайте наши полные GGUF-версии DeepSeek-R1-0528 здесь.
🐋 Как запустить DeepSeek-R1-0528
Модель DeepSeek-R1-0528-Qwen3-8B может поместиться практически в любой конфигурации, даже при наличии всего 20 ГБ оперативной памяти. Предварительная подготовка не требуется.
Qwen3 и полная модель R1-0528 используют одинаковые настройки и шаблоны чата.
Согласно DeepSeek, для инференса R1 (для R1-0528 следует использовать те же настройки) рекомендуются следующие параметры: - Установите temperature на 0.6, чтобы уменьшить повторы и бессвязность. - Установите top_p на 0.95 (рекомендуется). - Проводите несколько тестов и усредняйте результаты для надежной оценки.
Для запуска этого квантования рекомендуется иметь не менее 64 ГБ оперативной памяти (вы получите 1 токен/с без GPU). Для оптимальной производительности вам потребуется не менее 180 ГБ объединенной памяти или 180 ГБ суммарной RAM+VRAM для получения 5+ токенов/с. Хотя технически возможно запустить модель без GPU, мы не рекомендуем этого делать, если только вы не используете чипы Apple с объединенной памятью.
Для 1.78-битного квантования: - На 1 GPU с 24 ГБ видеопамяти (с выгрузкой всех слоев) можно ожидать пропускную способность до 20 токенов/секунду и около 4 токенов/секунду для инференса одного пользователя. - Постарайтесь обеспечить комбинацию RAM + VRAM, равную размеру загружаемого квантования (например, 183 ГБ = не менее 183 ГБ суммарной VRAM+RAM или объединенной памяти). - GPU с 24 ГБ видеопамяти, например RTX 4090, должен выдавать 3 токена/секунду в зависимости от нагрузки и конфигурации.
🦙 Как запустить R1-0528-Qwen3-8B в Ollama:
- Установите ollama, если вы еще этого не сделали! Вы можете запускать только модели размером до 32 млрд параметров. Чтобы запустить полную модель R1-0528 объемом 720 ГБ, смотрите здесь.
- apt-get update apt-get install pciutils -y curl -fsSL https://ollama.com/install.sh | sh
- Запустите модель! Обратите внимание, что вы можете вызвать ollama serve в другом терминале, если возникнет ошибка! Мы включили все наши исправления и рекомендуемые параметры (температуру и т.д.) в параметры нашей загрузки на Hugging Face!
- ollama run hf.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF:Q4_K_XL
- Чтобы отключить «мышление» (thinking), используйте (или установите это в системном промпте):
- >>> Напишите ваш промпт здесь
✨ Как запустить R1-0528 в llama.cpp:
- Получите последнюю версию llama.cpp на GitHub здесь. Вы также можете следовать инструкциям по сборке ниже. Измените -DGGML_CUDA=ON на -DGGML_CUDA=OFF, если у вас нет GPU или вы хотите использовать только CPU для инференса.
- apt-get update apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y git clone https://github.com/ggml-org/llama.cpp cmake llama.cpp -B llama.cpp/build \ -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split cp llama.cpp/build/bin/llama-* llama.cpp
- Если вы хотите использовать llama.cpp напрямую для загрузки моделей, вы можете сделать следующее: (:IQ1_S) — это тип квантования. Вы также можете скачать через Hugging Face (пункт 3). Это похоже на ollama run. Используйте export LLAMA_CACHE="папка", чтобы заставить llama.cpp сохранять данные в определенное место.
- export LLAMA_CACHE="unsloth/DeepSeek-R1-0528-GGUF" ./llama.cpp/llama-cli \ -hf unsloth/DeepSeek-R1-0528-GGUF:IQ1_S \ --cache-type-k q4_0 \ --threads -1 \ --n-gpu-layers 99 \ --prio 3 \ --temp 0.6 \ --top_p 0.95 \ --min_p 0.01 \ --ctx-size 16384 \ --seed 3407 \ -ot ".ffn_.*_exps.=CPU"
- Скачайте модель через (после установки pip install huggingface_hub hf_transfer). Вы можете выбрать UD-IQ1_S (динамическое квантование 1.78 бит) или другие квантованные версии, такие как Q4_K_M. Я рекомендую использовать наше динамическое квантование 2.7 бит UD-Q2_K_XL для баланса размера и точности. # !pip install huggingface_hub hf_transfer import os os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # Иногда может ограничивать скорость, поэтому установите 0 для отключения from huggingface_hub import snapshot_download snapshot_download( repo_id = "unsloth/DeepSeek-R1-0528-GGUF", local_dir = "unsloth/DeepSeek-R1-0528-GGUF", allow_patterns = ["*UD-IQ1_S*"], # Динамический 1 бит (185 ГБ) Используйте "*UD-Q2_K_XL*" для динамического 2 бит (251 ГБ))
- Запустите тест Flappy Bird от Unsloth, как описано в нашем материале о динамическом квантовании 1.58 бит для DeepSeek R1.
- Отредактируйте --threads 32 для количества потоков CPU, --ctx-size 16384 для длины контекста, --n-gpu-layers 2 для выгрузки слоев на GPU. Попробуйте настроить это, если вашему GPU не хватает памяти. Также удалите этот параметр, если используете инференс только на CPU.
- ./llama.cpp/llama-cli \ --model unsloth/DeepSeek-R1-0528-GGUF/UD-IQ1_S/DeepSeek-R1-0528-UD-IQ1_S-00001-of-00004.gguf \ --cache-type-k q4_0 \ --threads -1 \ --n-gpu-layers 99 \ --prio 3 \ --temp 0.6 \ --top_p 0.95 \ --min_p 0.01 \ --ctx-size 16384 \ --seed 3407 \ -ot ".ffn_.*_exps.=CPU" \ -no-cnv \ --prompt "<|User|>Создай игру Flappy Bird на Python. Ты должен включить следующее:\n1. Ты должен использовать pygame.\n2. Цвет фона должен быть выбран случайно и быть светлого оттенка. Начни со светло-голубого цвета.\n3. Многократное нажатие ПРОБЕЛА будет ускорять птицу.\n4. Форма птицы должна быть выбрана случайно: квадрат, круг или треугольник. Цвет должен быть выбран случайно из темных оттенков.\n5. Размести внизу землю, окрашенную в темно-коричневый или желтый цвет, выбранный случайно.\n6. Сделай счет, отображаемый в правом верхнем углу. Увеличивай его, если проходишь через трубы и не задеваешь их.\n7. Сделай случайно расставленные трубы с достаточным пространством. Раскрась их случайно в темно-зеленый, светло-коричневый или темно-серый оттенок.\n8. Когда проиграешь, покажи лучший результат. Сделай текст внутри экрана. Нажатие q или Esc завершит игру. Перезапуск осуществляется повторным нажатием ПРОБЕЛА.\nФинальная игра должна быть внутри раздела markdown на Python. Проверь свой код на ошибки и исправь их перед финальным разделом markdown.<|Assistant|>"
- Мы также тестируем наши динамические квантования с помощью теста Heptagon, который проверяет способность модели создавать базовый физический движок для симуляции вращающихся шаров внутри движущейся замкнутой семиугольной фигуры.
./llama.cpp/llama-cli \ --model unsloth/DeepSeek-R1-0528-GGUF/UD-IQ1_S/DeepSeek-R1-0528-UD-IQ1_S-00001-of-00004.gguf \ --cache-type-k q4_0 \ --threads -1 \ --n-gpu-layers 99 \ --prio 3 \ --temp 0.6 \ --top_p 0.95 \ --min_p 0.01 \ --ctx-size 16384 \ --seed 3407 \ -ot ".ffn_.*_exps.=CPU" \ -no-cnv \ --prompt "<|User|>Напиши программу на Python, которая отображает 20 шаров, отскакивающих внутри вращающегося семиугольника:\n- Все шары имеют одинаковый радиус.\n- На каждом шаре есть номер от 1 до 20.\n- В начале все шары падают из центра семиугольника.\n- Цвета: #f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35\n- На шары должны влиять гравитация и трение, они должны реалистично отскакивать от вращающихся стен. Также должны происходить столкновения между шарами.\n- Материал всех шаров определяет, что высота их отскока при ударе не будет превышать радиус семиугольника, но будет выше радиуса шара.\n- Все шары вращаются с учетом трения, цифры на шарах могут использоваться для индикации вращения.\n- Семиугольник вращается вокруг своего центра со скоростью 360 градусов за 5 секунд.\n- Размер семиугольника должен быть достаточно большим, чтобы вместить все шары.\n- Не используй библиотеку pygame; реализуй алгоритмы обнаружения столкновений и реакцию на них самостоятельно. Разрешены следующие библиотеки Python: tkinter, math, numpy, dataclasses, typing, sys.\n- Весь код должен быть помещен в один файл Python.<|Assistant|>"
💕 Спасибо!
Спасибо за вашу постоянную поддержку. Надеемся поделиться отличными новостями в ближайшие недели! 🙏
Как всегда, обязательно присоединяйтесь к нашей странице на Reddit и серверу в Discord, чтобы получить помощь или просто выразить свою поддержку! Вы также можете следить за нами в Twitter и подписаться на нашу рассылку.
Спасибо за прочтение!
Дэниел и Майкл Хан 🦥 29 мая 2025 г.