RobloxがAI、特に生成AIを活用している分野は、ここ数年で急速に拡大しています。  このレベルのAIツールを支えるために必要なインフラを構築・最適化する3段階のプロセスの最終段階に入っています。 大規模なML推論をサポートできるハイブリッドクラウドインフラを構築するために、私たちが講じてきた措置について共有します。

先週開催されたRDCでは、生成型クリエイションを支えるマルチモーダル3D基盤モデルの開発という、最新のAIインキュベーションプロジェクトを発表しました。数百万人のユーザーが利用する、常時稼働型の没入型3Dグローバルプラットフォームを支えるAIには、膨大な計算能力が必要です。2023年初頭、当社がサポートしていた機械学習(ML)推論パイプラインは50未満でした。 現在、当社のインフラストラクチャは約250のML推論パイプラインをサポートしています。これらすべてのモデルを実行するために、2つのデータセンターとハイブリッドクラウドインフラストラクチャ全体で、数万台のCPUと1,000台以上のGPUを運用しています。そして、私たちの取り組みはまだ終わっていません。

これまでに、クリエイター向けの生成AIへの取り組みRoblox利用者の安全を守るためのAIの活用、そしてAI翻訳が世界中の人々のコミュニケーションをどのように支援しているかについてご紹介してきました。 しかし、これらはほんの一例に過ぎません。本番環境で稼働している約250のモデルにより、Roblox上のほぼすべてのインタラクションには何らかの形でAIが活用されています。ユーザーが初めてRobloxを訪れ、どのエクスペリエンスに参加するか検討している際、AIはレコメンデーションや検索システムを通じて機能しています。そして、そのユーザーがエクスペリエンスを選択してプレイボタンを押すと、マッチメイキングアルゴリズムが参加するのに最適なサーバーを特定します。

すでに数百万人のクリエイターが、当社の生成AIツールの力を活用しています。「Assistant」を使えば、シンプルなプロンプトを入力するだけでスクリプトやアクションを生成し、エクスペリエンス制作を加速させることができます。また、「Texture」や「Material Generator」ツールを使えば、オブジェクトの外観やスタイルを素早く変更・改良することが可能です。 さらに、最近リリースされた「アバター自動設定Avatar Auto Setup)」により、私たちは4D生成AIの時代へと突入しています。この機能はアバター作成プロセスを簡素化し、クリエイターの作業時間を大幅に短縮します。2024年8月現在、Roblox上で公開されているUGCアバターの体の約8%が、アバター自動設定を使用して作成されています。

私たちは現在、数年にわたり進められてきた3段階のプロセスの最終段階に入っています。この取り組みは2021年後半に始まりました。当時、統一されたRoblox AIプラットフォームが存在しなかったため、エンジニアリングチームは独自のミニプラットフォームを構築し、バラバラのフレームワークを選択せざるを得ませんでした。 各チームが、アバターマーケットプレイス、ホームページ、検索機能といった重要なコンポーネントを開発する中で、それぞれ独自のカスタム機能エンジニアリングを構築していました。チームは一元化されたフィーチャーストアを活用するのではなく、その場しのぎのソリューションを寄せ集める形をとっていました。さらに、各チームはコアプラットフォームの支援なしに、独自の最適化を開発し、推論のスケーリング課題に単独で取り組むという負担を強いられていました。このような断片化されたアプローチは、プロセスを合理化し、全体的な効率を向上させるために、統合された一元的なプラットフォームが緊急に必要であることを浮き彫りにしました。

フェーズ1:MLのための強固な基盤の構築

私たちは早い段階でKubeflowを採用し、ノートブック、パイプライン、オフライン実験、モデルサービングといったMLのコア構成要素がパッケージ化されている利点を活用しました。フィーチャーストアは依然として必要であったため、当初はサードパーティ製ソリューションを採用しました。RobloxのエンジニアがMLをより利用しやすくするため、モデルを本番環境にデプロイする際の複雑さをさらに軽減するPythonライブラリ「roblox-ml」を開発しました。

Jupyterノートブックを使用して、モデル反復に最適化された開発環境を提供し、必要なデータアクセスとGPUリソースに対応したサーバーを構成しました。トレーニングジョブのスケールアップや、モデルの再トレーニングを定期的に実行するには、通常、パイプラインを作成する必要がありました。 当社のroblox-mlライブラリにより、エンジニアはDockerイメージをビルドすることなく実行環境とソースコードをスナップショット化し、優先順位を付けてコンピュートリソースを選択し、通知を設定し、認証を処理することで、ノートブックのコードをKubeflowパイプラインに簡単に変換できるようになりました。

モデルは、適切なタイミングで適切な特徴量(フィーチャー)が揃って初めて効果を発揮します。当社のフィーチャーストアは、新しい特徴量の定義プロセスを簡素化すると同時に、100以上のフィーチャーサービス間で900を超える特徴量の共有を促進しました。これにより、特徴量のコレクションが拡大するにつれて、各チームは新しいモデルをより迅速に作成・デプロイできるようになりました。

MLパイプラインプラットフォームが機能し安定すると、パーソナライゼーション、検索、マーケットプレイスを筆頭に、オンライン推論のサポートに対する需要が高まりました。ML運用を成熟させるための通過点としてバッチ推論を推奨していますが、リアルタイム推論をサポートするために、モデルレジストリとサービングプラットフォームを開発しました。 当社のモデルレジストリにより、Robloxのエンジニアはroblox-mlを使用してモデルのアップロードやダウンロードを行うことができます。モデルにはタグが付けられ、自動的にバージョン管理されるため、トレーサビリティ、ロールバック、A/Bテストが容易になります。例えば、パーソナライゼーションモデルは毎日トレーニングとデプロイが行われており、通常、約20件のA/Bテストを並行して実行しています。 サービングプラットフォームには、KServeを採用し、基盤となるモデルサービングランタイムとしてTriton Inference Serverを使用しました。これは、その高いパフォーマンスに加え、GPUとCPUの両方を使用する複数のMLフレームワークに対応しているためです。

バッチ処理であれオンライン処理であれ、Robloxのモデルはリリース前に徹底的なテストを経ます。これには、オフライン実験、シャドウテスト、およびA/Bテストが含まれます。 リリース後も、モデルは継続的に監視され、運用面(例:推論レイテンシ)および精度の両面で期待通りのパフォーマンスを発揮しているか確認されます。安全性と健全な環境への取り組みの一環として、人間のモデレーターが推論結果に関する報告された不一致を評価しています。これにより、重要な判断を正確に行うことが保証され、モデルのトレーニングデータセットの改善にもつながります。

フェーズ2:推論のスケールアップに向けた準備 

2023年初頭、私たちは生成AIがRobloxにおける創作活動を加速させる大きな可能性を認識しました。その可能性を最大限に活かすため、2023年の大半を、MLトレーニングおよび推論インフラのパフォーマンスと効率の最適化に費やしました。 これらの最適化により、CLIP埋め込み生成の計算コストを大幅に削減できました。まず、分散トレーニングシステムを拡張し、大規模なデータセットでのトレーニングや、数十億パラメータを持つモデルを複数のワーカーノードで実行できるようにしました。 

分散ワークフローの構築を進める中で、既存のオフライン推論環境では、長期的に見られる成長ペースに対応できないことが判明しました。 当初の構成は、入力データと出力データが順次処理されるリアルタイム推論向けに設計されていました。初期段階ではうまく機能していましたが、タスク並列処理や多段階処理への対応が難しく、また現在必要とされる規模を支えるのに十分なリソース効率も備えていませんでした。さらに、エンジニアは独自のデータチャンキングやエラー処理ロジックを記述する必要があり、推論のニーズが拡大するにつれて、その作業に要する時間がますます増大していました。 

これらの課題に対処するため、バッチ推論ワークロードのスケーリングを容易にするオープンソースのコンピュートフレームワーク「Ray」のサポートを追加しました。バッチ推論向けにRayベースの分散タスクパイプラインを構築することで、リソース利用率の最適化、多段階処理の実現、堅牢なタスク並列処理と高い耐障害性の提供が可能になりました。さらに、Ray Dataライブラリを使用することで、エンジニアはわずか数行のコードでストリーミング実行を行うパイプラインを定義でき、開発者の開発速度と効率の向上に寄与しています。 これまで、バッチ推論にRayを活用することで、大幅な効率化を実現してきました。

推論のニーズが拡大し続ける中、当社はすべてのCPU推論を自社データセンターに移行しました。これにより、レイテンシやプライバシー設定をより直接的に制御できるようになりました。当社は、1日あたり7,950万人のアクティブユーザー(2024年6月30日現在)に対し、1日約10億件のパーソナライゼーションリクエストを処理しています。 このワークロードを自社データセンターに移行したことで、ユーザー体験を損なうことなく効率を維持することができました。推論コストを削減するため、多くのシステムではリクエストをキャッシュしますが、多くのユーザーが1日に何度もRobloxのホームページにアクセスするため、これでは推奨内容が古くなってしまう恐れがありました。また、これにより効率が向上し、推論を実行する場所をより適切に最適化したり、ワークロードを分散させて必要なコンピューティングリソースを削減したりできるようになりました。

スケールを続ける中で、高いスループット、低レイテンシ、コスト効率をサポートしつつ、様々なサービスに対する迅速な反復開発を可能にする、カスタムなフィーチャーストアソリューションの必要性に気づきました。既存のサードパーティ製ソリューションではこれらの要件を満たせなかったため、オープンソースプロジェクト「Feast」を基盤として、独自のカスタムフィーチャーストアを開発しました。 当社のフィーチャーストアは、バッチおよびストリーミングの両方のフィーチャーに対する変換を定義するための、カスタムドメイン固有言語(DSL)を提供しました。リアルタイムフィーチャーを実現するためのストリーム処理エンジンとしてFlinkを採用しました。これは、可能な限り最新の情報を組み込む必要があるモデルにとって不可欠でした。その対極にあるのが、分散環境でRobloxゲームエンジンを再実行し、膨大な数の3Dアセットをバッチ処理して導出する必要があるフィーチャーでした。 現在、当社のフィーチャーストアは1日あたり約300億件のレコードを取り込み、約700億件のレコードを提供しており、P99レイテンシは50msです。また、100以上のフィーチャーサービスをサポートしています。

また、NLP、コンピュータビジョン、レコメンデーションシステムなどにおける意味理解への需要の高まりを背景に、モデルによる埋め込み(Embedding)の利用も急速に拡大しました。これを受けて、ベクトルを高次元点として効率的に保存・検索するためのベクトルデータベースを構築しました。このベクトルデータベースにより、最寄隣接検索が高速化され、マルチモーダル検索やコンテンツ違反検出などの機能を実現しています。

MLモデルを利用するチームが増えるにつれ、スケールメリットを追求し、エンジニアがより迅速に成果を上げられるよう支援するため、独自のグラウンドトゥルースチームを設立しました。このチームは、エンジニアが独自のデータセット生成パイプラインを設計し、人間の評価者を活用してデータをトレーニングおよび検証し、高品質なデータを提供できるよう支援しています。これにより、データパイプラインの構築やデータセットの検証プロセス、さらにはデータの提供・追跡・監視のフォーマットを標準化することができました。

フェーズ3:大規模推論の実用化

Roblox Assistantのリリースに伴い、処理されるトークンの数は週あたり15億件にまで増加しました。 また、リアルタイムAIチャット翻訳音声安全モデル(現在はオープンソース化)などの新機能をリリースしたことで、推論能力への需要が大幅に増加しました。私たちはAIアプリケーション開発を加速させるため、2つの主要プロジェクトに着手しました。それは、MLゲートウェイと、vLLMプロジェクトを基盤とした大規模言語モデル運用(LLMOps)プラットフォームです。これら2つのプロジェクトは、Robloxにおける次世代MLの基盤となるものです。

当社は、クラウドおよびオンプレミスのCPUやGPUなど、多様な環境にまたがるオープンソースおよび自社開発のあらゆる大規模モデルへのアクセスを一元化するため、統合MLゲートウェイを構築しました。その目的は、社内のAIリソースを管理するための効率的で合理化されたシステムを構築することにありました。バックエンドにおいて、このゲートウェイは共通のAPIインターフェース、ユーザーフレンドリーな設定オプション、および展開済みの全モデル間での効率的なリソース共有を提供します。

このゲートウェイは、生成AIワークロードに対するトークン数に基づく一元的なスロットリングや、リージョン間のレイテンシを考慮したロードバランシングを提供することで、推論サービスの耐障害性を向上させました。さらに、APIキー管理を一元化してセキュリティを強化し、包括的な使用状況の追跡や権限管理の導入を可能にし、監視ツールと連携して可観測性を向上させます。これらの機能はすべて、大規模モデルの活用を最適化し、コストを削減し、Roblox全体のエンジニアに有益な知見を提供するのに役立ちます。 

さらに、LLMの主要な推論エンジンとしてvLLMを採用し、その高性能な機能を活用してRoblox全体のAIアプリケーションを駆動しています。vLLMへの移行以来、レイテンシとスループットの両方で約2倍の改善が見られ、現在は週に約40億トークンを処理しています。

vLLMの採用は、膨大なユーザーベースと多様な体験のニーズに応えるために、効率的にスケール可能なオープンソースおよび最先端技術を活用するという当社のコミットメントに沿ったものです。RobloxはオープンソースのvLLMプロジェクトに積極的に貢献しており、vLLMのマルチモーダル対応開発を主導しています。これにより、エンジンはテキストだけでなく画像にも対応し、将来的には他の種類のデータも処理できるようになります。 また、推論パフォーマンスをさらに向上させるため、推測的デコード技術も実装しており、これにより言語タスクの処理をより高速かつ効率的に行えるようになっています。 

MLゲートウェイとvLLMを活用することで、Roblox全体で使用されている数百ものMLパイプラインを効率的にサポートし、AIを活用した機能への需要が拡大し続ける中で、推論のスケールアップを継続できます。そして、この取り組みはまだ始まったばかりです。RobloxにおけるAIの未来に向けて、私たちは大きな計画を掲げています。 初心者からエキスパートまで、すべてのクリエイターがより効率的に創作活動を行えるよう、新しいAI搭載ツールの開発に取り組んでいます。また、これまでと同様に、当社およびクリエイターが日常的に使用するAIツールをより良くサポートするため、インフラのパフォーマンスと効率性を向上させる方法についても検討を続けています。 

オープンソースへの取り組み

私たちは、数多くの成功したオープンソースプロジェクトの成果の上に、ここまで歩んできました。当社の技術スタックの多くは、前述のオープンソース技術を用いて構築されています。

私たちは、オープンソースAIコミュニティにおける強力なパートナーとなり、独自のオープンソース技術を提供することに尽力しています。先日、初のオープンソースモデルである「音声安全分類器」を発表しました。現在、MLゲートウェイの開発を進めており、これもオープンソース化することを目指しています。AIの未来には、オープンさと透明性が不可欠であると信じており、このコミュニティの積極的な一員となれることを嬉しく思います。

Share.

Comments are closed.