Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PLaMo2シリーズのvLLM実装 / PFN LLM セミナー

PLaMo2シリーズのvLLM実装 / PFN LLM セミナー

PLaMo2シリーズは、LLM推論のためのOSSとして現在広く使われているvLLMで、公式にサポートされています。本発表では直近の大きなアップデートとなっているV1 Engineへの追従を中心に、vLLMの概要からPLaMo2シリーズ実装の詳細までをご紹介します。

イベントサイト: https://preferred-networks.connpass.com/event/368829/

Avatar for Preferred Networks

Preferred Networks PRO

October 01, 2025
Tweet

More Decks by Preferred Networks

Other Decks in Technology

Transcript

  1. 2 vLLMとは LLM推論のデファクトスタンダード - 効率的なメモリ管理・推論スケジューリング - Paged Attention - Continuous

    Batching - 多様な高速化手法のサポート - 量子化, PP/TP/DP, torch.compile, Prefix caching, Chunked prefill… - OpenAI API互換のサーバ - 主要なモデル・ハードウェアを網羅 vLLM Office Hours #33 - Hybrid Models in vLLM - September 25, 2025
  2. 3 PLaMo2 on vLLM … PLaMo2シリーズもvLLMで利用可 - v0.8.5 : PLaMo2を公式サポート

    - v0.10.1: PP/TP, torch.compile, chunked prefill - v0.10.2: V1 Engineへの対応 - Hybrid KV Cache Managerへの追従 - Schedulerの柔軟性向上 - torch.compileの対象を拡大 …vLLMの主要な高速化機能が利用可能に
  3. 5 V0 Engine(元々の実装)を基盤にコアシステムを刷新 - 実装の簡素化・CPU処理の高速化 - Cache Managerの統合 - PLaMo2ではSWAとMambaを採用

    - Schedulerの自由度向上 - Chunked prefillからの発展 - torch.compileの対象の拡大・デフォルト有効化 - PLaMo2独自のMambaにも対応 V1 Engine vLLM V1: A Major Upgrade to vLLM’s Core Architecture vLLMのアーキテクチャ
  4. 6 Continuous Batching + Scheduler (V0) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS Continuous Baching (V0) Step 6 Step 7 budget size = 10 Prompt 4 EOS - prefillとdecodeは別の反復にスケジュール - Chunked Prefillでは固定のChunk size
  5. 7 Continuous Batching + Scheduler (V1) Step 1 Step 2

    Step 3 Step 4 Step 5 EOS EOS EOS Continuous Baching (V1) budget size = 10 EOS - prefillとdecodeの区別なくスケジュール Prompt 1 Prompt 3 Prompt 2 Prompt 4
  6. 8 torch.compile (V0 Engine) Fused qk_norm, RoPE torch.compile 自動的にテンソル演算の計算グラフをキャプチャ ->

    最適化されたカーネルを生成 e.g.) PLaMo2のAttention layer - QK norm, RoPEをFuseして1つのTritonカーネルに - 約5%のスループット向上 (A100, L40S) Mamba Attention Mamba Attention …… compile_sizes=[1, 8, 16, 32, 64, 128, …..]
  7. 9 torch.compile (V1 Engine) Introduction to torch.compile and How It

    Works with vLLM - デフォルトで有効化 - 対象も拡大。特に - PLaMo2のMambaレイヤーにも対応 - TP利用時のオーバヘッドも短縮 - PLaMo2.1 8B (L40S) - Latencyが約20%向上
  8. 11 本発表でお話したこと - 推論フレームワークvLLMについて - Paged Attention, Continuous Batching -

    PLaMo2実装アップデート (以降) - v0.10.1: (PP/TP, torch.compile, chunked prefill対応) - v0.10.2: V1 Engineの対応 - torch.compileの拡大 QA - お気軽にご質問ください! おわりに
  9. 12 LLM推論最適化チームでは、 PLaMoの性能向上に一緒に取り組む仲間を募集しています! • LLMのコスト効率改善(スループット向上・レイテンシ改善・省 GPUメモリ化) ◦ 重み/KV Cache量子化、CUDAカーネル実装、推論フレームワークの改 善など

    ◦ 最新の手法を実際にサービスとしてデプロイできるようにする • Guided Decodingなど推論レイヤの技術開発 • vLLMのオープンソース開発 ご興味のある方は、ぜひアンケートからカジュアル面談にご応募ください! We’re Hiring!
  10. 15 Continuous Batching + Scheduler Prompt 1 Prompt 3 Prompt

    2 EOS EOS EOS 静的なBaching Prompt 4 EOS - 一番長いシーケンスに合わせてパディングが発生 - 後続のリクエストはbatchが終わるまで保留 Prefill Decode
  11. 16 Paged Attention [Kwon, et. al., 2023] vLLM: Easy, Fast,

    and Cheap LLM Serving with PagedAttention 仮想記憶システムのようなKVキャッシュ管理 - GPUメモリ上のKVキャッシュの - フラグメンテーション - リアロケーション によるスループット低下を解消
  12. 17 Pipeline Parallel / Tensor Parallel GPU 0 layers GPU

    1 layers GPU n layers … input GPU 0 layers … input Pipeline Parallel (PP) GPU 1 layers GPU n layers Tensor Parallel (TP)
  13. 18 Chunked Prefill Continuous Batching(後述)において - 長いprefillをchunkに分割 - prefillとdecodeを同時に処理 -

    prefill: 計算力律速 - decode: メモリ律速 を混ぜることでスループット向上 - リクエスト全体のlatencyを低減 - Time to First Tokenとはトレードオフ …PLaMo2ではMambaレイヤーでprefillとdecodeを選 り分ける処理を追加して対応 V1からはデフォルトで有効化
  14. 19 Continuous Batching + Scheduler (V0) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS Continuous Baching (V0) Step 6 Step 7 Step 8 max batch size = 10 Prompt 4 EOS - パディングは最小限 - 毎反復で動的にBatchが組まれる - Chunked prefillを使わないと prefillとdecodeは別の反復にスケジュール
  15. 20 Continuous Batching (+ 推論スケジューリング ) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS KV Cache Step 1
  16. 21 Continuous Batching (+ 推論スケジューリング ) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS KV Cache Step 2
  17. 22 Continuous Batching (+ 推論スケジューリング ) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS KV Cache Step 3
  18. 23 Continuous Batching (+ 推論スケジューリング ) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS KV Cache Step 4
  19. 24 Continuous Batching (+ 推論スケジューリング ) Prompt 1 Step 1

    Step 2 Step 3 Step 4 Step 5 Prompt 3 Prompt 2 EOS EOS EOS KV Cache Step 5
  20. 26 Tensor Parallel: MLP Choose linear layer type based on

    how parallel computation actually runs