ようこそ!このチュートリアルでは、強力な6710億パラメータの言語モデルであるDeepSeek V3 0324をローカルマシンで実行する方法をガイドします。準備から、モデルの精度とメモリ要件のバランスを取る動的量子化技術を使用して、最初のプロンプトを実行するまで、すべてをカバーします。
DeepSeek V3 0324: どれほど優れているのか?

DeepSeekの2024年3月のアップデートは、従来のV3モデルに比べて大幅な性能向上をもたらします:
- MMLU-Proスコアは+5.3%改善され(81.2%)、
- AIMEスコアは+19.8%改善され、
- LiveCodeBenchスコアは+10.0%改善され、
- GPQAスコアは+9.3%改善されました。
元のモデルは6710億パラメータの巨大なものであり、これを消費者ハードウェアで実行するには効率的な量子化技術が必要です。
ディスクスペースと精度のバランスを取るための利用可能な量子化オプションは以下の通りです:
MoEビットタイプ | ディスクサイズ | 精度 | 詳細 |
---|---|---|---|
1.78bit (IQ1_S) | 173GB | 良好 | 2.06/1.56bit |
1.93bit (IQ1_M) | 183GB | 普通 | 2.5/2.06/1.56 |
2.42bit (IQ2_XXS) | 203GB | 推奨 | 2.5/2.06bit |
2.71bit (Q2_K_XL) | 231GB | 推奨 | 3.5/2.5bit |
3.5bit (Q3_K_XL) | 320GB | 素晴らしい | 4.5/3.5bit |
4.5bit (Q4_K_XL) | 406GB | 最高 | 5.5/4.5bit |
元のfloat8モデルは715GBを必要とするため、これらの量子化されたバージョンは大幅なスペース savingsを提供します!
ステップバイステップのチュートリアル: llama.cppでDeepSeek V3 0324を実行する
始める前に、DeepSeek V3 0324の最適な設定を理解しましょう:
- 温度: 0.3(コーディングタスクには0.0を使用)
- Min_P: 0.01(ありそうにないトークンをフィルタリングするのに役立つ)
- チャットテンプレート:
<|User|>YOUR_PROMPT<|Assistant|>
- KVキャッシュ量子化のためには、パフォーマンス向上のために8bitを使用してください(4bitではなく)
ステップ1: llama.cppをセットアップする
まず、llama.cppを取得してコンパイルする必要があります:
# パッケージを更新し、必要な依存関係をインストール
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
# llama.cppリポジトリをクローン
git clone <https://github.com/ggml-org/llama.cpp>
# GPU用にCUDAサポートでビルド(CPU専用の場合は-DGGML_CUDA=OFFを使用)
# 注意: CUDAでのビルドには約5分かかるかもしれません
cmake llama.cpp -B llama.cpp/build \\\\
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
# 必要なツールをビルド
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
# アクセスしやすいようにビルドされたツールをコピー
cp llama.cpp/build/bin/llama-* llama.cpp/
ステップ2: 量子化モデルをダウンロード
必要なPythonパッケージをインストールし、モデルをダウンロードします:
pip install huggingface_hub hf_transfer
# より速いダウンロードのために環境を設定
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
# モデルをダウンロード(ここではバランスのために2.7bit動的量子化を使用)
from huggingface_hub import snapshot_download
snapshot_download(
repo_id = "unsloth/DeepSeek-V3-0324-GGUF",
local_dir = "unsloth/DeepSeek-V3-0324-GGUF",
allow_patterns = ["*UD-Q2_K_XL*"], # 動的2.7bit(230GB)
# スペースが限られている場合は"*UD-IQ_S*"を使用して動的1.78bit(151GB)を選択
)
ステップ3: テストプロンプトを実行
プロンプトを使ってモデルをテストし、フラッピーバードゲームを作成するように依頼します:
./llama.cpp/llama-cli \\\\
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \\\\
--cache-type-k q8_0 \\\\
--threads 20 \\\\
--n-gpu-layers 2 \\\\
-no-cnv \\\\
--prio 3 \\\\
--temp 0.3 \\\\
--min_p 0.01 \\\\
--ctx-size 4096 \\\\
--seed 3407 \\\\
--prompt "<|User|>Pythonでフラッピーバードゲームを作成してください。以下の項目を含める必要があります:
1. pygameを使用する必要があります。
2. 背景色はランダムに選ばれ、淡い色合いであるべきです。初めは淡い青色から始めてください。
3. SPACEキーを何度も押すと、鳥が加速します。
4. 鳥の形はランダムに選ばれ、四角、円、または三角形のいずれかであるべきです。色はランダムに選ばれた暗い色であるべきです。
5. 下部には暗い茶色またはランダムに選ばれた黄色の土地を配置します。
6. 右上にスコアを表示してください。パイプを通り抜け、当たらなければインクリメントします。
7. 十分な間隔を持つランダムに間隔をあけたパイプを作成してください。色はランダムに暗緑または淡茶色、または暗い灰色の色合いであるべきです。
8. 失敗した時には最高スコアを表示させ、テキストは画面内に表示してください。qまたはEscを押すことでゲームを終了します。再スタートはSPACEキーを再度押すことです。
最終的なゲームはPythonのマークダウンセクションの中にあるべきです。コードにエラーがないかを確認し、最終的なマークダウンセクションの前に修正してください。<|Assistant|>"
パラメーターの説明は以下の通りです:
-model
: モデルファイルへのパス-cache-type-k q8_0
: KVキャッシュのために8ビット量子化を使用-threads 20
: CPUスレッド数(CPUに応じて調整)-n-gpu-layers 2
: GPUにオフロードするレイヤー数(メモリに問題がある場合は調整)no-cnv
: パフォーマンスのために畳み込みを無効にする-prio 3
: プライオリティ設定-temp 0.3
: 温度設定(決定論的コーディングには0.0を使用)-min_p 0.01
: トークンサンプリングの最小確率-ctx-size 4096
: コンテキストウィンドウサイズ-seed 3407
: 再現性のためのランダムシード
「ヘプタゴンチャレンジ」によるDeepSeek V3 0324のテスト
モデルの機能をさらにテストするために、ボールが回転するヘプタゴンの中でバウンドする複雑な物理シミュレーションを作成するようにモデルに指示する「ヘプタゴンチャレンジ」を実行できます:
./llama.cpp/llama-cli \\\\
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \\\\
--cache-type-k q8_0 \\\\
--threads 20 \\\\
--n-gpu-layers 2 \\\\
-no-cnv \\\\
--prio 3 \\\\
--temp 0.3 \\\\
--min_p 0.01 \\\\
--ctx-size 4096 \\\\
--seed 3407 \\\\
--prompt "<|User|>20個のボールが回転するヘプタゴンの中で跳ね返るPythonプログラムを書いてください:
- すべてのボールは同じ半径を持っています。
- すべてのボールには1から20の番号が付いています。
- すべてのボールはスタート時にヘプタゴンの中心から落下します。
- 色は:#f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35です。
- ボールは重力と摩擦に影響を受け、回転する壁にリアルに弾ける必要があります。ボールの間で衝突もあります。
- すべてのボールの素材は、衝撃の反発高がヘプタゴンの半径を超えないが、ボールの半径よりは高いことを決定します。
- すべてのボールは摩擦と共に回転し、ボールに付けた番号はボールの回転を示すのに使えます。
- ヘプタゴンはその中心を中心に回転し、回転速度は5秒あたり360度です。
- ヘプタゴンのサイズはすべてのボールを含むのに十分大きくする必要があります。
- pygameライブラリは使用せず、衝突検出アルゴリズムや衝突応答などを自分で実装してください。以下のPythonライブラリは許可されています: tkinter, math, numpy, dataclasses, typing, sys。
- すべてのコードは1つのPythonファイルに置かれるべきです。<|Assistant|>"
DeepSeek V3 0324のパフォーマンス最適化
フラッシュアテンション: より速いデコーディングのために、llama.cppをコンパイルする際にフラッシュアテンションを使用します:
-DGGML_CUDA_FA_ALL_QUANTS=ON
CUDAアーキテクチャ: コンパイル時間を削減するために、特定のCUDAアーキテクチャを設定します:
-DCMAKE_CUDA_ARCHITECTURES="80" # GPUに応じて調整
パラメーターの調整:
- メモリ不足の問題に直面した場合は、
-n-gpu-layers
を減らしてみてください。 - CPU専用推論の場合は、
-n-gpu-layers
パラメーターを削除します。 -threads
をCPUコアに基づいて調整します。
これで、DeepSeek V3 0324がローカルで実行されています!再確認しましょう:
- llama.cppをCUDAサポートでセットアップしました。
- モデルの量子化バージョン(2.7bit動的量子化)をダウンロードしました。
- モデルの能力を確認するためにテストプロンプトを実行しました。
- 最適な設定とパフォーマンスのヒントについて学びました。
2.7bit動的量子化は、ディスクスペース(231GB)とモデル精度の間で素晴らしいバランスを提供し、この671Bパラメータモデルを効率的にローカルハードウェア上で実行できます。
この強力なモデルを最大限に活用するために、異なるプロンプトやパラメーターを試してみてください!
Apidogを使ったDeepSeek APIのテスト
DeepSeekをローカルで実行するのではなく、APIを介して使用するアプリケーションを開発している場合、ApidogはAPI開発、テスト、デバッグ用の強力なツールを提供します。
DeepSeek APIテスト用にApidogを設定する
ステップ1: Apidogをダウンロードしてインストールする
- https://apidog.com/download/を訪れて、オペレーティングシステム用のApidogクライアントをダウンロードします。
2. Apidogをインストールおよび起動し、アカウントを作成するか、GoogleまたはGithubでサインインします。
3. プロンプトが表示されたら、役割(例:「フルスタック開発者」)と希望の作業モード(例:「API設計ファースト」)を選択します。
ステップ2: DeepSeek用の新しいAPIプロジェクトを作成する
- ApidogでDeepSeek APIテスト用の新しいHTTPプロジェクトを作成します。
- プロジェクトにDeepSeek APIエンドポイントを追加します。

DeepSeekからのストリーミングレスポンスのデバッグ
DeepSeekおよび他の多くのAIモデルは、サーバー送信イベント(SSE)を使用してストリーミングレスポンスを提供します。Apidog(バージョン2.6.49以降)は、SSEのデバッグをサポートしています:
- ApidogでDeepSeek APIエンドポイントを作成および構成します。
- DeepSeek APIにリクエストを送信します。
- レスポンスにヘッダー
Content-Type: text/event-stream
が含まれている場合、Apidogは自動的にこれをSSEイベントとして処理します。 - レスポンスパネルのタイムラインビューでリアルタイムのストリーミングレスポンスを表示します。

Apidogは、以下を含む人気のAIモデルフォーマットに対してビルトインサポートを提供しています:
- OpenAI API互換フォーマット
- Gemini API互換フォーマット
- Claude API互換フォーマット
DeepSeekに特有の点として、Apidogはモデルの思考プロセスをタイムラインに表示し、AIの推論への洞察を提供します。
DeepSeekのSSEレスポンス処理のカスタマイズ
DeepSeekのレスポンスフォーマットがApidogの組み込みの認識ルールに一致しない場合、次の方法で対応できます:
JSON形式のSSEレスポンスに対してJSONPath抽出ルールを設定します:
- 次のようなレスポンス:
data: {"choices":[{"index":0,"message":{"role":"assistant","content":"H"}}]}
の場合、 - JSONPathを使用:
$.choices[0].message.content
非JSON SSEメッセージについては、ポストプロセッサスクリプトを使用します:
- データフォーマットを処理するカスタムスクリプトを作成します。
- 特定の要件に従ってメッセージを処理します。
DeepSeek API用の自動テストを作成する
DeepSeek APIエンドポイントを設定したら、Apidogで動作が正しいことを確認するための自動テストを作成できます:
- テストモジュールで異なるプロンプトタイプ用のテストシナリオを作成します。
- レスポンスの構造と内容を検証し、アサートを追加します。
- テストシナリオを異なる環境(例:開発、製品)で実行されるように構成します。
- バッチ実行を設定して、複数のシナリオを同時にテストします。
CI/CD統合のために、Apidog CLIを使用してこれらのテストをパイプラインの一部として実行できます:
# Apidog CLIをインストール
npm install -g apidog-cli
# テストシナリオを実行
apidog run test-scenario -c <collection-id> -e <environment-id> -k <api-key>

apidog-cliの動作についての詳細は、公式ドキュメンテーションを参照してください。
DeepSeek APIのパフォーマンステスト
Apidogは、DeepSeek APIが負荷下でどのように機能するかを評価するためのパフォーマンステスト機能も提供します:
DeepSeek APIへの呼び出しを含むテストシナリオを作成します。
パフォーマンステスト設定を構成します:
- 仮想ユーザー数を設定(最大100)
- テストの期間を指定
- 徐々に増加するユーザーをシミュレートするためのレ ramp-up 時間を設定
パフォーマンステストを実行して、次のような重要なメトリックを確認します:
- 平均スループット
- 平均応答時間
- 最大/最小応答時間
- エラー率
これは、DeepSeekのデプロイメントが複数の同時リクエストをどのように処理するかを理解するのに特に役立ちます。
結論
これで、DeepSeek V3 0324がローカルで実行されており、Apidogを使用してDeepSeek APIを効果的にテストするための知識も得ることができました!再確認しましょう:
- llama.cppをCUDAサポートでセットアップしました。
- モデルの量子化バージョン(2.7bit動的量子化)をダウンロードしました。
- モデルの能力を確認するためにテストプロンプトを実行しました。
- DeepSeek APIのテストとデバッグのためにApidogの使用方法を学びました。
- ローカルデプロイメントとAPIテストの両方におけるパフォーマンス最適化のヒントを探りました。
2.7bit動的量子化は、ディスクスペース(231GB)とモデルの精度の間で優れたバランスを提供し、この671Bパラメータモデルを効率的にローカルハードウェア上で実行できます。一方、Apidogは、特にストリーミングレスポンス用のSSEデバッグ機能を利用して、DeepSeek API実装を開発、テスト、デバッグするための強力なツールを提供します。
特定のニーズに最適なセットアップを見つけるために、異なる量子化オプションやApidog機能を自由に試してみてください!