# Ray [[University of California, Berkeley]] で開発された汎用分散フレームワーク([[@2018__OSDI__Ray A Distributed Framework for Emerging AI Applications]]、OSDI 2018)。[[Philipp Moritz]]・[[Robert Nishihara]] が均等貢献筆頭著者、[[Ion Stoica]] がシニア著者。 ## 設計思想 強化学習(RL)アプリケーションは訓練・サービング・シミュレーションという 3 つのワークロードを密結合で必要とするが、既存フレームワークはそのいずれかにしか対応していなかった。Ray は「**1 つのフレームワークで RL の全構成要素を扱う**」という目標を掲げ、以下の 3 技術で実現する。 1. **統一プログラミングモデル**: ステートレスタスク(`@ray.remote` 関数)とステートフルアクター(`@ray.remote` クラス)を同一動的タスクグラフ上に統合 2. **ボトムアップ分散スケジューラ**: ローカルスケジューラ優先、過負荷時のみグローバルへ転送する 2 段スケジューラ。ミリ秒未満のタスクディスパッチを実現 3. **Global Control Store(GCS)**: Redis シャード + チェーン複製で制御状態を一元管理。全コンポーネントをステートレスにし水平スケールを可能に ## 性能 - 100 ノードで 1.8 million tasks/s(ほぼ線形スケール) - Allreduce 16 ノード 100MB で OpenMPI 比 1.5× 高速 - サービングスループット: Clipper 比 1 桁超(100KB 入力) - PPO RL アプリケーション: 最適化 MPI 実装比でコスト 18× 削減 ## エコシステム 2018 年の OSDI 論文公開時点で A3C・PPO・DQN・ES・DDPG・Ape-X を実装済み。後に Anyscale 社が商用化し、RLlib・Ray Tune・Ray Serve・Ray Data 等のライブラリ群が整備された。現在は LLM サービング(vLLM バックエンド)でも広く使われる。 ## リポジトリ https://github.com/ray-project/ray (Sources: [[@2018__OSDI__Ray A Distributed Framework for Emerging AI Applications]])