LLM推論エンジン間でattentionのKVキャッシュを保存・共有・再利用し、time-to-first-tokenを短縮する管理レイヤー。
microsoft/vidur
GPUなしで性能調査やデプロイ計画、スケジューリング案の検証ができる、高精度なLLM推論システムシミュレーターです。
- スター
- 720
- フォーク
- 142
- 未解決の Issue
- 24
- 最終コミット
- 3 か月前
これは何?
Vidurは、GPUクラスター上で大規模言語モデルがリクエストを処理する様子をシミュレーションします。指定したワークロード、モデル、ハードウェア構成に基づき、time to first token(TTFT)、出力トークンあたりの時間(TPOT)、リクエストのエンドツーエンドレイテンシ、バッチサイズなどの指標をモデル化します。実際のGPUで短時間の初期プロファイリングを行った後は、GPUを使わずに実験を実行できます。
主な用途は、さまざまなトラフィックパターンにおけるモデルの挙動の調査、最も費用対効果の高いデプロイ構成の探索(たとえば、特定のSLOを満たすテンソル並列・パイプライン並列の設定)、投機的デコーディングなどの新しいスケジューリングアルゴリズムや最適化のプロトタイピングです。対応モデルはLlama-2、Llama-3、CodeLlama、InternLM、Qwenで、A100、H100、A40のノード構成を利用できます。ワークロードには合成ジェネレーターやAzure LLM inference tracesを利用でき、結果はwandbまたはローカルファイルに記録され、Chrome traceとしてもエクスポートできます。
主な機能
- 01LLMサービングのワークロードについて、TTFT、TPOT、エンドツーエンドレイテンシ、バッチサイズを推定します。
- 02対象ハードウェアで初期プロファイリングを行った後は、GPUなしで実行できます。
- 03複数のGPUノードタイプで、テンソル並列とパイプライン並列の組み合わせに対応します。
- 04合成リクエストジェネレーターとAzure LLM inference tracesを利用できます。
- 05Chrome traceをエクスポートし、wandbまたはローカルの出力ディレクトリに指標を記録します。
- 06新しいスケジューラーや最適化を試せるよう拡張できます。
ユースケース
- レイテンシ目標を満たす最も低コストなデプロイ構成を見つけるためのキャパシティプランニング。
- 同じトラフィックトレースを使ったスケジューリングポリシーの比較。
- 実際のGPUで実装する前に、投機的デコーディングなどのサービング最適化を研究する。
- モデルサイズや並列化設定がサービング性能に与える影響を調査する。
クイックスタート
- 1
Python 3.10でvenvを作成する
python3.10 -m venv .venv - 2
仮想環境を有効化する
source .venv/bin/activate - 3
依存関係をインストールする
python -m pip install -r requirements.txt - 4
リポジトリのルートからシミュレーターを実行する
python -m vidur.main
使う前に知っておきたいこと
- Python 3.10が必要です。また、新しいモデルやSKUでは最初にGPUプロファイリングを行う必要があります。
- サポート対象のモデルとハードウェアは、記載されている構成に限られます。
- プレフィックスキャッシュなど、一部の機能はcanaryブランチでのみ利用できます。
収録されている特集
トピック
よくある質問
- vidur とは?
- GPUなしで性能調査やデプロイ計画、スケジューリング案の検証ができる、高精度なLLM推論システムシミュレーターです。 Vidurは、GPUクラスター上で大規模言語モデルがリクエストを処理する様子をシミュレーションします。指定したワークロード、モデル、ハードウェア構成に基づき、time to first token(TTFT)、出力トークンあたりの時間(TPOT)、リクエストのエンドツーエンドレイテンシ、バッチサイズなどの指標をモデル化します。実際のGPUで短時間の初期プロファイリングを行った後は、GPUを使わずに実験を実行できます。
- vidur は無料で使えますか?ライセンスは?
- vidur は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- vidur は今もメンテナンスされていますか?
- 半年以内に更新あり。vidur の最終コミットは 2026年8月24日 です。
- vidur は何に使えますか?
- レイテンシ目標を満たす最も低コストなデプロイ構成を見つけるためのキャパシティプランニング。 同じトラフィックトレースを使ったスケジューリングポリシーの比較。 実際のGPUで実装する前に、投機的デコーディングなどのサービング最適化を研究する。 モデルサイズや並列化設定がサービング性能に与える影響を調査する。
- vidur のインストール方法は?
- Python 3.10でvenvを作成する: python3.10 -m venv .venv 仮想環境を有効化する: source .venv/bin/activate 依存関係をインストールする: python -m pip install -r requirements.txt リポジトリのルートからシミュレーターを実行する: python -m vidur.main
- vidur はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/microsoft/vidur
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
vLLM推論エンジンを使ったOpenAI互換LLMエンドポイントをデプロイする、Runpod Serverless向けワーカーテンプレート。
SIMDベクトル化とマルチスレッドを活用した、単一ファイルの純粋なMojoによるLlama 2風Transformerの推論実装。
vLLM、SGLang、TensorRT-LLMでAIモデルをデプロイし、オンデマンドのSSH GPUインスタンスも提供するオープンソースのGPUクラスターマネージャー。
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
ローカル、プライベート、クラウドのバックエンドを対象に、リクエストごとにLLMを選択または組み合わせ、単一のAPIエンドポイントで提供する、オープンでプログラム可能な判断レイヤー。