目次

DeepSeekのDeepInferは、DeepSeek-V4.1-Flash向けのオープンソース推論フレームワークだ。対応ハードウェアや周辺サービスに条件があるため、使う前に環境と用途が合うか確認しておきたい。

要点#

  • 対応モデルはDeepSeek-V4.1-Flashで、NVIDIA SM100 GPUとHuawei Ascend 950 NPUをサポートする。
  • Linux、GCC 13以上、Python 3.12が必要で、NVIDIAではCUDA 13、AscendではCANN 9.2を使う。
  • speculative decodingや構造化出力、バッチ構成に左右されにくい推論などを備える。
  • 公開リリースにはKVキャッシュや負荷分散など、推論サービス全体に必要な機能がすべて含まれるわけではない。

DeepInferでできること#

DeepInferは、DeepSeekの大規模な本番推論サービスを支えるフレームワークをもとにした、オフライン推論向けの公開版だ。カーネルやモデル実行、サンプラー、並列実行の仕組みをまとめて提供する。

対応機能には、AttentionのDPやバランス型CP、MoEのEPとEPLBがある。FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelectなどの最適化カーネルも使われる。対応モデルは現時点でDeepSeek-V4.1-Flashなので、別のモデルを動かす目的なら、対応状況を先に確認しよう。

導入前に揃える環境#

実行環境はLinux、GCC 13.0以上、Python 3.12。NVIDIA環境ではCUDA 13、Ascend環境ではCANN 9.2が必要になる。ビルド前に空のPython 3.12環境を作り、有効化しておく。

NVIDIA向けのビルドは、アクセラレーターを環境変数で指定してから実行する。

setup.sh
export DEEPINFER_ACCELERATOR=nvidia
./build.sh

Ascendではnvidiaをascendに置き換える。DeepSeek-V4.1-Flash-1017のチェックポイントは、初回実行時にHugging Faceのキャッシュへダウンロードされる。ローカルのモデルを使う場合は、DEEPINFER_HF_MODEL_DIRに保存先を指定してからサンプルを動かす。

run.sh
export DEEPINFER_HF_MODEL_DIR=/path/to/DeepSeek-V4.1-Flash-1017
python examples/offline_inference.py

推論を速める設定#

DSparkとconfidence-scheduled verificationは、ドラフトトークンを使ってデコードを加速する機能だ。DEEPINFER_ENABLE_MTP_VARLEN=1で有効にし、DEEPINFER_USE_NEXTN_DECODEで最大ドラフト長を調整する。デフォルトは5。非同期スケジューリングは標準で有効になっており、CPU側のバッチ処理とデバイス実行を重ねる。

デコーダーのprefill負荷を抑えたい場合は、SWA bounded replayを設定する。V4.1のデフォルト設定では、DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compactとDEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140を指定する。保持する末尾トークン数は、SWAウィンドウと最大バックトラック長を覆う必要があるため、用途に応じた確認が欠かせない。

再現性と構造化出力#

バッチ構成が変わってもモデル結果を揃えたい場合は、NVIDIA環境でDEEPINFER_BATCH_INVARIANT=1を有効にする。同じ入力トークンとサンプリング設定で同じ出力を得るには、これに加えてDEEPINFER_ENABLE_MTP_VARLEN=0を設定し、SamplingParamsに固定のseq_seedを渡す。どちらもNVIDIAのみ対応だ。

生成結果をJSON Schema、正規表現、EBNF文法に沿わせる構造化出力にも対応する。SamplingParamsへso_argsを渡し、schema_typeとschemaを指定する。スキーマの形式やサンプルコードは、リポジトリ内のexamplesで確認できる。

サービス運用の範囲#

ベンチマークは、prefillが4基、decodeが64基のSM100 GPUで測定されており、いずれも1つのscale-up domain内の構成だ。別の構成で同じ性能が出るとは限らない。再現する場合はrun_sweep.shを参照し、評価方法はeval/README.mdで確認する。

公開版だけで推論サービス全体が完成するわけではない。KVキャッシュシステム、prefillとdecodeの分離、各レプリカへの負荷分散などは別途用意が必要だ。まずオフライン推論で動作と性能を確かめ、サービス化に必要な構成を洗い出すのが現実的だ。

次の一歩#

利用予定のGPUまたはNPUが対応対象か確認し、空のPython 3.12環境でビルドしたうえで、python examples/offline_inference.pyを実行してみよう。

出典: https://github.com/deepseek-ai/DeepInfer

目次