🐳DeepSeek-V3-0324: ローカル実行方法

精度を回復する当社のDynamic量子化を使ってDeepSeek-V3-0324をローカルで実行する方法

こちらをご覧ください https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally (2025年5月28日更新) DeepSeekをより高速かつ効率的に実行する方法を学ぶために!

DeepSeekがまたやってくれました!2024年12月と2025年1月にV3、R1 Zero、R1を公開した後、DeepSeekはV3のチェックポイント/モデルを更新し、3月のアップデートをリリースしました!

DeepSeekによると、MMLU-Proは+5.3%上昇して81.2%になりました。 GPQA +9.3ポイント. AIME +19.8% と LiveCodeBench +10.0%!彼らは、以前のV3チェックポイントや GPT 4.5、Claude Sonnet 3.7 などの他モデルと比較した図を提供しました。 でも、6710億パラメータのモデルをローカルでどう実行するのでしょうか?

MoE ビット数
タイプ
ディスクサイズ
精度
リンク
詳細

1.78bit

IQ1_S

173GB

OK

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

⚙️ 公式推奨設定

によると DeepSeek、推論に推奨される設定は以下のとおりです:

  • 温度 0.3 (コード用途では 0.0 でもよいかもしれません こちらで見られるように)

  • Min_P 0.00(任意ですが、0.01 でもうまく動作します。llama.cpp のデフォルトは 0.1 です)

  • チャットテンプレート: <|User|>Pythonで、簡単に遊べるFlappy Birdゲームを作成してください。完成したゲームはMarkdownセクション内に配置してください。<|Assistant|>

  • BOSトークンの <|begin▁of▁sentence|> はトークン化の際に自動で追加されます(手動で追加しないでください!)

  • DeepSeekは、 システムプロンプト も使用していると述べています(任意)—中国語では次のとおりです: 该助手为DeepSeek Chat,由深度求索公司创造。\n今天是3月24日,星期一。 これは次のように翻訳されます: このアシスタントは DeepSeek Chat であり、DeepSeek によって作成されました。\n今日は3月24日、月曜日です。

  • KVキャッシュの量子化には、4bitではなく8bitを使用してください。明らかに性能が悪くなることがわかりました。

📖 チュートリアル:llama.cpp で DeepSeek-V3 を実行する方法

  1. 最新の llama.cppGitHub こちらから取得してください。以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON-DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して -DGGML_CUDA=OFF その後は通常どおり続けてください - Metal サポートは既定で有効です。

  1. モデルのダウンロード( pip install huggingface_hub hf_transfer のインストール後)。 UD-IQ1_S(動的 1.78bit 量子化)または次のような他の量子化版 Q4_K_M . 私たちの 2.7bit 動的量子化を使うことを推奨します UD-Q2_K_XL サイズと精度のバランスを取るためです。その他のバージョンはこちら: https://huggingface.co/unsloth/DeepSeek-V3-0324-GGUF

  1. DeepSeek R1 向けの 1.58bit 動的量子化で説明したとおりに、Unsloth の Flappy Bird テストを実行してください。

  2. 編集 --threads 32 CPU スレッド数を --ctx-size 16384 コンテキスト長を --n-gpu-layers 2 GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。

上記を実行すると、非常に異なる2つの結果が得られます。 標準の2-bit版: クリックして結果を表示 (発作注意!) 動的2-bit版: 以下の結果を見てください:

標準の2-bit。背景で失敗し、衝突でも失敗

動的2-bit。プレイ可能なゲームの作成に成功。
  1. DeepSeek-R1 と同様に、V3 は61層あります。たとえば24GB GPUまたは80GB GPUでは、切り捨て後に次の層数をオフロードできると予想できます(メモリ不足になる場合は1減らしてください):

量子化
ファイルサイズ
24GB GPU
80GB GPU
2x80GB GPU

1.73bit

173GB

5

25

56

2.22bit

183GB

4

22

49

2.51bit

212GB

2

19

32

Mac / Apple デバイスでの実行

Apple Metal デバイスでは、 --n-gpu-layersに注意してください。マシンがメモリ不足になる場合は、これを減らしてください。128GBのユニファイドメモリ搭載マシンなら、59層程度をオフロードできるはずです。

🎱 七角形テスト

また、私たちは動的量子化を以下でもテストします r/Localllama これは、動く閉じた六角形ではなく七角形の形の中で回転するボールをシミュレートする基本的な物理エンジンを作るテストです。

目標は七角形を回転させることであり、七角形の中のボールは動く必要があります。
Cover

動的ではない2-bit。失敗 - 発作注意 再び!

Cover

動的2-bit。実際に七角形パズルを正しく解決!!

Cover

元の float8

サイズがたった230GBの動的2.7bit量子化が、実際に七角形パズルの解決に成功しました!3つのバージョンすべて(完全なfp8を含む)の完全な出力は以下です:

動的2-bit 七角形コード
動的でない2-bit 七角形コード
Float8 七角形コード

🕵️ 追加の発見とヒント

  1. 経験的なテストでは、低いKVキャッシュ量子化(4bit)を使うと生成品質が低下するようです。さらにテストが必要ですが、 q8_0 キャッシュ量子化の使用を提案します。量子化の目的は、KVキャッシュがかなり多くのメモリを使うため、より長いコンテキスト長をサポートすることです。

  2. 私たちは down_proj がこのモデルにおいて非常に量子化に敏感であることを確認しました。私たちはいくつかの動的量子化をやり直す必要がありましたが、そこで2bitsを使っていました down_proj が、現在はこれらの行列すべてに対して最小でも3bitsを使っています。

  3. を使うと llama.cpp のFlash Attentionバックエンドは、ある程度高速なデコード速度になります。コンパイル時には -DGGML_CUDA_FA_ALL_QUANTS=ON を使ってください。なお、CUDAアーキテクチャは次のサイトで確認して設定するのが最善です https://developer.nvidia.com/cuda-gpus コンパイル時間を短縮するために、次のように設定してください -DCMAKE_CUDA_ARCHITECTURES="80"

  4. を使うと min_p=0.01でおそらく十分です。 llama.cppのデフォルトは0.1ですが、おそらく必要ありません。いずれにせよ温度が0.3なので、低確率トークンをサンプルする可能性は非常に低く、したがって可能性の低いトークンを除外するのは良い考えです。DeepSeek はコーディングタスクに対して温度0.0を推奨しています。

最終更新

役に立ちましたか?