🧠 Ключевая идея
Дистилляция знаний (knowledge distillation) — сжатие огромной модели-учителя (DeepSeek‑R1, 671B MoE) в компактные плотные (dense) модели размером 1.5B–70B, сохраняющие способность к глубоким рассуждениям.
Что такое дистиллированные версии DeepSeek
Флагманская DeepSeek‑R1 — это архитектура Mixture‑of‑Experts (MoE) с 671 млрд параметров (активных 37B на токен). Её прямой запуск требует промышленных кластеров. Для локального использования команда DeepSeek сгенерировала 800 000 примеров с цепочками рассуждений (Chain‑of‑Thought) и дообучила на них открытые модели Qwen2.5 и Llama‑3. Так появились дистиллированные (distill) версии — компактные, но мощные модели, работающие на обычном оборудовании.
✅ Преимущества
- Работа на одном GPU (даже 24 ГБ)
- Полная приватность (офлайн)
- MIT лицензия (коммерческое использование)
- Скорость до 150 токенов/с на Mac
📦 Архитектуры
- Qwen‑линейка: 1.5B, 7B, 14B, 32B
- Llama‑линейка: 8B, 70B
⚙️ Совместимость
Ollama, vLLM, llama.cpp, Transformers, любые OpenAI‑совместимые клиенты.
Зачем использовать дистилляты вместо полной модели
- Ресурсы: полная R1 требует сотни гигабайт VRAM и NVLink. Distill 32B помещается в 24 ГБ с 4‑битной квантизацией.
- Скорость: плотные модели генерируют токены в 3–5 раз быстрее на том же GPU.
- Контроль: вы можете дообучать модель под свои данные с помощью LoRA на обычной видеокарте.
- Экономия: отсутствие платы за DeepSeek API, нет лимитов на запросы.
📈 Качество не страдает
Дистиллированная DeepSeek‑R1‑Distill‑Qwen‑32B превосходит OpenAI o1‑mini в математических бенчмарках (AIME 2024: 72.6%). Для большинства инженерных задач этого более чем достаточно.
Полный каталог дистиллированных версий
| Модель (Hugging Face ID) | База | Параметры | Лицензия | VRAM (FP16) |
|---|---|---|---|---|
DeepSeek-R1-Distill-Qwen-1.5B | Qwen2.5‑Math‑1.5B | 1.5B | Apache 2.0 | ~3.5 GB |
DeepSeek-R1-Distill-Qwen-7B | Qwen2.5‑Math‑7B | 7B | Apache 2.0 | ~14 GB |
DeepSeek-R1-Distill-Llama-8B | Llama‑3.1‑8B | 8B | MIT+Llama3 | ~16 GB |
DeepSeek-R1-Distill-Qwen-14B | Qwen2.5‑14B | 14B | Apache 2.0 | ~28 GB |
DeepSeek-R1-Distill-Qwen-32B | Qwen2.5‑32B | 32B | Apache 2.0 | ~64 GB |
DeepSeek-R1-Distill-Llama-70B | Llama‑3.3‑70B | 70B | MIT+Llama3 | ~140 GB |
Выбор между Qwen и Llama: Qwen‑линейка оптимизирована под математику и логику (основа — Qwen2.5‑Math). Llama‑версии лучше справляются с общими знаниями и следованием инструкциям.
Оценка реальных требований к оборудованию
Приведённые выше значения VRAM — для полной точности FP16. На практике применяется квантизация, радикально снижающая потребление памяти.
| Модель | FP16 | 8‑бит (INT8) | 4‑бит (Q4_K_M) |
|---|---|---|---|
| 1.5B | 3.5 GB | 2 GB | 1.2 GB |
| 7B / 8B | 14–16 GB | 8 GB | 4.5–5 GB |
| 14B | 28 GB | 16 GB | 9 GB |
| 32B | 64 GB | 36 GB | 20 GB |
| 70B | 140 GB | 80 GB | 40 GB |
💻 Рекомендации по сборке
- 14B модель (Q4): RTX 4080 (16 ГБ) или 3090 (24 ГБ) — скорость 30–50 токенов/с.
- 32B модель (Q4): RTX 3090/4090 (24 ГБ) — 20–40 токенов/с.
- 70B модель (Q3/Q4): 2x RTX 3090 или A100 40GB.
Сравнение методов локального развёртывания
| Метод | Сложность | Производительность | Лучшее применение |
|---|---|---|---|
| Ollama | Низкая | Средняя / Высокая (GPU) | Быстрый старт, интеграция с IDE, персональное использование. |
| vLLM | Средняя | Очень высокая | Продакшен‑серверы, высокая нагрузка, batch‑обработка. |
| llama.cpp | Средняя / Высокая | Высокая (CPU/Metal) | Работа без GPU, Mac, Raspberry Pi, максимальный контроль. |
Установка через Ollama (рекомендуемый способ для разработчика)
- Установите Ollama с ollama.com (Windows, macOS, Linux).
- Загрузите модель:
ollama run deepseek-r1:14b(автоматически загрузит квантизованную Q4_K_M версию).
FROM deepseek-r1:14b
PARAMETER temperature 0.6
PARAMETER num_ctx 8192
# Затем выполнить: ollama create my-deepseek -f Modelfile
REST API доступен на http://localhost:11434. Пример curl:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:14b",
"prompt": "Explain distillation in LLMs.",
"stream": false
}'
Высокопроизводительный сервер с vLLM
vLLM поддерживает PagedAttention и continuous batching. Для 32B модели с 4‑битной квантизацией:
pip install vllm
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
--quantization fp4 \
--max-model-len 8192 \
--gpu-memory-utilization 0.95
Сервер поднимается на порту 8000 и совместим с OpenAI API.
⚠️ Для 70B на нескольких GPU
Добавьте --tensor-parallel-size 2 (или больше) и используйте карты с NVLink/PCIe.
llama.cpp — максимальная эффективность на CPU и Apple Silicon
Работает с моделями в формате GGUF. Скачайте GGUF с Hugging Face (например, от AmpereComputing или Roobbert).
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make -j # для CUDA: make LLAMA_CUDA=1
./llama-cli -m deepseek-r1-distill-qwen-32b.Q4_K_M.gguf -p "Hello" -n 512 -t 16 -ngl 0
На MacBook Pro M2 Max скорость с Metal достигает 120–150 токенов/с для 14B модели (Q4).
Гайд по квантизации: GGUF, FP4, GPTQ
GGUF (llama.cpp / Ollama)
| Тип | Размер (от FP16) | Качество | Рекомендация |
|---|---|---|---|
| Q4_K_M | ~45% | Оптимальное | Баланс для большинства задач |
| Q5_K_M | ~55% | Хорошее | Код, математика |
| Q8_0 | ~85% | Почти как FP16 | Когда много VRAM |
FP4 в vLLM (для GPU Blackwell+)
Снижает потребление памяти на 75% с минимальной потерей точности. Включается флагом --quantization fp4.
AWQ / GPTQ
Альтернативные форматы для ExLlamaV2 и AutoGPTQ. AWQ часто точнее GPTQ при том же битрейте.
Продвинутая настройка производительности
- temperature: 0.1–0.3 для точных задач, 0.7–1.0 для творческих.
- max_tokens: ограничьте, чтобы избежать зацикливания в рассуждениях.
- num_ctx: дистилляты обучены на 4096, но стабильно работают до 8192 (при достаточной VRAM).
vllm serve ... \
--max-num-batched-tokens 8192 \
--enable-prefix-caching \
--gpu-memory-utilization 0.98
Тонкая настройка (Fine‑Tuning) дистиллированных моделей
Дистилляты можно дообучать с помощью LoRA/QLoRA на одной видеокарте. Рекомендуемый инструмент — Unsloth.
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
max_seq_length = 2048,
load_in_4bit = True,
)
model = FastLanguageModel.get_peft_model(model, r=16, target_modules=["q_proj","k_proj","v_proj","o_proj"])
# Далее стандартный цикл обучения с Hugging Face Trainer
Для полного дообучения 70B потребуется несколько A100/H100, но LoRA позволяет адаптировать даже 32B модель на 24 ГБ.
Сравнение производительности на практике
Тесты на RTX 4090 (24 ГБ) с 4‑битной квантизацией (Q4_K_M):
| Модель | Скорость (токенов/с) | Примечание |
|---|---|---|
| DeepSeek‑R1‑Distill‑Qwen‑32B (Q4) | 31–36 | Глубокие цепочки рассуждений |
| QwQ‑32B (Q4) | 38–44 | Быстрее, но менее детальные рассуждения |
| DeepSeek‑R1‑Distill‑Llama‑70B (Q3_K_M) | 12–18 (на 2x3090) | Требует две карты |
На MacBook Pro M2 Max 14B модель (Q4) выдаёт 120–150 токенов/с через llama.cpp с Metal.
Заключение: оптимальный путь для инженера
- Выбор модели: начните с
deepseek-r1:14b(Q4) для GPU 16+ ГБ или7bдля 8–12 ГБ. - Фреймворк: для разработки — Ollama, для продакшена — vLLM, для CPU/Apple — llama.cpp.
- Квантизация: используйте Q4_K_M как баланс качества и скорости.
- Дообучение: при необходимости кастомизируйте модель с Unsloth + LoRA.