Ray Projectは、分散コンピューティング向けに設計されたオープンソースフレームワークであり、主に人工知能と機械学習におけるPythonベースのワークロードを対象としています。単一のラップトップから大規模クラスターまでアプリケーションをスケールさせるための統一されたプログラミングモデルを提供し、並列実行、フォールトトレランス、リソース管理の複雑さに対処します。Rayは、深層学習のトレーニングから大規模言語モデルアプリケーションのサービス提供、複雑なシミュレーションの実行まで、産業界と学界で広く採用されています。
Rayは当初、カリフォルニア大学バークレー校のバークレー人工知能研究所(BAIR)で開発され、2018年に最初のパブリックリリースが行われました。このプロジェクトは、Robert Nishihara、Philipp Moritz、Ion Stoicaを含むチームによって創設され、彼らは後にRayのマネージドプラットフォームを提供する企業であるAnyscaleを設立しました。このフレームワークはその後、多数の組織からの貢献と活発な開発者コミュニティにより、実質的なオープンソースエコシステムへと成長しました。
コアアーキテクチャ
その中核において、Rayはタスクとアクターという2つの基本的なプリミティブを提供します。タスクはクラスター全体で並列に実行できるステートレスな関数であり、アクターは自身の状態を維持し、リモートで呼び出せるステートフルなオブジェクトです。これらのプリミティブは、分散スケジューラーと共有メモリオブジェクトストアの上に構築されており、並列プロセス間の効率的なデータ共有を可能にします。このアーキテクチャは柔軟性を考慮して設計されており、開発者は最小限のコード変更で細粒度および粗粒度の並列性を表現できます。
Rayランタイムは、クラスターメタデータを管理するグローバルコントロールストア(GCS)、ノードにタスクを割り当てる分散スケジューラー、データ転送を処理するオブジェクトストアなど、いくつかのコンポーネントで構成されています。この設計により、Rayは数千ノードにスケールし、高スループットと低レイテンシでワークロードを処理できます。また、フレームワークには、ハイパーパラメータチューニング用のRay Tune、モデルサービス提供用のRay Serve、強化学習用のRay RLlibなど、コア上に構築されたライブラリスイートも含まれています。
分散トレーニングとAIワークロード
Rayは、特に深層学習と生成AIアプリケーション向けのニューラルネットワークモデルの分散トレーニングにおいて、人気のある選択肢となっています。TensorFlowやPyTorchなどの主要な機械学習フレームワークと統合し、専用の分散トレーニングシステムに代わる軽量で柔軟な代替手段を提供します。Rayの動的タスクグラフを処理する能力は、トランスフォーマーモデルや残差ネットワークアーキテクチャを含む複雑なトレーニングパイプラインに適しています。
強化学習ワークロード向けには、Ray RLlibが幅広いアルゴリズムをサポートするスケーラブルで本番環境対応のライブラリを提供します。これは、ロボティクス、ゲームプレイ、自律システムの研究で使用されてきました。一方、Ray Serveは、機械学習モデルをスケーラブルなHTTPエンドポイントとしてデプロイすることを可能にし、バッチ処理、リクエストルーティング、動的スケーリングなどの機能をサポートします。これらのツールにより、Rayは多くのAI企業や研究ラボのインフラストラクチャにおける重要なコンポーネントとなっています。
エコシステムと統合
Rayのエコシステムはコアライブラリを超えて拡張されており、主要なクラウドプロバイダーやデータ処理ツールとの統合が含まれます。これはAmazon Web Services、Azure、Google Cloud上でネイティブに動作し、Kubernetesクラスター上にデプロイできます。また、RayはApache SparkやDaskなどのデータ処理フレームワークとも統合し、ユーザーが分散データ処理と機械学習ワークロードを組み合わせることを可能にします。このプロジェクトはオープンソースコミュニティで強い存在感を持ち、定期的なリリースと増え続けるサードパーティライブラリを特徴としています。
このフレームワークの採用はAI業界で顕著であり、OpenAI、Anthropic、Google DeepMindなどの企業がさまざまな研究および本番タスクにRayを使用しています。その柔軟性とパフォーマンスにより、大規模モデルのトレーニングからリアルタイム予測のサービス提供まで、AIワークロードをスケールさせるための標準ツールとなっています。また、このプロジェクトは学術研究でも使用されており、多くの論文やプロジェクトが分散実験にRayを活用しています。
コミュニティとガバナンス
RayはApache 2.0ライセンスのオープンソースプロジェクトであり、開発はAnyscaleが主導し、グローバルコミュニティからの貢献を受けています。プロジェクトはGitHub上で活発なリポジトリを維持し、広範なドキュメント、チュートリアル、例を提供しています。ガバナンスはコミュニティ参加を促進するように構成されており、運営委員会とワーキンググループがプロジェクトのさまざまな側面を監督しています。定期的なミートアップ、カンファレンス、オンラインフォーラムは、ユーザーと開発者が知識を共有し協力するためのプラットフォームを提供します。
プロジェクトのロードマップは、パフォーマンス、ユーザビリティ、および新興AIパラダイムのサポートの向上に焦点を当てています。最近の開発には、Rayのスケジューリングアルゴリズムの強化、大規模言語モデルサービス提供の改善、Amazon Web Servicesやその他のクラウドプラットフォームとの統合の向上が含まれます。2024年現在、Rayは進化を続けており、分散コンピューティングをより幅広い開発者と研究者にアクセスしやすくすることに重点を置いています。
影響と今後の方向性
Ray Projectは、分散コンピューティングとAIインフラストラクチャの分野に大きな影響を与えてきました。スケーラブルなアプリケーションを構築するための参入障壁を低くし、小規模なチームや個人の研究者が分散リソースを効果的に活用できるようにしました。その設計は他のフレームワークに影響を与え、学術文献で広く引用されています。プロジェクトの成功は、その大規模なユーザーベースに反映されており、数百万回のダウンロードとさまざまな業界の本番環境へのデプロイがあります。
今後、Rayは、特にモデルがサイズと複雑さを増すにつれて、次世代のAIシステムにおいて重要な役割を果たす位置にあります。データ処理からモデルトレーニング、サービス提供まで、異種ワークロードを処理するフレームワークの能力は、エンドツーエンドのAIプラットフォームを構築するための多用途な基盤となります。コミュニティからの継続的な貢献とAnyscaleの支援により、Ray Projectは今後も当面の間、AIインフラストラクチャの状況の中心的な部分であり続ける可能性が高いです。