コンテンツにスキップ
AI

ONNX Runtime 1.32.0がMoEモデルのCPU/GPU分散処理を実現

ONNX Runtime 1.32.0がMoEモデルのCPU/GPUオフロードを可能にした。VRAMの制約を緩和するが、レイテンシへの影響は実機ベンチマークで要確認。

読了時間:2分 編集方針

MicrosoftはONNX RuntimeのCUDAプラグインをアップデートし、一部のMixture of Experts(MoE)モデルをGPUメモリに完全収まらない環境でも実行できる機能を導入した。2024年11月14日にリリースされたCUDAプラグイン0.4.0は、使用頻度の低いエキスパートをCPUにオフロードし、処理に必要なエキスパートはGPU上に保持する仕組みを提供する。この機能を利用するにはONNX Runtime 1.32.0が必須となる。

CPU/GPUオフロードの仕組み

Mixture of Expertsモデルは、複数の特化型サブネットワーク(エキスパート)で構成される。入力に応じてシステムがその一部のみを活性化する設計だ。新たなエキスパートオフロード機能はこの構造を活用する。エキスパートはシステムメモリに保存しておき、必要なときだけGPUに転送できるため、モデル全体をデバイス上に保持するために必要なVRAM量を削減できる。

ONNX Runtimeには2種類の動作モードが用意されている。自動モードでは、GPUに空きがあればエキスパートをGPU上で処理し、メモリが不足する場合はハイブリッド実行に切り替える。強制モードでは、設定した要件でモデルを管理できない場合にセッションの作成自体を失敗させる。設定はセッションオプションで行うため、モデル自体を変更する必要はない。

VRAMは節約できるが、レイテンシの実測が不可欠

このアップデートにより。互換性のあるMoEモデルを実行できるハードウェア構成の幅が広がる可能性がある。ただし、あらゆるモデルがあらゆるGPUで動作するわけではない。サポートはQMoEや互換性のある量子化モデルなど、特定のノードおよびフォーマットに限定される。

パフォーマンスのトレードオフも個別に検証が必要だ。処理の一部をCPUに移すことでグラフィックメモリへの負荷は軽減されるが、MicrosoftのリリースノートにはレイテンシがどのCPU程度増加するかの具体的な数値は示されていない。結果はモデル、量子化方式、CPU、システムメモリ、GPUの組み合わせによって変わる。

対応バージョンの要件

CUDAプラグイン0.4.0はONNX Runtime 1.32.0と組み合わせて使用する。MoEオフロードをはじめとする一部の機能は、メインランタイムに導入された新しい能力を必要とする。Microsoftはバージョンを揃えることを推奨しており、オペレータースキーマの差異が誤った実行やクラッシュを引き起こす可能性があると警告している。

今回のリリースには。GGUFおよびブロックパック済みウェイトへのサポート、量子化カーネル、長いコンテキスト向けの最適化、推測的デコーディングの改善も含まれる。モデルを開発・配布する開発者にとって核心となるのは、ビデオメモリが制約となる場面でCPUとGPUを連携させて活用できる点だ。実際の能力と速度における恩恵は、実際のハードウェアとモデルでベンチマークを取って評価する必要がある。

出典: ONNX Runtime CUDAプラグイン EP 0.4.0 · ONNX Runtime 1.32.0

プロモーションコンテンツ