機密性の高いソースコードを取り扱うソフトウェアエンジニアや、社外秘データやプライベートな情報を保護したいユーザーにとって、外部のクラウドAPIへプロンプトやコンテキストを送信することはデータ漏洩やコンプライアンス違反のリスクを伴います。オープンソースのDeepSeekモデルをローカルマシンで直接実行することにより、完全なデータ主権(ゼロネットワーク通信、トークン従量課金の排除、外部サーバー障害への完全な耐性)を確保できます。
OllamaおよびLM Studioを活用することで、コンシューマー向けPC環境でもDeepSeekの推論モデルやコーディングモデルを完全ローカルで動かすことが可能です。モデルの重みファイルをダウンロードまたはサイドロードした後は、インターネット接続を完全に遮断した状態(エアギャップ環境)でも問題なく推論処理が行えます。本ガイドでは、適切なモデルサイズの選択、オフライン稼働の検証手順、OpenAI互換のローカルAPIサーバー立ち上げ手順、およびDeepSeek公式が推奨する推論パラメータについて詳しく解説します。
1. ハードウェア仕様に応じた適切なDeepSeekモデルの選定
DeepSeek-R1シリーズには、6710億パラメータ(671B)を誇るオリジナルのMoE(Mixture-of-Experts)モデルに加え、Qwen 2.5およびLlama 3をベースに蒸留された6つの高密度(Dense)モデルが用意されています。フルサイズの671BモデルはマルチGPUクラスタや512GBメモリを搭載したワークステーション(Mac Studio等)が必要ですが、蒸留版モデルは一般的なノートPCやデスクトップPCで快適に動作します。
また、コーディングに特化したモデルとしては、DeepSeek-Coder-V2(16B MoE)も開発用マシンに適した選択肢です。
| モデル名 | ベースアーキテクチャ | ダウンロード容量(Q4量子化) | 必要メモリ容量(VRAM / RAM) | 推奨動作環境 |
|---|---|---|---|---|
| DeepSeek-R1-Distill-Qwen-1.5B | Qwen 2.5 Math | 約 1.1 GB | 4 GB メモリ | 軽量ノートPC;CPU単体推論;エッジデバイス |
| DeepSeek-R1-Distill-Qwen-7B | Qwen 2.5 Math | 約 4.7 GB | 8 GB VRAM または 16 GB RAM | 一般的なノートPC;8GB GPU(RTX 3060/4060);Apple Silicon Mac |
| DeepSeek-R1-Distill-Llama-8B | Llama 3.1 | 約 5.2 GB | 8 GB VRAM または 16 GB RAM | コードレビューや論理的思考タスクに優れた定番サイズ |
| DeepSeek-R1-Distill-Qwen-14B | Qwen 2.5 | 約 9.0 GB | 12–16 GB VRAM または 24 GB RAM | ミドルハイクラスGPU(RTX 4070/4080);16GB/24GB 統合メモリMac |
| DeepSeek-R1-Distill-Qwen-32B | Qwen 2.5 | 約 20 GB | 24 GB VRAM または 32–64 GB RAM | ハイエンドGPU(RTX 3090/4090);36GB+ Mac;推論性能と負荷のベストバランス |
| DeepSeek-R1-Distill-Llama-70B | Llama 3.3 | 約 43 GB | 24GB GPU×2 または 64–96 GB RAM | マルチGPU搭載PC;Mac Studio(64GB–128GB) |
| DeepSeek-R1(フルサイズ 671B MoE) | DeepSeek-V3 Base | 約 404 GB | 400 GB+ VRAM / 専用サーバー群 | エンタープライズサーバー;80GB GPU×8基構成;Mac Studio 512GB |
ソフトウェア開発や日常的な問題解決においては、DeepSeek-R1-Distill-Qwen-14B または DeepSeek-R1-Distill-Qwen-32B が性能とリソース要求のバランスに最も優れています。
2. OllamaによるDeepSeekのローカル展開と実行
Ollamaは、バックグラウンドデーモンやコマンドライン自動化、IDE拡張機能との連携に最適な軽量ランタイムです。
ステップ1:Ollamaのインストール
お使いのOSに応じたインストーラーを入手します:
- macOS: 公式サイトからダウンロードしたZIPを展開し、Ollamaをアプリケーションフォルダに移動します。
- Windows:
OllamaSetup.exeを実行してインストールします。 - Linux: ターミナルで公式スクリプトを実行します:
curl -fsSL https://ollama.com/install.sh | sh
ステップ2:モデルのダウンロードと起動
インターネット接続状態で、対象のDeepSeekモデルを指定して起動します:
# 8Bモデルの対話セッションを起動
ollama run deepseek-r1:8b
# より高精度な14Bや32Bモデルを動かす場合
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
Ollamaは自動的にGPUアクセラレーション(NVIDIA CUDA、Apple Metal、AMD ROCm)を検出し、最適なVRAM領域を割り当てて対話プロンプトを開きます。
ステップ3:完全オフライン動作の確認
推論中に通信が一切発生しないことを確認する手順:
- PCのWi-Fiを無効化するか、LANケーブルを抜いてオフラインにします。
- 新しいターミナルを開き、コマンドを実行します:
ollama run deepseek-r1:8b
モデルデータはローカルストレージ(Linux/macOSは ~/.ollama/models、Windowsは %USERPROFILE%\.ollama\models)にキャッシュされているため、ネットワークが遮断されていても高速に応答が生成されます。
ステップ4:エアギャップ(隔離ネットワーク)環境への移行
外部ネットワークに接続できない高セキュリティ環境にモデルを配備する場合:
- ネット接続可能な作業用PCで
ollama pull deepseek-r1:14bを実行します。 OLLAMA_MODELSで指定されたフォルダ(または既定の~/.ollama/models)を確認します。- 暗号化された外部ストレージに該当ディレクトリをコピーします。
- 隔離マシンの対応するディレクトリに配置し、
ollama listで認識されていることを確認します。
ステップ5:コンテキストウィンドウ(文脈長)の調整
Ollamaの標準コンテキスト長は4096トークンです。長いソースコードを解析する場合は拡張します:
- 対話プロンプト内での動的指定:
/set parameter num_ctx 16384 - サービス起動時の環境変数指定:
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
ステップ6:ローカルAPIの呼び出しとスクリプト連携
Ollamaはポート 11434 でネイティブREST APIおよびOpenAI互換エンドポイントを提供します。
cURLによる推論リクエスト例
curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1:8b",
"messages": [
{"role": "user", "content": "Go言語でスレッドセーフなインメモリキャッシュを実装してください。"}
],
"stream": false
}'
Python公式SDKによる呼び出し例
from ollama import chat
response = chat(
model="deepseek-r1:8b",
messages=[
{
"role": "user",
"content": "Pythonで並行処理を行う際のGILの影響と、それを回避する設計手法を解説してください。",
}
],
options={
"temperature": 0.6,
},
)
print(response.message.content)
VS CodeやJetBrainsなどのIDE環境では、Continue.devやAiderなどのプラグインのエンドポイントを http://localhost:11434/v1 に設定することで、完全ローカルなAIアシスタント機能を実現できます。
3. LM StudioによるDeepSeekのローカル展開と実行
LM Studioは、直感的なGUI、視覚的なGPUレイヤーオフロードスライダー、およびワンクリックで起動できるローカルサーバー機能を備えています。
ステップ1:LM Studioのインストール
macOS(Apple Silicon M1〜M4)、Windows(x64 / Snapdragon ARM)、またはLinux(AppImage)向けのインストーラーを公式サイトから取得し、セットアップを行います。
ステップ2:DeepSeekモデルの検索と取得
- 左側サイドバーの Discover(虫眼鏡アイコン)をクリックします。
- 検索バーに
deepseek-r1またはdeepseek-coderと入力します。 - コミュニティが提供する各種GGUF量子化版(Q4_K_M、Q5_K_M、Q8_0など)が表示されます。
- 画面に表示されるメモリ消費目安を確認し、ハードウェアに適した形式を選択して Download を押します。
ステップ3:オフライン環境でのGGUF手動インポート(サイドロード)
インターネットに接続できない端末の場合:
- 別のPCでHugging Faceから該当する
.ggufファイルをダウンロードします。 - LM Studioの My Models(フォルダアイコン)タブを開きます。
- ダウンロードした
.ggufファイルを画面に直接ドラッグ&ドロップするか、~/.cache/lm-studio/modelsに配置します。 - アプリケーションが自動的にモデル構造を認識して登録します。
ステップ4:ハードウェア最適化とGPUレイヤーオフロードの設定
- AI Chat タブを開きます。
- 画面上部の Select a model to load をクリックし、追加したDeepSeekモデルを選択します。
- 右側の Inference Parameters パネルで調整します:
- GPU Offload: スライダーを操作して、GPU VRAMにロードするレイヤー数を設定します。VRAMに余裕があれば最大値(Max)にし、容量が限られている場合は一部のレイヤーのみをGPUに割り当て、残りをシステムRAM(CPU)に分担させます。
- Context Length: 必要に応じてコンテキスト長の長さを調整します。
ステップ5:OpenAI互換ローカルサーバーの起動
LM StudioをローカルAPIサーバーとして稼働させる手順:
- 左側の Developer(コード括弧アイコン)をクリックします。
- Start Server スイッチをオンにします。
- デフォルトで
http://localhost:1234/v1でリクエストを受け付けます。
OpenAI Python SDKによるローカル連携例
from openai import OpenAI
# 外部通信を行わないローカルLM Studioサーバーへ接続
client = OpenAI(
base_url="http://localhost:1234/v1",
api_key="lm-studio", # デフォルトでは認証不要のため任意の文字列を指定
)
completion = client.chat.completions.create(
model="deepseek-r1-distill-qwen-14b",
messages=[
{
"role": "user",
"content": "以下のSQLテーブル構造におけるインデックスのボトルネックを診断してください:\nCREATE TABLE events (id BIGINT, user_id INT, payload TEXT, created_at TIMESTAMP);",
}
],
temperature=0.6,
)
print(completion.choices[0].message.content)
4. DeepSeek-R1の推奨推論設定と思考トークン(Thinkタグ)の制御
DeepSeek-R1特有の推論機構を最大限に引き出すために、以下のパラメータ設定を遵守することが推奨されます:
1. Temperature(温度係数)を0.6前後に設定する
DeepSeek公式チームは、サンプリング温度を 0.5〜0.7 の範囲(公式ベンチマークの推奨値は 0.6)に設定することを推奨しています。温度が高すぎると幻覚や同じフレーズの堂々巡りが発生しやすく、逆に0に近づけすぎると思考プロセスの探索能力が損なわれます。
2. 複雑なSystem Promptを避ける
一般的な対話モデルとは異なり、DeepSeek-R1はプロンプトの指示内容をUserメッセージ内に直接記述する形式に最適化されて学習されています。過度に入り組んだSystem Promptを与えると、論理展開の質が低下したり無限ループに陥る恐れがあります。役割設定や制約条件はすべてUserプロンプト内に含めることが推奨されます。
3. <think> 思考チェーンタグの扱い
DeepSeek-R1は最終回答を出力する前に、<think>...</think> タグ内で段階的な思考プロセスを展開します。
- 一般ユーザー向けシステム: 最終的な回答のみを表示したい場合、正規表現等で
<think>から</think>までのブロックを切り取って出力します。 - コード検証・アルゴリズム検討: 思考チェーンをそのまま残すことで、モデルがどのような仮定や検証を経て結論に至ったかを精査できます。
5. OllamaとLM Studioの比較および選定基準
| 比較項目 | Ollama | LM Studio |
|---|---|---|
| 基本インターフェース | CLIターミナル;バックグラウンドデーモン | デスクトップGUIアプリケーション |
| 主な対象ユーザー | バックエンドエンジニア;CI/CD自動化;CUI愛好者 | プライバシー重視の研究者;Prompt検証担当者;GUI利用者 |
| ハードウェア配分調整 | 自動判別;ModelfileやCLIオプションで設定 | 視覚的なスライダーでGPUオフロード層数を微調整可能 |
| GGUF手動インポート | Modelfile FROM ./file.gguf を作成して登録 | ウィンドウ内へ直接ドラッグ&ドロップするだけで完了 |
| 標準サーバーURL | http://localhost:11434 | http://localhost:1234/v1 |
| ドキュメントRAG機能 | Open WebUIなどの外部ツールとの併用が必要 | アプリ単体でローカル文書のドラッグ&検索に対応 |
| 開発ツール連携 | Continue、Aider、Claude Code等とネイティブ連携 | OpenAI互換エンドポイント経由で各ツールから接続可能 |
選定の結論:
- バックグラウンドで常駐させたい場合や、開発ターミナル、Docker、IDEコーディング支援ツールとのシームレスな統合を求める場合は Ollama が最適です。
- グラフィカルな画面でGPUメモリ消費を確認しながらレイヤー配分を細かく調整したい場合や、手動で集めたGGUFファイルを素早く比較検証したい場合は LM Studio を推奨します。