Как развернуть deepseek-v3.1 локально через ollama: руководство The Eastest

CometAPI
AnnaDec 2, 2025
Как развернуть deepseek-v3.1 локально через ollama: руководство The Eastest

DeepSeek-V3.1 — это гибридная языковая модель MoE «думающая/недумающая» (671 байт всего, ≈37 байт активировано на токен), которая может быть запущена локально при использовании подходящего провайдера/квантизации и инструментария. Ниже я расскажу о DeepSeek-V3.1, требованиях к оборудованию и программному обеспечению, пошаговых руководствах по локальному запуску (примеры Ollama + llama.cpp) и о том, как развернуть и использовать режим мышления ( <think>/</think> шаблон чата) с примерами кода, которые можно скопировать/вставить.


Что такое DeepSeek-V3.1?

DeepSeek-V3.1 — это версия 3.1 семейства MoE (Mixture-of-Experts) DeepSeek. Она была разработана как гибридная модель вывода, поддерживающая два диалоговых шаблона/режима: мышление и Не-думающий — из той же контрольной точки, изменив шаблон чата. Архитектура модели соответствует архитектуре DeepSeek-V3 MoE (671 млрд параметров; ≈37 млрд параметров, активируемых на токен для вывода) и добавляет улучшения после обучения для использования инструментов, навыков агента и обработки длинного контекста.

Краткий обзор особенностей

  • Гибридный Мышление / Не-мышление режимы (переключаются токенизацией шаблона чата).
  • Архитектура MoE: большое общее количество параметров, но ограниченное количество активированных параметров на токен (обеспечивает эффективность).
  • Посттренировочные улучшения для вызовов инструментов и рабочих процессов агентов (формат вызовов инструментов и шаблоны агентов задокументированы в активах модели).

Что нужно для локального запуска DeepSeek-V3.1?

Запуск полный DeepSeek-V3.1 (исходные контрольные точки) — это тяжеловесный набор данных — хранение данных для обучения/контрольных точек и организация вывода — нетривиальные задачи. Но есть и практические решения:

Аппаратные средства

  • Полный распределенный вывод (исследование/кластер): несколько графических процессоров с большим объёмом памяти (класса A100/H800) или кластер графических процессоров с параллельной обработкой данных (типично для контрольных точек 600+ байт). Используйте только при запуске исследовательских кластеров для производственных задач.
  • Практические местные варианты: использовать активированный-параметр перспектива (активировано ≈37 байт) или квантованная сборка GGUF/1-битная динамическая сборка. Квантования, предлагаемые сообществом (1-битная динамическая сборка/GGUF), значительно снижают требования к дисковому пространству и оперативной памяти — например, в сообщениях сообщества сообщается о сжатии контрольной точки объёмом 720 ГБ до ~170 ГБ GGUF для квантованного варианта. Это делает локальный односерверный вывод на основе GPU осуществимым для настольных компьютеров/серверов с хорошими ресурсами.

Итог: ожидайте рабочего процесса с большой моделью (от десятков до нескольких сотен ГБ дискового пространства для квантованных артефактов); для видеопамяти графического процессора используйте квантованные варианты и целевые значения видеопамяти ≥24–48 ГБ для разумной пропускной способности; в противном случае используйте ЦП+подкачку с компромиссами по производительности.

Программное обеспечение и инструменты

Python 3.10+ (для инструментов преобразователя/токенизатора и пользовательских скриптов).

transformers (для токенизатора и вспомогательных функций) — на карточке модели показаны примеры использования transformers.AutoTokenizer.

Одна или несколько локальных сред выполнения вывода:

  • Оллама (легкий: ollama pull / ollama run интеграция; некоторые сборки DeepSeek на Ollama требуют предварительных версий, см. примечание model/ollama). Ollama стала стандартным локальным исполнителем для моделей сообщества.
  • llama.cpp / ggml стеки или llama-server для квантованных файлов GGUF — отлично подходит для прямого выполнения GGUF.
  • генерация-вывод текста / Triton / стеки FlashAttention для более производительного вывода графического процессора (расширенные настройки).

Диск: большое свободное место для файлов модели (десятки → сотни ГБ в зависимости от квантования).

Артефакты модели (какой файл получить)

  • Официальные варианты Safetensors / BF16 / FP8 / GGUF: Hugging Face содержит артефакты модели V3.1 и множественные квантизации. Если вам нужен файл GGUF/квантованной модели для llama.cpp, найдите релиз квантования сообщества (или скрипт преобразования от safetensors → GGUF) — в карточке модели перечислены квантованные варианты.

Как подготовить модель для локального вывода?

Ниже приведены рекомендуемые этапы подготовки, расположенные от простого к сложному.

Шаг 1 — Выбор среды выполнения (рекомендация)

  • Тест для начинающих/быстрый: Ollama — минимальная настройка: загрузка, запуск модели, вызов API. Примечание: в некоторых сборках DeepSeek-V3.1 указано, что Ollama v0.11.7 требуется для определённых функций.
  • Расширенное/низкоуровневое управление: llama.cpp + GGUF-квантование (если доступно GGUF-квантование). Это обеспечивает прямое управление выводом и интеграцию с llama-server.

Шаг 2 — Загрузите модель

Если вы используете Олламу:

# install ollama (see https://ollama.com/docs)

# Pull the model (this downloads the model to your machine)
ollama pull deepseek-ai/DeepSeek-V3.1
# or a specific tag: ollama pull deepseek-ai/DeepSeek-V3.1:quant-q4_0

(Оллама run автоматически вытащит, если его нет; pull позволяет вам контролировать время.)

Если вы используете Hugging Face + llama.cpp:

# Example: download via huggingface-cli or hf_transfer

pip install huggingface_hub
hf_hub_download(repo_id="deepseek-ai/DeepSeek-V3.1", filename="DeepSeek-V3.1.gguf")
# or use a community quant file (gguf) referenced on the Hugging Face model page

Hugging Face перечисляет артефакты модели, шаблоны и квантизации на карточке модели.

Шаг 3 — Преобразование/квантизация (необязательно)

Если вы нашли только сейфтензоры или артефакты BF16, но вам нужен GGUF для llama.cpp, используйте скрипты конвертации в llama.cpp (или инструменты сообщества) для преобразования → квантования. Существуют инструменты сообщества для 1-битного динамического квантования, сохраняющие точность при уменьшении размера; см. сообщения сообщества, в которых сообщается о снижении размера примерно до 170 ГБ.


Как на самом деле запустить DeepSeek-V3.1 локально? (Практические руководства по запуску)

Я покажу Оллама (легко, рекомендуется) и лама.cpp Примеры (GGUF) плюс короткий пример Python с использованием вспомогательных функций токенизатора модели и карты.

A — Бег с Олламой (быстрый старт)

  1. Установите Ollama (следуйте официальным инструкциям).
  2. Извлеките и запустите модель:
# pull model to disk (optional; run will pull automatically)

ollama pull deepseek-ai/DeepSeek-V3.1

# start an interactive session (runs model and exposes local API)

ollama run deepseek-ai/DeepSeek-V3.1
  1. Сделайте HTTP-запрос на локальный сервер Ollama:
# curl usage example (local Ollama server usually listens on port 11434)

curl -sS -X POST 'http://localhost:11434/api/generate' \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"deepseek-ai/DeepSeek-V3.1",
    "prompt":"Explain the difference between thinking and non-thinking mode in DeepSeek.",
    "max_tokens":256
  }'

Шаблоны CLI и API Ollama разработаны так, чтобы быть простыми: ollama run При необходимости будет загружен и запущен сервер моделей. Подсказки по памяти и точные названия/теги моделей см. в документации Ollama и на страницах моделей.

B — Запуск квантованного GGUF через llama.cpp

  1. Построить llama.cpp с CUDA (опционально) или CPU:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# for CUDA:

make clean && make LLAMA_CUBLAS=1
# or CPU only:

make
  1. Поместите файл модели GGUF в путь и запустите:
./main -m /path/to/DeepSeek-V3.1.q4_K_M.gguf \
  -p "Explain how to enable thinking mode." \
  --temp 0.2 --n_predict 512
  1. Для использования на сервере, llama-server (проект сообщества) может предоставить конечную точку HTTP:
llama-server -m /path/to/DeepSeek-V3.1.q4_K_M.gguf
# then POST to the server like:

curl -X POST "http://localhost:8080/api/v1/generate" -d '{"prompt":"Hello","max_tokens":200}'

Используйте квантования GGUF сообщества (динамические q4/q8/1 бит), чтобы вписаться в бюджеты графического процессора/центрального процессора; llama.cpp репозиторий предоставляет инструменты и рекомендации по конвертации.

C — Пример Python с использованием токенизатора + шаблона чата

Модель «Обнимающее лицо» предоставляет tokenizer.apply_chat_template помощник и показывает, как кодировать разговор с thinking=True. Вот минимальный пример Python, адаптированный из карточки модели:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")

messages = [
    {"role": "system", "content": "You are a helpful assistant"},
    {"role": "user", "content": "Who are you?"},
    {"role": "assistant", "content": "<think>Hmm</think>I am DeepSeek"},
    {"role": "user", "content": "1+1=?"}
]

# apply thinking chat template

s = tokenizer.apply_chat_template(messages, tokenize=False, thinking=True, add_generation_prompt=True)
print(s)  # the template includes the special <think> token placement

Затем вы можете передать токенизированную подсказку в среду выполнения вывода (Ollama/llama.cpp/TGI) в зависимости от вашего стека.


Как работает Thinking Mode и как его развернуть локально?

DeepSeek-V3.1 использует шаблоны чата которые содержат специальный токен мышления (например, <think> и </think>). шаблон определяет, находится ли модель в режиме мышления или немышления:

  • Не-думающий шаблонные места </think> в префиксе помощника, который инструктирует модель выдавать прямые ответы (формат вызова инструмента поддерживается в режиме отсутствия мышления).
  • мышление шаблонные места <think> в префиксе помощника, который заставляет модель выдавать промежуточные сигналы в стиле внутренней цепочки мыслей (модель обучена использовать эту последовательность токенов для внутреннего рассуждения и получения более качественных многошаговых ответов). Карточка модели «Обнимающее лицо» документирует эти точные токены и tokenizer.apply_chat_template(..., thinking=True) API.

Программное переключение (примеры)

А — С токенизатором (Python):

# thinking=True or thinking=False changes how the prompt is formatted

prompt_thinking = tokenizer.apply_chat_template(messages, thinking=True, add_generation_prompt=True)
prompt_non_thinking = tokenizer.apply_chat_template(messages, thinking=False, add_generation_prompt=True)

Лента prompt_thinking в среду выполнения вывода, чтобы получить поведение Мышления.

B — С необработанным приглашением (llama.cpp / руководство):

Вставить <think> до того, как помощник включится, когда вы подскажете:

<|begin_of_sentence|>You are a helpful assistant<|User|>How to optimize this code?<|Assistant|><think>

(Точное обрамление маркера указано в карточке модели — необходимо соблюдать интервалы и специальные маркеры, если вы используете необработанный шаблон.)

C — С помощью Ollama (переключение пользовательского интерфейса):
В официальной веб-демонстрации DeepSeek и примечаниях к выпуску упоминается переключатель/кнопка «DeepThink» для переключения режимов в размещенном пользовательском интерфейсе. Локально Ollama или ваше приложение должны воспроизводить это поведение, переключая шаблон чата (т.е. изменяя подсказку, отправляемую в среду выполнения, между двумя токенизированными формами). Если вы запускаете DeepSeek через Ollama, вы можете реализовать это в своем приложении, поддерживая два шаблона подсказок (с обдумыванием и без обдумывания) и переключая их через API Ollama.


Как развернуть Thinking Mode в качестве агента (вызовы инструментов, агенты кода)?

Документы DeepSeek-V3.1 вызов инструмента и агент Шаблоны в активах модели. Модель ожидает, что инструменты будут представлены в определённом формате JSON/инструкций, и поддерживает цепочку вызовов нескольких инструментов за один шаг при условии точного соблюдения токенов-обёрток, описанных в карточке модели.

Пример: простая оболочка вызова инструмента (псевдо)

Модель определяет блок дескриптора инструмента и строгий tool_calls_begin / tool_call_begin Формат. Минимальный пример (концептуальный):

## Tools

You have access to the following tools:

### web_search

Description: Query the web
Parameters: {"q": "string"}

<|begin_of_sentence|>{system prompt}

## Tools

...tool descriptions...

<|User|>Find the population of Tokyo<|Assistant|></think>
<|tool_calls_begin|><|tool_call_begin|>web_search<|tool_sep|>{"q":"population of Tokyo 2025"}<|tool_call_end|><|tool_calls_end|>

Выходные данные инструмента затем должны быть возвращены в модель на следующем этапе в соответствии с предписанным форматом модели (см. assets/search_tool_trajectory.html на странице модели для точного описания процесса). Реализация агентов требует программной оркестровки: вызов инструмента → захват результата → внедрение результата обратно в контекст чата точно так, как предписано в шаблоне → повторный вызов модели.


Практические советы, устранение неполадок и меры предосторожности (на что следует обратить внимание?)

  • Шаблоны токенов строгие. Используйте модель tokenizer.apply_chat_template или воспроизвести точное <think>/</think> Маркеры показаны. Неправильное расположение или отсутствие маркеров приведёт к изменению поведения модели.
  • Формат инструмента должен быть допустимым JSON. Модель будет анализировать аргументы инструмента как JSON — недопустимый JSON приведет к прерыванию вызовов инструмента.
  • Компромиссы квантования. Динамическое/агрессивное квантование 1-битной области уменьшает объём хранилища и оперативной памяти, но может немного повлиять на точность числовых данных. Протестируйте на своих рабочих нагрузках. Существуют варианты квантования, разработанные сообществом, которые снижают использование диска на 80% (пример отчёта: 720 ГБ → ~170 ГБ), но всегда сверяйтесь с вашими подсказками.
  • Совместимость с Олламой. В некоторых вариантах DeepSeek указано, что для работы предварительных версий требуется Ollama v0.11.7 — проверьте страницу модели Ollama и обновите ее соответствующим образом.

Пример от начала до конца: запуск DeepSeek-V3.1 локально в режиме Thinking Mode (мини-пошаговое руководство)

  1. Установите Ollama и извлеките модель:
# install ollama per docs, then:

ollama pull deepseek-ai/DeepSeek-V3.1
ollama run deepseek-ai/DeepSeek-V3.1 &
  1. Используйте токенизатор Python для составления подсказки к размышлению:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")

msgs = [
  {"role":"system","content":"You are a helpful assistant."},
  {"role":"user","content":"Plan a multi-step strategy to prototype a mobile app in 2 weeks."}
]
prompt = tokenizer.apply_chat_template(msgs, thinking=True, add_generation_prompt=True)

import requests
resp = requests.post("http://localhost:11434/api/generate", json={
    "model": "deepseek-ai/DeepSeek-V3.1",
    "prompt": prompt,
    "max_tokens": 400
})
print(resp.json())
  1. Если модель возвращает вызов инструмента в формате toolcall, проанализируйте JSON и запустите инструмент, затем внедрите результаты в следующее сообщение в соответствии с шаблонами карточки модели.

Как выбрать путь развертывания?

  • Если вам нужен самый быстрый путь к эксперименту: используют Оллама и примеры модели Hugging Face. Ollama скрывает многие инфраструктурные детали и предоставляет локальный HTTP API.
  • Если вам нужна более низкая стоимость/большая мобильность: использовать сообщество GGUF квантованный артефакт и запустить с llama.cpp or llama-server. Квантование экономит диск и память, но проверяет точность вашей рабочей нагрузки.
  • Если вы строите агенты или инструменты: следуйте образцу карты вызов инструмента и агент шаблоны в точности; организуйте выходные данные инструмента обратно в контекст модели.

Первые шаги

CometAPI — это унифицированная платформа API, которая объединяет более 500 моделей ИИ от ведущих поставщиков, таких как серия GPT OpenAI, Gemini от Google, Claude от Anthropic, Midjourney, Suno и других, в единый, удобный для разработчиков интерфейс. Предлагая последовательную аутентификацию, форматирование запросов и обработку ответов, CometAPI значительно упрощает интеграцию возможностей ИИ в ваши приложения. Независимо от того, создаете ли вы чат-ботов, генераторы изображений, композиторов музыки или конвейеры аналитики на основе данных, CometAPI позволяет вам выполнять итерации быстрее, контролировать расходы и оставаться независимыми от поставщика — и все это при использовании последних достижений в экосистеме ИИ.

Разработчики могут получить доступ ДипСик V3.1 Последние версии моделей CometAPI указаны на дату публикации статьи. Для начала изучите возможности модели в Детская Площадка и проконсультируйтесь с API-руководство для получения подробных инструкций. Перед доступом убедитесь, что вы вошли в CometAPI и получили ключ API. CometAPI предложить цену намного ниже официальной, чтобы помочь вам интегрироваться.


Заключение

DeepSeek-V3.1 предлагает практичную гибридную философию вывода (одна контрольная точка + шаблонное мышление), которая упрощает эксперименты с рассуждениями в стиле цепочки мыслей и использованием инструментов-агентов при соблюдении шаблонов чата и требований к инструментам. Используйте карточку модели Hugging Face и заметки о выпуске DeepSeek в качестве первого шага, выберите локальную среду выполнения (Ollama для простоты, llama.cpp для контроля) и тестовых квантованных сборок для практических локальных развертываний.

SHARE THIS BLOG

500+ моделей в одном API

Скидка до 20%