NVIDIAのLooped LLM「Dory1.0-4B」とは?層の繰り返しで性能を高める新アーキテクチャ解説

LLM理論

※本記事は一次情報をもとにAI支援によって構成・作成し、事実関係の照合を行っています。

研究内容(事実)

NVIDIAは、共通のレイヤーブロックを繰り返し適用するループ型(latent-recurrent)の大規模言語モデル「NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16」を公開しました。本モデルは総パラメータ数4Bのモデルであり、正規化されたGPT(normalized-GPT)アーキテクチャをベースに、スライディングウィンドウアテンション(SWA)とフルアテンション層をインターリーブさせたハイブリッド構成を採用しています。

モデルの主な仕様として、コンテキスト長は最大256Kトークンをサポートし、オープンソースのOpenMDW License Agreement version 1.1のもとで商用・非商用を問わず利用可能です。また、BF16、MXFP8、NVFP4、Q5_K_Mなどの複数のフォーマットで提供されています。

graph TD
    A["Dory1.0"] --> B["Looped Architecture"]
    B -->|1〜4回の反復| C["Latent Space Thinking"]
    C --> D["推論結果"]
    A -->|効率化| D

この記事のポイント

  • 弾力的な推論計算(Elastic Inference Compute):単一のチェックポイントから、共有層の適用回数を変更することで、再学習やモデルの差し替えなしにタスクに応じた推論コストと精度のトレードオフを調整できます。
  • トークン効率の向上:ループ処理によって生成トークン数を減らし、追加の計算量を長い出力ではなく潜在空間での思考に割り当てます。
  • メモリ効率の高いループ(Memory-Efficient Looping):最終ループのKVキャッシュを保持する「last-loop KV caching」に対応しており、ループ回数に関わらず非ループモデルと同等のKVキャッシュオーバーヘッドを維持できます。
  • ネイティブNVFP4事前学習:nGPTバックボーンをベースに、NVIDIAの4ビット浮動小数点フォーマットであるNVFP4でネイティブに事前学習が行われています。

何が可能になるのか・考えられる応用例

公式の記述によれば、同じモデルの重みを維持したままループ回数(n_recurrent_loops)を変更できるため、計算コストを最小限に抑えたい場合は1ループ、コーディングやエージェントタスク(Terminal-BenchやSWE-benchなど)で精度を重視する場合は4ループを選択するといった柔軟な運用が可能になります。

筆者の推測では、この弾力的な推論計算の仕組みにより、API提供時におけるリクエストごとのコストや応答精度の動的チューニングが容易になり、エッジデバイスやクラウド環境の両方でリソース制約に応じたきめ細やかな運用設計ができるようになると考えられます。

今後の課題・制約

vLLMでのDoryサポートは、執筆時点においてPR(vllm-project/vllm#60149)のレビュー段階であり、正式なvLLMリリースには含まれていないため、利用時には該当PRからのインストールが必要という制約があります。

考察(筆者の見解)

事実:Dory1.0-4Bは、共有レイヤーのループ回数を増やすことで、コーディングやエージェント性能などのベンチマークスコアが向上することが示されています。

推測:パラメータ数を巨大化させずに計算量を投下して推論時の知性を拡張するアプローチは、今後の小型LLMの効率化トレンドにおいて重要な選択肢になると見られます。

意見:筆者は、KVキャッシュのオーバーヘッドを抑制する仕組みを備えた点も含めて、実運用におけるハードウェアコストの壁を低くする優れたアプローチであると考えます。

実践するには

vLLM環境でDoryを利用するには、執筆時点で以下のコマンドを用いてPRからインストールを行う必要があります。

VLLM_USE_PRECOMPILED=1 pip install "git+https://github.com/vllm-project/vllm.git@refs/pull/60149/head"

また、vllmでサービングを行う際のコマンド例は以下の通りです。

vllm serve --model nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-BF16 \
 --hf-overrides '{"n_recurrent_loops": 2, "recurrent_kv_cache_mode": "per_loop"}' \
 --max-model-len 262144 \
 --max-num-seqs 128 \
 --enable-prefix-caching \
 --async-scheduling \
 --reasoning-parser nemotron_v3 \
 --tool-call-parser qwen3_coder \
 --enable-auto-tool-choice

デフォルトの推奨設定としては、精度と計算量のバランスが良い2ループが推奨されています。

出典・参考リンク

コメント

タイトルとURLをコピーしました