コンテンツに移動
Gaming

ライブサービス ゲーム向けにクラウドで ML を実行

2024年3月7日
https://storage.googleapis.com/gweb-cloudblog-publish/images/gaming.max-1800x1800.png
Google Cloud Japan Team

Gemini 1.5 モデル をお試しください。

Vertex AI からアクセスできる、Google のもっとも先進的なマルチモーダル モデルです。

試す

※この投稿は米国時間 2024 年 2 月 23 日に、Google Cloud blog に投稿されたものの抄訳です。

生成 AI は、この 1 年で多くの業界で最も注目を集めるテクノロジーとなりました。Google Cloud for Games では、オンライン ゲームのユースケースに生成 AI の可能性を最も高く見出しており、クリエイターに対してより動的なゲームの構築、より適切な収益化、より迅速な市場投入を実現できると考えています。その一環として、Google はゲーム会社が Google Cloud を利用して生成 AI をトレーニング、デプロイ、メンテナンスできる方法を検討してきました。Google がこれまで取り組んできたことと、それを今日からゲームでどのように活用できるのかについて説明していきたいと思います。本投稿では生成 AI アプリケーションに焦点を当てますが、これから説明するフレームワークは、生成型だけでなくすべての ML を念頭に置いて開発されています。

長期的に見れば、ゲームにおける生成 AI の可能性は無限大ですが、短期的に見て今後 1~2 年で業界にとって最も現実的で価値があるのは、次のようなものであると考えています。

  1. ゲーム制作
  2. 適応型のゲームプレイ
  3. ゲーム内広告

これらはそれぞれ、ゲーム開発と公開プロセスの中核部分を支えています。ゲーム制作における生成 AI(主に 2D テクスチャ、3D アセット、コードの開発)は、新しいゲームを作成する労力を軽減し、製品化までの時間の短縮とゲーム開発者の全体的な効率の向上に効果を発揮します。プレーヤーのエンゲージメントの維持や、既存のタイトルの収益化について考えると、適応型の対話やゲームプレイといったアイデアによりプレーヤーを飽きさせず、カスタムのゲーム内オブジェクトで魅了し続けることが可能です。ゲーム内広告は収益化の新たな領域を切り開き、閲覧回数に合わせて広告を高度にパーソナライズする機能だけでなく、広告の配置やゲームへの統合をパーソナライズして、閲覧回数とエンゲージメントを最適化するシームレスな広告エクスペリエンスを生み出します。AAA 級の超大作はともかく、小さなゲームの制作時間を考えてみると、個々のゲームアセットの開発には膨大な時間がかかっています。生成モデルが開発者のトイルを軽減し、スタジオ開発チームの生産性をほんのわずかでも向上させることができれば、製品化までの時間が短縮され、私たち全員にとってより良いゲームが生まれるでしょう。

今回の投稿の一部として、ゲーム向けの生成 AI フレームワークを紹介します。このフレームワークでは、Google Cloud 上でゲーム向け生成 AI を実行するためのテンプレートと、これらのライブモデルをサポートするためのデータ取り込みとストレージのフレームワークを提供します。以下でこのフレームワークのデモを説明します。具体的には、サンプルゲーム環境での画像生成とコード生成に関する 2 つのケースを紹介します。

ただ、ここで Google Cloud での取り組みに入る前に、まずはゲームにおける ML についての一般的な誤解と向き合ってみましょう。

クラウドベースの ML とライブサービス ゲームの進展

ライブゲーム サービス用にクラウドで ML を実行すると、高額な費用がかかったり、レイテンシが高くなりエンドユーザー エクスペリエンスが損なわれたりするという意見が一般的です。ライブゲームは常にクライアント / サーバー パラダイムで実行されており、多くの場合、権限を必要としない高コンピューティング負荷のプロセスはクライアントで実行することが望ましいとされています。これは一部のモデルやプロセスにとっては最適なデプロイ パターンですが、唯一の方法ではありません。クラウドベースの生成 AI、あるいは実にあらゆる形式の AI / ML が、単に実現可能なだけではなく、今日のライブゲームに必要なレイテンシをサポートしながら開発者のトイルを大幅に削減し、パブリッシャーのメンテナンス コストを削減してくれます。また、安全性も向上しています。クラウドベースの AI は攻撃、操作、不正行為からモデルを保護します。

スタジオの設定に応じて、Google Cloud は適応型ゲームのワールド向け生成モデルの完全なクラウド内デプロイまたはハイブリッド環境デプロイをサポートできます。一般的に、技術スタックとニーズに応じて 2 つのアプローチを推奨しています。

  1. ゼロから始める場合は、低レイテンシのサービス提供のために Vertex AI のプライベート エンドポイントを利用することをおすすめします。これは、低運用負荷のソリューションを探している場合や、ライブゲーム環境と相互作用しないサービスを実行している場合でも機能します。
  2. Google Cloud 上でゲームサーバーを実行している場合、特に Google Kubernetes Engine(GKE)上で運用し、その環境を利用して超低レイテンシでの配信を行おうとしている場合は、ゲームサーバーと一緒にモデルを GKE にデプロイすることをおすすめします。

では、Vertex AI から始めましょう。Vertex AI はパブリック エンドポイントとプライベート エンドポイントの両方をサポートしますが、ゲームの場合は通常、適切なレイテンシを実現するためにプライベート エンドポイントの利用を推奨しています。Vertex AI モデルはアダプタレイヤというレイヤを利用します。これには 2 つの利点があります。予測を行う際にモデル全体を呼び出す必要がないことと、開発者が行ったファイン チューニングがテナントに含まれることです。これにより、クラウドであろうとオンプレミスであろうと、モデルを自分で実行する場合と比較して、膨大なベースモデルと、それらをサポートするための関連するサービングやストレージ インフラストラクチャを扱う必要がなくなります。前述したように、以下のデモではこの 2 つを紹介します。

すでに GKE 上でゲームサーバーを実行している場合は、GKE 上で独自の ML モデルとオープンソースの ML モデルの両方を実行し、GKE のネイティブ ネットワーキングを利用することで多くのメリットが得られます。GKE Autopilot を使用したテストでは、ゲームサーバーと並行してデプロイした場合、ミリ秒未満の範囲で予測パフォーマンスを達成できることが示されています。公共のインターネット上で、従来のクライアント側デプロイで見てきたものより優れているとは言わないまでも、それと同等のミリ秒単位の低レイテンシを達成しました。GKE で実行することで費用的に影響が出る可能性を心配している場合は、もう一度考えてみてください。大多数のゲーム業界のお客様は、GKE にデプロイすることによる費用削減を実現しており、開発者の生産性も約 30% 向上しています。ML のデプロイとゲームサーバーの両方を GKE Autopilot で管理すると、運用面の負担も大幅に軽減されます。Google のテストでは、モデルを Vertex にデプロイする場合と GKE にデプロイする場合では、費用はほぼ同等であることがわかりました。

統合データ プラットフォームによりリアルタイム AI が実現

AI / ML によるパーソナライゼーションは、プレーヤーの好み、ゲームプレイ、ゲームの世界や知識に関する大量のデータに基づいて機能します。ゲームにおける生成 AI への取り組みの一環として、Google Cloud の利点を最大限に活用し、整合性と可用性を確保するデータ パイプラインとデータベース テンプレートを開発しました。

ライブゲームには強整合性が必須であり、モデルは生成的であろうとなかろうと、プレーヤーとその習慣に関する最新の情報を必要とします。モデルを常に最新かつ安全に保つには、定期的な再トレーニングが必要であり、Spanner や BigQuery などのグローバルに利用可能なデータベースは、生成 AI か他の AI かにかかわらず、モデルに入力されるデータの鮮度と安全性を確保します。現在の多くのゲームでは、ユーザーはマップ / レルムによって細分化されており、それらの間には厳格な境界線が引かれ、エクスペリエンスは確固たる決定とアクションによって制限されています。ユーザーが単一のレルムに存在するモデルにゲームが移行していくにつれて、これらのゲームには単一のグローバルに利用可能なデータストアが必要になります。ゲーム内のパーソナライゼーションには、プレーヤーの活動状況をライブで把握する必要もあります。LiveOps 環境で ML モデルを実行するには、強力なデータ パイプラインとデータ フットプリントがモデル自体と同じくらい重要です。セルフマネージドのデータセンター フットプリントにおける頻繁なモデル更新の複雑さを考慮すると、クラウドでモデルのトレーニング、デプロイ、全体的なメンテナンスを管理する方が負担を軽減できると Google は考えています。

リアルタイムのデータ パイプラインと生成モデルを組み合わせることで、プレーヤーの好みに関するプロンプトをモデルに通知したり、ゲームの状態をパーソナライズするために、場所、時期、理由を追跡する他のモデルと組み合わせたりすることもできます。現在利用可能なものとしては、ユーザーに関連する 3D メッシュを事前に生成する、プレーヤーの好みや気分に合わせてメッシュを異なる色、パターン、照明に変更する、あるいはプレーヤーが自然言語に基づいてゲーム環境を完全にカスタマイズできるようにすることなどが考えられます。これらのすべてが、プレーヤーを満足させ、ゲームに熱中させるために効果を発揮します。

デモ機能

フレームワークについて詳しく見ていきましょう。デモでは、Google Cloud のデータ、AI、コンピューティング技術をどのように連携させ、ゲームの状態をリアルタイムにパーソナライズしているのかに焦点を当てます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_live_service_games_.max-1800x1800.png

フレームワークには次のものが含まれます。

  • クライアントとサーバーの Unity

オープンソース:

  • Terraform
  • Agones

Google Cloud:

  • GKE
  • Vertex AI
  • Pub/Sub
  • Dataflow
  • Spanner
  • BigQuery

このフレームワークの一環として、Unity ストアのアセットを使用するオープン ワールドのデモゲームを Unity で作成しました。私たちはこのゲームをオープン ワールド ゲームとして設計しました。プレーヤーは NPC と対話する必要があり、ゲームの目的を達成するためにプレーヤーをアシストする動的なビルボードに導かれます。このゲームは Agones を使用して GKE 上で実行されており、複数のプレーヤーをサポートするように設計されています。わかりやすくするために、1 人のプレーヤーとそのアクションに注目します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_live_service_games_.max-1300x1300.png

さて、フレームワークに戻りましょう。バックエンドの Spanner データベースには、プレーヤーとその過去のアクションに関する情報が含まれています。また、Google マーケティング プラットフォームとの接続により、この架空のゲーム世界全体にわたるユーザーの購買習慣に関するデータも取得しています。これにより、デモゲームでプラットフォーム間のユニバーサルなプレーヤー データを収集できるようになります。Spanner はトランザクション データベースであり、BigQuery は分析データベースです。データはそれらの間を自由に行き交います。

このフレームワークの一環として、Google がプレーヤーについて知っていることすべてを活用して Vertex AI でレコメンデーション モデルをトレーニングし、ゲーム内のオファーや広告をパーソナライズできるようにしました。このデモでは、これらのモデルのことはひとまず忘れて、画像生成、NPC チャットという 2 つの生成 AI ユースケースと、適応型ゲームプレイ ユースケースでのコード生成に焦点を当てます。ゲームに推奨するデプロイ パターンとして、ゲームサーバーと並行して GKE にデプロイする方法、そして Vertex AI を利用する方法の両方を説明します。画像生成には、オープンソースの Stable Diffusion モデルを GKE でホストし、コード生成と NPC チャットには Vertex AI 内の gemini-pro モデルを使用しています。テクスチャを変更する必要がある場合、またはゲーム オブジェクトを再配置する場合、Gemini LLM を使用して、ゲーム環境内でプレハブをレンダリング、配置、構成できるコードを生成します。

キャラクターがゲーム内を歩き回る際、プレーヤーに次の動きや経路を示唆する画像を適応的に表示します。実際には、これらはゲームをテーマにした画像や広告である場合もあります。今回のケースでは、プレーヤーがゲームプレイを進めるために何を探すべきかを示唆する画像を表示します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_live_service_games_.max-1300x1300.png

上の例では、プレーヤーに向けて本に囲まれた男性を表示し、次の目的として図書館を探す必要があるかもしれないというヒントを与えています。そのヒントは、ゲームの序盤で NPC が話していた謎とも一致します。プレーヤーがビルボードに近づく、あるいはあらかじめ設定された時間ビルボードを眺めるなど、これらのビルボードを操作することで、ゲームのストーリーがそのコンテキストに適応します。

また、コード生成を使用して、その場でプレハブを読み込んで構成することもできます。以下では、現状の環境をそのまま表示し、NPC にバスの色を黄色に変更するように依頼します。これにより、バスの色とテクスチャが動的に更新されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_live_service_games_.max-1700x1700.png

テキストまたは音声でリクエストを行うと、Google Cloud 生成 AI モデルは環境内のプレハブを更新するために必要な正確なコードを生成し、それをゲーム内でライブでレンダリングします。

この例では、ゲーム内でコード生成を使用する方法を示していますが、ゲーム開発者は同様のプロセスを使用して、ゲーム環境内にゲーム オブジェクトを配置、構成して、ゲーム開発をスピードアップすることもできます。

次のステップに進んでこのテクノロジーをチェックしたい場合は、以下の GitHub リンクとリソースをぜひご覧ください。

さらに、誰もがフレームワークのすべての側面に興味があるわけではないことも承知しています。だからこそ、柔軟に対応できるようにしています。プロジェクト全体を詳しく理解するか、特定の機能の実装方法を理解するためにコードの特定の部分だけに取り組むか、選択は自分次第です。

Google Cloud 生成 AI について理解を深めたい場合は、次の有用な厳選されたリソースをご覧ください。

最後に、このプロジェクトでの作業に興味がある、あるいはプロジェクトに貢献したいとお考えの場合は、このデモの一環で使用された生成 AI サービスに焦点を当てた GitHub のコードをぜひ探索してみてください。

-Google Cloud for Games、スペシャリスト カスタマー エンジニア責任者、Patrick Smith

-Google Cloud for Games、AI / ML ソリューション アーキテクト、テクニカル リーダー、Dan Zaratsian

投稿先