🐳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億パラメータのモデルをローカルでどう実行するのでしょうか?
DeepSeek V3 の元のアップロードは float8 で、715GB を必要とします。Q4_K_M を使うとファイルサイズはおよそ 404GB まで半減し、私たちの動的 1.78bit 量子化は約 151GB に収まります。 サイズと精度のバランスを取るために、私たちの 2.7bit 量子化の使用を推奨します!2.4bit 版もよく動作します!
⚙️ 公式推奨設定
によると 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 を実行する方法
最新の
llama.cppを GitHub こちらから取得してください。以下のビルド手順に従うこともできます。-DGGML_CUDA=ONを-DGGML_CUDA=OFFに変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して-DGGML_CUDA=OFFその後は通常どおり続けてください - Metal サポートは既定で有効です。
使用する際の注意 -DGGML_CUDA=ON GPU向けではコンパイルに5分かかる場合があります。CPUのみなら1分でコンパイルできます。llama.cpp の事前コンパイル済みバイナリに興味があるかもしれません。
モデルのダウンロード(
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
DeepSeek R1 向けの 1.58bit 動的量子化で説明したとおりに、Unsloth の Flappy Bird テストを実行してください。
編集
--threads 32CPU スレッド数を--ctx-size 16384コンテキスト長を--n-gpu-layers 2GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。
上記を実行すると、非常に異なる2つの結果が得られます。 標準の2-bit版: クリックして結果を表示 (発作注意!) 動的2-bit版: 以下の結果を見てください:

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

DeepSeek-R1 と同様に、V3 は61層あります。たとえば24GB GPUまたは80GB GPUでは、切り捨て後に次の層数をオフロードできると予想できます(メモリ不足になる場合は1減らしてください):
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 これは、動く閉じた六角形ではなく七角形の形の中で回転するボールをシミュレートする基本的な物理エンジンを作るテストです。


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

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

元の float8
サイズがたった230GBの動的2.7bit量子化が、実際に七角形パズルの解決に成功しました!3つのバージョンすべて(完全なfp8を含む)の完全な出力は以下です:
🕵️ 追加の発見とヒント
経験的なテストでは、低いKVキャッシュ量子化(4bit)を使うと生成品質が低下するようです。さらにテストが必要ですが、
q8_0キャッシュ量子化の使用を提案します。量子化の目的は、KVキャッシュがかなり多くのメモリを使うため、より長いコンテキスト長をサポートすることです。私たちは
down_projがこのモデルにおいて非常に量子化に敏感であることを確認しました。私たちはいくつかの動的量子化をやり直す必要がありましたが、そこで2bitsを使っていましたdown_projが、現在はこれらの行列すべてに対して最小でも3bitsを使っています。を使うと
llama.cppのFlash Attentionバックエンドは、ある程度高速なデコード速度になります。コンパイル時には-DGGML_CUDA_FA_ALL_QUANTS=ONを使ってください。なお、CUDAアーキテクチャは次のサイトで確認して設定するのが最善です https://developer.nvidia.com/cuda-gpus コンパイル時間を短縮するために、次のように設定してください-DCMAKE_CUDA_ARCHITECTURES="80"を使うと
min_p=0.01でおそらく十分です。llama.cppのデフォルトは0.1ですが、おそらく必要ありません。いずれにせよ温度が0.3なので、低確率トークンをサンプルする可能性は非常に低く、したがって可能性の低いトークンを除外するのは良い考えです。DeepSeek はコーディングタスクに対して温度0.0を推奨しています。
最終更新
役に立ちましたか?

