> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/deepseek-r1.md).

# Модель рассуждений DeepSeek-R1

{% hint style="success" %}
Все примеры запускаются на GPU-серверах, арендованных через [CLORE.AI Marketplace](https://clore.ai/marketplace). Инстансы RTX 4090 начинаются от \~$0.50/день.
{% endhint %}

## Обзор

DeepSeek-R1 — это модель рассуждений с открытыми весами и 671B параметрами, выпущенная в январе 2025 года компанией DeepSeek под **лицензией Apache 2.0** . Это первая открытая модель, которая сопоставима с OpenAI o1 по математике, программированию и научным бенчмаркам — при этом раскрывая всю свою цепочку рассуждений через явные `<think>` теги.

Полная модель использует **Mixture-of-Experts (MoE)** с 37B активных параметров на токен, что делает инференс выполнимым несмотря на впечатляющее общее число параметров. Для большинства практиков **дистиллированные варианты** (1.5B → 70B) более практичны: они наследуют паттерны рассуждения R1 через дистилляцию знаний в базовые архитектуры Qwen-2.5 и Llama-3 и работают на массовых GPU.

## Ключевые особенности

* **Явная цепочка рассуждений** — каждый ответ начинается с `<think>` блока, в котором модель рассуждает, возвращается назад и самокорректируется перед выдачей финального ответа
* **Обучена с помощью обучения с подкреплением** — способность к рассуждению возникает из сигналов вознаграждения RL, а не из вручную созданных данных цепочки рассуждений
* **Шесть дистиллированных вариантов** — модели с 1.5B, 7B, 8B, 14B, 32B, 70B параметров, дистиллированные из полной 671B-версии в архитектуры Qwen и Llama
* **Лицензия Apache 2.0** — полностью коммерческое использование, без роялти и без ограничений на применение
* **Широкая поддержка фреймворков** — Ollama, vLLM, llama.cpp, SGLang, Transformers, TGI работают сразу из коробки
* **AIME 2024 Pass\@1: 79.8%** — наравне с OpenAI o1 в конкурсной математике
* **Codeforces 2029 Elo** — превосходит 1891 у o1 в соревновательном программировании

## Варианты моделей

| Версия                   | Параметры           | Архитектура  | VRAM FP16 | VRAM для Q4 | Диск Q4  |
| ------------------------ | ------------------- | ------------ | --------- | ----------- | -------- |
| DeepSeek-R1 (полный MoE) | 671B (37B активных) | DeepSeek MoE | \~1.3 ТБ  | \~350 ГБ    | \~340 ГБ |
| R1-Distill-Llama-70B     | 70B                 | Llama 3      | 140 ГБ    | 40 ГБ       | 42 ГБ    |
| R1-Distill-Qwen-32B      | 32B                 | Qwen 2.5     | 64 ГБ     | 22 ГБ       | 20 ГБ    |
| R1-Distill-Qwen-14B      | 14B                 | Qwen 2.5     | 28 ГБ     | 10 ГБ       | 9 ГБ     |
| R1-Distill-Llama-8B      | 8B                  | Llama 3      | 16 ГБ     | 6 ГБ        | 5.5 ГБ   |
| R1-Distill-Qwen-7B       | 7B                  | Qwen 2.5     | 14 ГБ     | 5 ГБ        | 4.5 ГБ   |
| R1-Distill-Qwen-1.5B     | 1.5B                | Qwen 2.5     | 3 ГБ      | 2 ГБ        | 1.2 ГБ   |

### Выбор варианта

| Сценарий использования                         | Рекомендуемый вариант  | GPU на Clore                                                                                                                 |
| ---------------------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Быстрые эксперименты, edge-тестирование        | R1-Distill-Qwen-1.5B   | Любой GPU                                                                                                                    |
| Бюджетное развёртывание, быстрый инференс      | R1-Distill-Qwen-7B     | RTX 3090 (\~$0.30–1/день)                                                                                                    |
| Оптимум для продакшена на одной GPU            | R1-Distill-Qwen-14B Q4 | [RTX 4090](https://clore.ai/rent-4090.html?utm_source=docs\&utm_medium=guide\&utm_campaign=deepseek-r1) (\~$0.50–2/день)     |
| Лучшее качество за свои деньги (рекомендуется) | R1-Distill-Qwen-32B Q4 | [RTX 4090 24 ГБ](https://clore.ai/rent-4090.html?utm_source=docs\&utm_medium=guide\&utm_campaign=deepseek-r1) или A100 40 ГБ |
| Максимальное качество дистиллята               | R1-Distill-Llama-70B   | 2× A100 80 ГБ                                                                                                                |
| Исследования, полноточное рассуждение          | DeepSeek-R1 671B       | кластер 8× H100                                                                                                              |

### Репозитории HuggingFace

| Версия              | Репозиторий                                                                                                   |
| ------------------- | ------------------------------------------------------------------------------------------------------------- |
| Полный R1           | [deepseek-ai/DeepSeek-R1](https://huggingface.co/deepseek-ai/DeepSeek-R1)                                     |
| дистиллят Llama-70B | [deepseek-ai/DeepSeek-R1-Distill-Llama-70B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-70B) |
| дистиллят Qwen-32B  | [deepseek-ai/DeepSeek-R1-Distill-Qwen-32B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B)   |
| дистиллят Qwen-14B  | [deepseek-ai/DeepSeek-R1-Distill-Qwen-14B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B)   |
| дистиллят Llama-8B  | [deepseek-ai/DeepSeek-R1-Distill-Llama-8B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B)   |
| дистиллят Qwen-7B   | [deepseek-ai/DeepSeek-R1-Distill-Qwen-7B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B)     |
| дистиллят Qwen-1.5B | [deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B) |

## Требования

| Компонент     | Минимум (7B Q4) | Рекомендуется (32B Q4) |
| ------------- | --------------- | ---------------------- |
| VRAM GPU      | 6 ГБ            | 24 ГБ                  |
| Системная RAM | 16 ГБ           | 32 ГБ                  |
| Диск          | 10 ГБ           | 30 ГБ                  |
| CUDA          | 12.1+           | 12.4+                  |
| Docker        | 24.0+           | 25.0+                  |

## Быстрый старт с Ollama

Ollama автоматически обрабатывает квантизацию, загрузку и обслуживание — самый быстрый путь к запущенному DeepSeek-R1.

### Установить и запустить

```bash
# Установите Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Скачайте и запустите (выберите свой вариант):
ollama run deepseek-r1:1.5b    # Edge / тестирование
ollama run deepseek-r1:7b      # Бюджетно — подходит для любой GPU с 8 ГБ+
ollama run deepseek-r1:14b     # Оптимум для RTX 4090
ollama run deepseek-r1:32b     # A100 / 2× RTX 4090
ollama run deepseek-r1:70b     # 2× A100 80 ГБ
```

### Пример интерактивной сессии

```
>>> Докажите, что √2 иррационально.

<think>
Я использую доказательство от противного.
Предположим, что √2 рационально, то есть √2 = p/q, где p и q — целые числа с gcd(p,q) = 1.
Тогда 2 = p²/q², откуда следует p² = 2q².
Это означает, что p² чётно, значит p тоже чётно. Запишем p = 2k.
Подставляем: (2k)² = 2q² → 4k² = 2q² → q² = 2k².
Значит, q² тоже чётно, то есть q чётно.
Но если p и q оба чётные, то gcd(p,q) ≥ 2, что противоречит нашему предположению.
</think>

**Доказательство того, что √2 иррационально (от противного):**

Предположим, что √2 = p/q в несократимом виде (gcd(p,q) = 1). Возводя в квадрат, получаем p² = 2q².
Так как p² чётно, p чётно — запишем p = 2k. Тогда 4k² = 2q², значит q² = 2k²,
то есть q тоже чётно. Это противоречит gcd(p,q) = 1. ∎
```

### Используйте API, совместимый с OpenAI

```bash
# Запустите Ollama как сервер (если он ещё не запущен)
ollama serve &

# Запрос через curl
curl -s http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1:32b",
    "messages": [{"role": "user", "content": "Разложите x^4 - 1 полностью над целыми числами."}],
    "temperature": 0.6
  }' | python3 -m json.tool
```

### Python-клиент (через OpenAI SDK)

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

response = client.chat.completions.create(
    model="deepseek-r1:32b",
    messages=[
        {"role": "user", "content": "Напишите функцию Python для поиска самой длинной палиндромной подстроки."}
    ],
    temperature=0.6,
    max_tokens=4096,
)
print(response.choices[0].message.content)
```

## Настройка vLLM для продакшена

vLLM обеспечивает максимальную пропускную способность при обслуживании нескольких пользователей благодаря непрерывному батчингу, PagedAttention и кэшированию префиксов.

### Одна GPU — 7B / 14B

```bash
pip install vllm

# 7B на любой GPU с 16 ГБ+
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
    --host 0.0.0.0 --port 8000 \
    --max-model-len 16384

# 14B на RTX 4090 (24 ГБ)
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-14B \
    --host 0.0.0.0 --port 8000 \
    --max-model-len 16384 \
    --gpu-memory-utilization 0.92
```

### Несколько GPU — 32B (рекомендуется)

```bash
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
    --host 0.0.0.0 --port 8000 \
    --tensor-parallel-size 2 \
    --max-model-len 32768 \
    --gpu-memory-utilization 0.90 \
    --enable-prefix-caching
```

> **Совет:** Чекпойнт 32B Q4 GPTQ или AWQ помещается на одной RTX 4090 (24 ГБ):
>
> ```bash
> vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
>     --quantization awq --host 0.0.0.0 --port 8000 \
>     --max-model-len 16384
> ```

### Несколько GPU — 70B

```bash
vllm serve deepseek-ai/DeepSeek-R1-Distill-Llama-70B \
    --host 0.0.0.0 --port 8000 \
    --tensor-parallel-size 4 \
    --max-model-len 32768 \
    --gpu-memory-utilization 0.90
```

### Сделайте запрос к endpoint vLLM

```bash
curl -s http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
    "messages": [{"role": "user", "content": "Решите: найдите все простые p такие, что p^2 + 2 тоже простое."}],
    "temperature": 0.6,
    "max_tokens": 4096
  }'
```

## Transformers / Python (с `<think>` разбором тегов)

Используйте HuggingFace Transformers, когда нужен тонкий контроль над генерацией или когда вы хотите встроить R1 в Python-пайплайн.

### Базовая генерация

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch, re

MODEL = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"

tokenizer = AutoTokenizer.from_pretrained(MODEL, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    MODEL,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

prompt = "Чему равна сумма первых 100 положительных целых чисел?"
messages = [{"role": "user", "content": prompt}]
input_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(input_text, return_tensors="pt").to(model.device)

with torch.no_grad():
    output = model.generate(
        **inputs,
        max_new_tokens=2048,
        temperature=0.6,
        do_sample=True,
    )

full_response = tokenizer.decode(output[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
print(full_response)
```

### Парсинг `<think>` тегов

```python
def parse_r1_response(text: str) -> dict:
    """Разбить ответ DeepSeek-R1 на части рассуждения и ответа."""
    think_match = re.search(r"<think>(.*?)</think>", text, re.DOTALL)
    thinking = think_match.group(1).strip() if think_match else ""
    answer = re.sub(r"<think>.*?</think>", "", text, flags=re.DOTALL).strip()
    return {
        "thinking": thinking,
        "answer": answer,
        "thinking_tokens": len(thinking.split()),
    }

result = parse_r1_response(full_response)
print(f"Модель рассуждала {result['thinking_tokens']} слов")
print(f"Ответ: {result['answer']}")
```

### Потоковая передача с `<think>` отслеживанием состояния

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="unused")

stream = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
    messages=[{"role": "user", "content": "Выведите квадратную формулу из ax² + bx + c = 0."}],
    stream=True,
    max_tokens=4096,
    temperature=0.6,
)

in_think = False
for chunk in stream:
    token = chunk.choices[0].delta.content or ""
    if "<think>" in token:
        in_think = True
        print("[Рассуждение] ", end="", flush=True)
        continue
    if "</think>" in token:
        in_think = False
        print("\n[Ответ] ", end="", flush=True)
        continue
    if not in_think:
        print(token, end="", flush=True)
print()
```

## Развёртывание Docker на Clore.ai

### Docker Ollama (самый простой)

**Docker-образ:** `ollama/ollama` **Порты:** `22/tcp, 11434/http`

```bash
# На инстансе Clore
docker run -d --gpus all \
    -v ollama_data:/root/.ollama \
    -p 11434:11434 \
    --name deepseek-r1 \
    ollama/ollama

# Скачайте и обслуживайте модель
docker exec deepseek-r1 ollama pull deepseek-r1:32b
```

### Docker vLLM (продакшен)

**Docker-образ:** `vllm/vllm-openai:latest` **Порты:** `22/tcp, 8000/http`

```yaml
# docker-compose.yml
version: "3.8"
services:
  deepseek-r1:
    image: vllm/vllm-openai:latest
    ports:
      - "8000:8000"
    volumes:
      - hf_cache:/root/.cache/huggingface
    environment:
      - HUGGING_FACE_HUB_TOKEN=${HF_TOKEN:-}
    command: >
      --model deepseek-ai/DeepSeek-R1-Distill-Qwen-32B
      --host 0.0.0.0 --port 8000
      --tensor-parallel-size 2
      --max-model-len 32768
      --gpu-memory-utilization 0.90
      --enable-prefix-caching
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 300s
volumes:
  hf_cache:
```

Развёртывание на Clore.ai:

1. Откройте [clore.ai/marketplace](https://clore.ai/marketplace)
2. Отфильтруйте по **2× GPU, всего 48 ГБ+ VRAM** (например, 2× RTX 4090 или A100 80 ГБ)
3. Установите Docker-образ `vllm/vllm-openai:latest`
4. Сопоставьте порт **8000** как HTTP
5. Вставьте команду из compose-файла выше в команду запуска
6. Подключитесь через HTTP endpoint после прохождения health check

## Советы по развёртыванию на Clore.ai

### Выбор подходящей GPU

| Бюджет           | GPU              | Стоимость в день | Лучший вариант                      |
| ---------------- | ---------------- | ---------------- | ----------------------------------- |
| Минимум          | RTX 3090 (24 ГБ) | $0.30 – 1.00     | R1-Distill-Qwen-7B или 14B Q4       |
| Стандарт         | RTX 4090 (24 ГБ) | $0.50 – 2.00     | R1-Distill-Qwen-14B FP16 или 32B Q4 |
| Продакшен        | A100 80 ГБ       | $3 – 8           | R1-Distill-Qwen-32B FP16            |
| Высокое качество | 2× A100 80 ГБ    | $6 – 16          | R1-Distill-Llama-70B FP16           |

### Настройка производительности

* **Температура 0.6** — рекомендуемое значение по умолчанию для задач рассуждения; в собственных статьях DeepSeek используется именно оно
* **Установите `max_tokens` с запасом** — модели рассуждения выдают длинные `<think>` блоки; 4096+ для нетривиальных задач
* **Включите кэширование префикса** (`--enable-prefix-caching` в vLLM) при использовании общего системного промпта
* **Ограничьте параллелизм** (`--max-num-seqs 16`) для рабочих нагрузок с рассуждением — каждый запрос потребляет больше вычислений, чем обычный чат
* **Используйте квантизацию Q4** чтобы уместить 32B на одной GPU с 24 ГБ при минимальной потере качества (дистилляция уже сжала знания R1)

### Вопросы длины контекста

Модели рассуждения потребляют больше контекста, чем стандартные чат-модели, из-за `<think>` блока:

| Сложность задачи                      | Типичная длина рассуждения | Общий необходимый контекст |
| ------------------------------------- | -------------------------- | -------------------------- |
| Простая арифметика                    | \~100 токенов              | \~300 токенов              |
| Генерация кода                        | \~500–1000 токенов         | \~2000 токенов             |
| Конкурсная математика (AIME)          | \~2000–4000 токенов        | \~5000 токенов             |
| Многошаговый исследовательский анализ | \~4000–8000 токенов        | \~10000 токенов            |

## Устранение неполадок

### Не хватает памяти (OOM)

```bash
# Уменьшите длину контекста
--max-model-len 8192    # вместо 32768

# Ограничьте количество одновременных последовательностей
--max-num-seqs 8

# Используйте квантизацию
--quantization awq      # или gptq
```

### Модель не выдаёт `<think>` блок

Некоторые системные промпты подавляют рассуждение. Избегайте инструкций вроде «будьте кратки» или «не объясняйте ход рассуждений». Используйте минимальный системный промпт или вообще без него:

```python
# Хорошо — сохраняет рассуждение
messages = [{"role": "user", "content": "..."}]

# Плохо — может подавить рассуждение
messages = [
    {"role": "system", "content": "Будьте предельно кратки. Без объяснений."},
    {"role": "user", "content": "..."}
]
```

### Повторяющийся или зацикленный `<think>` вывод

Уменьшите температуру, чтобы снизить случайность в цепочке рассуждений:

```python
temperature = 0.0   # Детерминированно — лучше всего для математики/кода
temperature = 0.3   # Небольшая вариативность — хорошо для анализа
```

### Медленный первый токен (высокий TTFT)

Это ожидаемо — модель генерирует `<think>` токены до видимого ответа. Для приложений, чувствительных к задержке, где рассуждение не требуется, используйте [DeepSeek-V3](/guides/guides_v2-ru/yazykovye-modeli/deepseek-v3.md) вместо этого.

### Загрузка зависает на инстансе Clore

Загрузки HuggingFace на некоторых провайдерах могут быть медленными. Предварительно кэшируйте модель в постоянный том:

```bash
# Один раз загрузите в том
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
    --local-dir /data/models/deepseek-r1-32b

# Укажите vLLM локальный путь
vllm serve /data/models/deepseek-r1-32b --host 0.0.0.0 --port 8000
```

## Дополнительные материалы

* [Статья DeepSeek-R1](https://arxiv.org/abs/2501.12948) — *Стимулирование способности к рассуждению в LLM с помощью обучения с подкреплением*
* [GitHub DeepSeek-R1](https://github.com/deepseek-ai/DeepSeek-R1) — Официальный репозиторий с карточками модели
* [Руководство по DeepSeek-V3](/guides/guides_v2-ru/yazykovye-modeli/deepseek-v3.md) — Универсальная модель без рассуждений от той же лаборатории
* [Руководство по vLLM](/guides/guides_v2-ru/yazykovye-modeli/vllm.md) — Полная настройка продакшен-обслуживания
* [Руководство по Ollama](/guides/guides_v2-ru/yazykovye-modeli/ollama.md) — Простое локальное развёртывание для любой модели
* [Руководство по Open WebUI](/guides/guides_v2-ru/yazykovye-modeli/open-webui.md) — Чат-интерфейс с нативным `<think>` рендерингом тегов
* [Руководство по Qwen 2.5](/guides/guides_v2-ru/yazykovye-modeli/qwen25.md) — Базовая архитектура, используемая большинством дистиллятов R1


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/deepseek-r1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
