powered by TechFeed
表示モード
Deep Dive

DeepSeek-V4.1 FlashのKVキャッシュをトークンあたり890バイトに圧縮する新アーキテクチャ — 「これはV5 Flashと呼ぶべき代物だ」

9月17日、zartbot(個人ブログのURLドメインから個人開発者と推定される)が「DeepSeek-V4.1 Flash: Pushing the Limits of KV Cache Compression · zartbot」と題した記事を公開した。DeepSeek-V4.1 FlashのKVキャッシュ圧縮技術とモデルアーキテクチャの詳細を、テクニカルレポートの精読をもとに解説した内容だ。

9月17日、zartbot(個人ブログのURLドメインから個人開発者と推定される)が「DeepSeek-V4.1 Flash: Pushing the Limits of KV Cache Compression · zartbot」と題した記事を公開した。DeepSeek-V4.1 FlashのKVキャッシュ圧縮技術とモデルアーキテクチャの詳細を、テクニカルレポートの精読をもとに解説した内容だ。


「DeepSeek-V5 Flash」と呼ぶべき存在

zartbot氏は冒頭でこう述べている。「リリース当初はポストトレーニングの改良版だと思っていたが、使ってみると420 Tokens/sという速度を叩き出し、さらにDeepSeek-V4 Proシリーズの全モデルがオフラインになると聞いて、ただごとではないと感じた」。

ここで言う「DeepSeek-V4 Proシリーズの全モデルがオフラインになった」とは、V4.1 Flashのリリースに合わせて旧来のProシリーズが実際にサービス停止されたという出来事を指す。単なるバリアント追加ではなく、世代交代と受け取るべき出来事として氏は捉えている。テクニカルレポートを読み込んだ末の結論は「これはDeepSeek-V5 Flashと呼ぶべき代物だ」というものだ。

その理由はアーキテクチャの根本的な刷新にある。


KVキャッシュ圧縮が必要な理由

LLMの推論において、KVキャッシュ(Key-Valueキャッシュ)とは、Transformerの各レイヤーが過去トークンのAttentionを計算する際に保持する中間データのことだ。コンテキスト長が伸びるほど、このキャッシュのサイズは膨大になり、HBM(高帯域幅メモリ)やSSDへの負荷が増す。

近年、Long-horizon Agentワークフローの普及によってコンテキストがどんどん長大化しており、ツール呼び出しによるPrefill(プロンプトの初期処理)計算の負荷も重くなっている。こうしたワークロードの変化がKVキャッシュ管理をLLMスケーリングの主要な障壁に押し上げているというのが、本モデル開発の出発点だ。

DeepSeek-V4.1 Flashはこの問題に対し、単一の最適化手法ではなく、チャネル・シーケンス・レイヤーの3次元にわたる複合的アーキテクチャ変更で応えている。


圧縮の核心:トークンあたり890バイトへ

DeepSeek-V4.1 Flashが達成したKVキャッシュの削減量は以下のとおりだ。

  • ランタイムKVキャッシュ: DeepSeek-V4-Flash比で約1/4
  • 永続KVキャッシュ(プレフィックス再利用用): DeepSeek-V4-Flash比で約1/8
  • 最終的な格納量: グローバルメインKVとIndexerの合計でトークンあたり約890バイト

この圧縮は、3つの次元での最適化を組み合わせることで実現している。

チャネル次元:512次元の潜在ベクトル1本で、全Attentionヘッドが必要とするKeyとValueの表現を共有する。DeepSeek-V2で提案されたMLA(Multi-head Latent Attention)をさらに発展させた手法だ。

シーケンス次元:Encoderが隣接する2トークンをチャネル方向の学習済み重みで1エントリに集約する。Decoderはトークン単位のエントリを保持する。

レイヤー次元(CSA2):Cross-layer Shared Attention with Sparse Selectionの略と解釈される本手法では、複数レイヤーがグローバルKVを共有する。ネットワーク全体でEncoderキャッシュを3コピー、Decoderキャッシュを1コピーだけ保持する設計だ。レイヤー間KV共有の着想はYOCO(You Only Cache Once)などの先行研究とも接続する。

さらにFP4量子化を組み合わせることで、上記の890バイト/トークンを実現している。


アーキテクチャの核:Causal Encoder-Decoder(CED)

モデルは全40レイヤーから構成されるが、ここに大きな工夫がある。前半20レイヤーがEncoder、後半20レイヤーがDecoderとして機能するCED(Causal Encoder-Decoder)アーキテクチャを採用している。

このアーキテクチャの着想源はYOCO(You Only Cache Once)の研究だ。単一のデコーダスタックにEncoderとDecoderの役割分担を持ち込むことで、KV保持コストを構造的に削減する。

設計の肝は「DecoderのグローバルKVは、EncoderのFinal Hidden Stateを投影して得る」という点だ。これにより、長いプロンプトのほとんどのトークンは前半20レイヤーを通過するだけで済む。特にAgentワークフローのように入力が支配的なシナリオでは、Prefillコストが大幅に削減される。

結果として:

  • Prefill時の活性化パラメータ数: 約8B(入力処理が中心のAgentシナリオで大幅なコスト削減)
  • Decode時の活性化パラメータ数: 約16B

モデル全体のパラメータ規模は552B(Mixture-of-Experts構成)だが、実際に使用されるパラメータはその一部にとどまる。

zartbot氏はこのCEDアーキテクチャをRecursive Transformerの一形態として捉え直している。「QをModifyしながらKVを再利用する再帰的な処理として見ると、構造が一気に明確になる」というのが氏の見立てだ。


モデルの主要パラメータ

技術的な詳細を把握したいエンジニア向けに、主要なパラメータを示す。

カテゴリ 項目
Backbone 隠れ次元 5120
Backbone 総レイヤー数 40(前半20:Encoder / 後半20:Decoder)
Attention ヘッド数 64
Attention KV潜在次元 512
Attention スライディングウィンドウサイズ 128
CSA2 グローバルKVソースレイヤー [2, 8, 14, 20]
CSA2 Sparse Attention Top-K 512
MoE 総エキスパート数 / 活性化数 384 / 6(Top-6)
コンテキスト長 最大対応 1Mトークン

その他の機能

DSpark投機的デコーディング:追加の3レイヤーSWA-128ドラフトブロックを持ち、Top-3/128のMoEで5トークンを並列ドラフト。マルコフヘッドで依存関係をモデリングし、信頼度ヘッドで検証長を決定する。

mHC(multi-stream Hierarchical Composition):各トークンが4本の残差ストリームを維持する、本モデル独自のマルチストリームアーキテクチャだ。Sinkhorn反復20回で二重確率行列に近い残差混合行列を実現し、カーネルフュージョンを容易にする。複数の情報経路を並列に保つという点では、Highway NetworksMixture of Depthsといった先行研究の流れを汲む設計思想とも共鳴する。

マルチモーダル対応:ViT(32レイヤー、隠れ次元1024)を搭載。patch_size=14、3×3ダウンサンプリングで視覚トークンを1/9に削減し、1画像あたり最大1024トークンに制限する。対応解像度は最大約1344×1344ピクセル。

Engram条件付きメモリ:レイヤー1と14に注入される、N-gramベース(最大N=4)の外部メモリ機構だ。約1600万エントリのテーブルを持ち、頻出するトークン列のパターンをKVルックアップで補強する。N-gramを外部メモリとしてTransformerに組み込む発想は、RETROなど検索拡張型アーキテクチャの研究と問題意識を共有する部分がある。


コンテキスト長が1Mトークンの範囲内では、DeepSeek-V4.1 Flashの必要計算量はほぼ線形に増加し、旧世代モデルと比べて計算オーバーヘッドが大幅に小さいとレポートは報告している。KVキャッシュ管理がLLM運用の根本的なボトルネックになりつつある今、チャネル・シーケンス・レイヤーの3軸を同時に最適化するという設計思想は、モデルアーキテクチャを深く理解したいエンジニアにとって読み応えのある内容だ。

詳細はDeepSeek-V4.1 Flash: Pushing the Limits of KV Cache Compression · zartbotを参照していただきたい。