Ollama経由でdeepseek-v3.1をローカルにデプロイする方法: The Eastestガイド

CometAPI
AnnaDec 2, 2025
Ollama経由でdeepseek-v3.1をローカルにデプロイする方法: The Eastestガイド

DeepSeek-V3.1は、思考型/非思考型のハイブリッドMoE言語モデル(合計671B、トークンあたり約37B)で、適切なプロバイダ/量子化ツールとツールを使用すればローカルで実行できます。以下では、DeepSeek-V3.1とは何か、ハードウェア/ソフトウェア要件、ローカル実行のステップバイステップチュートリアル(Ollama + llama.cppの例)、そしてその方法について説明します。 思考モードを展開して使用する<think>/</think> コピー/貼り付けできるコード例付きのチャットテンプレートです。


DeepSeek-V3.1とは何ですか?

DeepSeek-V3.1は、DeepSeekのMoE(Mixture-of-Experts)ファミリーのv3.1リリースです。XNUMXつの会話テンプレート/モードをサポートするハイブリッド推論モデルとして設計されています。 考え および 非思考 — チャットテンプレートを変更することで、同じチェックポイントからモデルを生成できます。モデルアーキテクチャはDeepSeek-V3 MoE設計(合計671Bのパラメータ、推論のためにトークンごとに約37Bのパラメータが有効化)を踏襲しており、ツールの使用、エージェントのスキル、およびロングコンテキスト処理に関するトレーニング後の改善が追加されています。

機能のハイライト

  • ハイブリッド 思考/非思考 モード(チャット テンプレートのトークン化によって切り替えられます)。
  • MoE アーキテクチャ: パラメータの合計数は多いが、トークンあたりのアクティブ化パラメータは制限されている (効率性を高める)。
  • ツール呼び出しとエージェント ワークフローのトレーニング後のブースト (モデル アセットに文書化されたツール呼び出し形式とエージェント テンプレート)。

DeepSeek-V3.1 をローカルで実行するには何が必要ですか?

ランニング 全体像を DeepSeek-V3.1(生のチェックポイント)は重量級で、トレーニング/チェックポイントの保存と推論オーケストレーションは容易ではありません。しかし、実用的な方法があります。

Hardware

  • 完全分散推論(研究/クラスター): 複数の大容量メモリGPU(A100/H800クラス)またはモデル並列処理機能を備えたGPUクラスター(600B以上のチェックポイントで一般的)。本番環境の研究用クラスターを実行している場合にのみ使用してください。
  • 実用的なローカルオプション: 使用 アクティブ化パラメータ パースペクティブ(アクティブ化メモリ容量約37B)または量子化GGUF/1ビットダイナミックビルドのいずれかです。コミュニティ量子化(1ビットダイナミック/GGUF)は、ディスクとRAMの要件を大幅に削減します。例えば、コミュニティの投稿では、量子化バリアントで720GBのチェックポイントを約170GBのGGUFに圧縮したという報告があります。これにより、十分なリソースを備えたデスクトップ/サーバーであれば、ローカルの単一サーバーGPU推論が可能になります。

ボトムライン: 大規模モデルのワークフロー(量子化されたアーティファクト用の数十から数百 GB のディスク)を想定しています。GPU VRAM の場合、量子化されたバリアントを使用し、妥当なスループットを得るために 24~48 GB 以上の VRAM をターゲットにします。それ以外の場合は、パフォーマンスとのトレードオフを伴い CPU+スワップを使用します。

ソフトウェアとツール

Python 3.10+ (トランスフォーマー/トークナイザー ツールおよびカスタム スクリプト用)。

transformers (トークナイザーとヘルパー関数用) — モデルカードには、 transformers.AutoTokenizer.

1 つ以上のローカル推論ランタイム:

  • オラマ (簡単: ollama pull / ollama run 統合。Ollama 上の一部の DeepSeek ビルドにはプレリリース バージョンが必要です。model/ollama の注記を確認してください。Ollama はコミュニティ モデルの標準的なローカル ランナーとなっています。
  • llama.cpp / ggml スタックまたは llama-server GGUF 量子化ファイル用 — 直接 GGUF 実行に最適です。
  • テキスト生成推論 / Triton / FlashAttention スタック より高性能な GPU 推論 (高度な設定) 向け。

ディスク: モデル ファイル用の大きな空き領域 (量子化に応じて数十 → 数百 GB)。

モデル成果物(取得するファイル)

  • 公式セーフテンソル / 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 — モデルをダウンロードする

Ollamaを使用する場合:

# 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ビットの動的量子化を行うコミュニティツールがあり、精度を維持しながらサイズを縮小できます。約170GBまで縮小できるというコミュニティ投稿をご覧ください。


DeepSeek-V3.1 を実際にローカルで実行するにはどうすればよいですか? (実践的な実行チュートリアル)

見せてあげる オラマ (簡単、おすすめ)と ラマ.cpp (GGUF) の例と、モデル カード トークナイザー ヘルパーを使用した短い Python の例。

A — Ollamaで実行(クイックスタート)

  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. ローカルの Ollama サーバーに HTTP リクエストを送信します。
# 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
  }'

Ollama の CLI と API パターンはシンプルになるように設計されています。 ollama run 必要に応じてプルし、モデルサーバーを起動します。メモリに関するヒントや正確なモデル名/タグについては、Ollamaのドキュメントとモデルページを参照してください。

B — llama.cpp 経由で量子化 GGUF を実行する

  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ビットダイナミック)を使用してGPU/CPU予算に合わせます。 llama.cpp repo は変換ツールとガイダンスを提供します。

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>)。 ザ template モデルが思考モードか非思考モードかを決定します。

  • 非思考 テンプレートの場所 </think> アシスタント プレフィックスでは、モデルに直接応答を生成するように指示します (ツールコール形式は非思考でサポートされます)。
  • 考え テンプレートの場所 <think> アシスタントプレフィックスにトークンを追加することで、モデルは思考の連鎖のような中間信号を出力します(モデルは、そのトークンシーケンスを使用して内部的に推論し、より質の高い多段階の回答を生成するようにトレーニングされます)。Hugging Faceモデルカードには、これらのトークンと tokenizer.apply_chat_template(..., thinking=True) APIです。

プログラムによるトグル(例)

A — トークナイザーを使用(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あり(UIトグル):
DeepSeekの公式Webデモとリリースノートには、ホストUIでモードを切り替えるための「DeepThink」トグルボタン/ボタンが記載されています。ローカル環境では、Ollamaまたはアプリはチャットテンプレートを切り替えることで(つまり、ランタイムに送信するプロンプトを2つのトークン化された形式間で切り替えることで)、この動作を再現します。DeepSeekをOllama経由で実行する場合は、2つのプロンプトテンプレート(思考中と非思考中)を用意し、Ollama APIを介して切り替えることで、アプリケーションにこれを実装できます。


Thinking Mode をエージェント (ツール呼び出し、コード エージェント) として展開するにはどうすればよいですか?

DeepSeek-V3.1 ドキュメント ツールコール および エージェント モデルアセット内のテンプレート。モデルでは、ツールが特定のJSON/命令形式で提示されることを想定しており、モデルカードに記載されているラッパートークンに正確に従うことで、1ターンで複数のツール呼び出しを連鎖的に実行できます。

例: シンプルなツール呼び出しラッパー (疑似)

このモデルはツール記述子ブロックと厳密な 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ビットの動的/アグレッシブ量子化はストレージとRAMを縮小しますが、数値の忠実度がわずかに変化する可能性があります。ワークロードでテストしてください。ディスク使用量を80%削減するコミュニティ量子化も存在します(例:720GB → 約170GB)。ただし、必ずプロンプトで検証してください。
  • Ollama の互換性。 一部の DeepSeek バリアントでは、プレリリース機能には Ollama v0.11.7 が必要であると記載されています。Ollama モデル ページを確認し、それに応じて更新してください。

エンドツーエンドの例: 思考モードで DeepSeek-V3.1 をローカルで実行する (ミニ ウォークスルー)

  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. モデルがツール呼び出しをツール呼び出し形式で返す場合は、JSON を解析してツールを実行し、モデル カード テンプレートに従って結果を次のメッセージに挿入します。

展開パスはどのように選択すればよいですか?

  • 実験への最速のパスが必要な場合: つかいます オラマ そして、Hugging Faceモデルカードの例。Ollamaは多くのインフラの詳細を隠蔽し、ローカルHTTP APIを提供します。
  • 低コスト/より高い携帯性が必要な場合: コミュニティを利用する GGUF量子化 アーティファクトと実行 llama.cpp or llama-server量子化によりディスクとメモリが節約されますが、ワークロードの精度がテストされます。
  • エージェントまたはツールを構築する場合: モデルカードの ツールコール および エージェント テンプレートを正確に実行し、ツールの出力をモデルのコンテキストに再編成します。

スタートガイド

CometAPIは、OpenAIのGPTシリーズ、GoogleのGemini、AnthropicのClaude、Midjourney、Sunoなど、主要プロバイダーの500以上のAIモデルを、開発者にとって使いやすい単一のインターフェースに統合する統合APIプラットフォームです。一貫した認証、リクエストフォーマット、レスポンス処理を提供することで、CometAPIはAI機能をアプリケーションに統合することを劇的に簡素化します。チャットボット、画像ジェネレーター、音楽作曲ツール、データドリブン分析パイプラインなど、どのようなアプリケーションを構築する場合でも、CometAPIを利用することで、反復処理を高速化し、コストを抑え、ベンダーに依存しない環境を実現できます。同時に、AIエコシステム全体の最新のブレークスルーを活用できます。

開発者はアクセスできる ディープシークV3.1 CometAPIを通じて、記事の公開日時点での最新モデルのバージョンが掲載されています。まずは、モデルの機能について調べてみましょう。 プレイグラウンド そして相談する APIガイド 詳細な手順についてはこちらをご覧ください。アクセスする前に、CometAPIにログインし、APIキーを取得していることを確認してください。 コメットAPI 統合を支援するために、公式価格よりもはるかに低い価格を提供します。


結論

DeepSeek-V3.1は、実用的なハイブリッド推論哲学(XNUMXつのチェックポイントとテンプレート化された思考行動)を導入し、チャットテンプレートとツール要件を遵守すれば、思考連鎖型推論とエージェントツールの使用を容易に実験できます。まずはHugging FaceモデルカードとDeepSeekのリリースノートを参照し、ローカルランタイム(シンプルさを重視したOllamaなど)を選択してください。 llama.cpp 制御用)、そして実用的なローカル展開のために量子化されたビルドをテストします。

SHARE THIS BLOG

1つのAPIで500以上のモデル

最大20%オフ