## Memo ## Memo with LLM ### 論文情報 - **論文のタイトル**: Ray: A Distributed Framework for Emerging AI Applications - **著者と所属**: Philipp Moritz, Robert Nishihara, Stephanie Wang, Alexey Tumanov, Richard Liaw, Eric Liang, Melih Elibol, Zongheng Yang, William Paul, Michael I. Jordan, Ion Stoica(UC Berkeley) - **カンファレンス/ジャーナル名**: 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2018) - **発表年**: 2017年(arXiv投稿)、2018年(OSDI発表) ### 論文概要 次世代のAIアプリケーションは環境と継続的に相互作用し、それらの相互作用から学習する必要があるが、既存の分散フレームワークでは訓練、シミュレーション、サービングの密接な結合要件を満たせないため、本論文では[[タスク並列]]とアクターベース計算の統一インターフェースを提供し、分散スケジューラと耐障害性ストアを用いて180万タスク/秒を超えるスケーリングを実現するRayフレームワークを提案している。 ### 詳細解説 #### 問題設定 [[強化学習]](RL)アプリケーションでは、**入力**として環境の状態、**出力**として行動を選択するポリシーが必要であり、ポリシー評価(シミュレーション)、ポリシー改善(訓練)、ポリシー提供(サービング)の3つのワークロードが密結合で実行される必要がある。**必要なデータ**には、シミュレーションから生成される軌跡データ、勾配情報、モデルパラメータなどが含まれ、これらは異なる計算ノード間で低レイテンシで共有されなければならない。 #### 提案手法 Rayは**動的タスクグラフ計算モデル**を実装し、タスク(ステートレス関数)とアクター(ステートフル計算)を統一インターフェースで提供する。システム層では以下3つの主要コンポーネントを持つ: 1. **Global Control Store (GCS)**: 全てのメタデータを管理するシャード化されたキーバリューストア - 数式例:タスク依存関係を表現する有向非循環グラフG = (V, E)で、V = {データオブジェクト, タスク}, E = {データエッジ, 制御エッジ, ステートフルエッジ} 2. **Bottom-Up Distributed Scheduler**: 2層階層スケジューラ - ローカルスケジューラがまず局所的にスケジューリング、オーバーロード時にグローバルスケジューラに転送 - スケジューリング決定の数式:推定待機時間 = キューサイズ × 平均実行時間 + リモートデータ転送時間 3. **In-Memory Distributed Object Store**: Apache Arrowベースの共有メモリオブジェクトストア - ゼロコピーデータ共有により、同一ノード内でのタスク間データ転送を効率化 #### 新規性 **先行研究との比較**では、MapReduce/Sparkは粗粒度並列処理に限定、CIEL/Daskは分散訓練とサービングサポートが不十分、Orleans/Akkaはタスク並列抽象化を欠如という問題があった。Rayの新規性は以下の通り: - タスクとアクターの統一的な動的タスクグラフでの表現 - 制御状態の論理的中央集権化による水平スケーラビリティ実現 - ボトムアップ分散スケジューリングによるミリ秒レベルの低レイテンシ達成 #### 実験設定 **使用したデータセット**:Amazon Web Services環境でm4.16xlarge CPU インスタンスとp3.16xlarge GPU インスタンスを使用。**評価指標の定義**: - スケーラビリティ:タスク処理スループット(tasks/sec) - レイテンシ:タスクスケジューリング遅延(ms) - 耐障害性:ノード障害からの復旧時間 - アプリケーション性能:Evolution Strategies(ES)とProximal Policy Optimization(PPO)での完了時間 #### 実験結果 **具体的な数値**: - 60ノードで100万タスク/秒、100ノードで**180万タスク/秒**の線形スケーラビリティ達成 - AllreduceにおいてOpenMPIを16ノード100MBで1.5倍、1GBで2倍上回る性能 - ESアルゴリズムで8192コアまでスケール、中央値3.7分で専用システムの10分を大幅短縮 - PPOでGPU使用量を4.5分の1に削減しつつ、最適化されたMPI実装を上回る性能 - GCS耐障害性テストで最大30ms以下での復旧を確認 ## Abstract 次世代のAIアプリケーションは、環境と継続的に相互作用し、これらの相互作用から学習します。これらのアプリケーションは、パフォーマンスと柔軟性の両面で、新しく厳しいシステム要件を課します。本論文では、これらの要件を検討し、それらに対処する分散システムであるRayを提案します。Rayは、単一の動的実行エンジンによってサポートされる、タスク並列とアクターベース計算の両方を表現できる統一インターフェースを実装します。パフォーマンス要件を満たすため、Rayは分散スケジューラと、システムの制御状態を管理する分散かつ耐障害性を持つストアを採用しています。我々の実験では、180万タスク毎秒を超えるスケーリングと、いくつかの困難な強化学習アプリケーションにおいて既存の特化システムよりも優れたパフォーマンスを実証しています。