Amazon Cloud Technology のゲーム操作向け AI グラフィックス ソリューション

Stable Diffusion などの AI マッピング ソリューションが徐々に普及するにつれて、ますます多くのシナリオが開発され、実装されています。その中で、ゲームCサイドプレイヤー向けのAI写真生成マーケティング活動のシナリオが徐々に検証されつつある。あるゲームコミュニティでは、プレイヤーが携帯電話からワンクリックで写真をアップロードすると、AIが自動的に写真内の要素を識別するというものだ。写真をゲーム内の写真に差し替えることで、対応するキャラクターやアイテム、差し替えられた写真がプレイヤーによってさらに拡散され、イベントの影響力が拡大します。このようなアクティビティは、新しいゲーム バージョンのリリース、展示会、その他のシナリオで使用されており、プレイヤーとゲームの間の粘着性を効果的に高めることができ、プレイヤーがゲームのプロモーション アンバサダーとなり、新しいプレイヤーをゲームに引き付けることができます。

 この記事では、ソリューション構造 (ゲーム AI マッピング アクティビティ) を効率的に構築する方法について説明します。重要なポイントは次のとおりです。

  • ゲームスタイルとマテリアルのAIモデルが含まれており、対応する推論アルゴリズムをデバッグします。

  • ゲーム プレイヤーに効果的にリーチするクライアントは、ゲーム クライアント自体、または海外では Discord、国内では Fanbook や WeChat などのゲーマーの共通の集会場所などのソーシャル メディアです。

  • 大量の同時グラフ要求を処理するために迅速に拡張できる一連のバックエンド アーキテクチャ: このソリューションは、EFS、Bottlerocket、GPU タイム スライシング仮想化、Karpenter などのコンポーネントを備えた EKS をバックエンド アーキテクチャとして使用します。デモンストレーション。

 ソリューションアーキテクチャ

 計画は大きく 2 つの部分に分けることができます。

 クライアントとリクエストのアクセス層:

 まず、クライアントとして Discord を選択します。Discordは、音声、ビデオ、テキストチャットを統合したサービスソフトウェアです。最初はビデオ ゲーム コミュニティに提供されましたが、現在では AI、Web 3.0、アート、音楽、その他の分野でも使用されています。ユーザーは、Discord 上でさまざまな種類のサーバーを作成して参加し、リアルタイムで他のユーザーとチャットしたり通信したりできます。Discord サーバーは Discord の中核機能であり、各サーバーは独自のチャンネルを持つこともでき、ユーザーはチャンネル内の他のユーザーとリアルタイムのテキスト、音声、ビデオチャットを行うことができます。このシナリオでは、ゲーム プレーヤーはこれらのチャネルを通じて画像生成リクエストを開始し、Discord サーバーを通じてアクセス レイヤにリクエストを渡します。

 アクセス レイヤーは Discord ボットを実装しており、これには 2 つの機能が含まれています: 1. コマンドを更新する このコマンドは、ゲーム プレイヤーが写真とプロンプトの言葉を簡単に入力し、対応する出力写真を取得できるようにガイドするために使用されます。2. ゲームプレイヤーからのリクエストをフィルタリングして最初に処理し、3 秒以内に予備応答を作成し (Discord プロトコル規制)、グラフィックスを必要とする限定されたリクエストを SQS に転送します。

 アクセス層での Discord ボットの実装については、Amazon ブログを参照しています: AWS での Discord を使用した Stable Diffusion の柔軟な展開. API Gateway+Lambda のサーバーレス アーキテクチャを使用しています. このアーキテクチャはイベント駆動型コンピューティング サービスを提供し、ユーザーは必要ありませんサーバーは、自動的にスケーリングするプログラムを迅速に構築できます。Discord ボットは SQS メッセージ キューの生成側であり、SQS を使用してバックエンド AI 推論層からの分離を実現します。

 バックエンド AI 推論クラスター:

 SQS のコンシューマ側は、EKS に基づくバックエンド AI 推論クラスター上に構築されています。

 まず、これはコントローラー モジュールであり、ゲーム プレーヤーからのメッセージと、SQS からの対応するメッセージ コールバック インターフェイスを消費し、チャネルに従ってさまざまな安定拡散 (SD) グラフ生成サービスにメッセージを配布します。次に、生成された画像とその他の結果を指定されたメッセージ コールバック インターフェイスに送信することで、ゲーム プレーヤーの画像リクエストが最終的に完了します。

 次に、sd-svc サービスがあります。各サービスは、プリセットの安定拡散モデルとアルゴリズムの組み合わせをホストします。この記事の残りの部分では、AUTOMATIC1111/stable-diffusion-webui を使用してモデルとアルゴリズムをホストします。AUTOMATIC1111/stable-diffusion-webui は、Stable Diffusion に基づいた現在人気のツール アプリケーションです。これを使用すると、テキストやグラフを簡単に作成し、LoRA や ControlNet などのさまざまなコミュニティのプラグインを統合できます。独自のWebインターフェースを備えており、Web APIアクセスにも対応していますが、本記事ではWeb APIを利用してアクセスします。

 モデルの選択に関しては、World of Warcraft ゲーム マテリアルを含む事前トレーニング済みモデル rpg_V4.safetensors と、デモンストレーションとして ControlNet Canny モデル control_v11p_sd15_canny を選択します。実際のプロジェクトでは、ゲームマテリアルを使用して、実際のゲームに基づいてゲームの特性を備えたモデルをトレーニングすることもできます (安定拡散モデルのトレーニングはこの記事の焦点では​​ありません。興味がある場合は、こちらを参照してください) Hugging Face モデルのドキュメントなどの拡散モデルのトレーニングに使用されます)。

 Cサイドゲーマーをターゲットとしたシナリオでは、費用対効果を考慮しながら同時実行性の高いサービスをどのように提供するかは避けて通れないテーマであり、以下の最適化を行いました。

  • bottlerocket-images-cache+高性能 EBS: クラスターの迅速な拡張を実現します。一般的な拡張プロセスは次のとおりです: 新しいノードのリクエスト → ノードの起動と初期化 → ポッドの起動 → コンテナ イメージのプル → プロセスの初期化の開始 → サービスの提供の開始 Stable Diffusion で使用される pytorch フレームワークと、対応する依存ツールキットおよびモデルのため非常に巨大です。これらの完全なツール チェーンとモデルを含むイメージは、多くの場合 10G を超えます。さらに、Stable Diffusion WebUI 自体には、最初の起動時に初期化プロセスがあり、これによりクラスターの拡張プロセスが遅くなります。1 つの拡張が頻繁に行われます。 10分以上かかります。この種の拡張速度は、C サイドのシナリオでは遅れているように見えます。最適化されたコンテナイメージを事前に設定し、 bottlerocket-image-cache を使用してスナップショット化し、起動時にボリュームとして Node にマウントすると同時に、ボリュームの IO スループットを向上させる方法です。適切に改善され、コストが節約されます。起動と初期化に多くの時間がかかります。実験環境では、合計 13GB (実行環境 78G + 2G Checkpoint モデル ファイル + 1.3G ControlNet モデル ファイル) のイメージが最適化され、IO スループット 500MB の GP3 EBS とペアリングされ、Node の要求からサービスの提供開始まで (CKPT)モデルをロードした場合)合計 1 時間 40 分かかりました。

  • EFS: モデル ファイルのストレージと動的読み込みを実装します。すべてのポッドは、同じ EFS ファイル システムをマウントすることでモデルを動的にロードする効果を実現でき、運用および保守担当者は 1 つのモデル ファイルを保守するだけで済みます。同時に、EFS の優れた IO スループット (Gbit/s レベル) により、モデルの読み込み速度も保証されます。

  • GPU シャーディング: GPU の使用率を向上させ、コストを削減します。選択した GPU カードのパフォーマンスが非常に強力で、AI 推論タスクが比較的単純で GPU カードを完全に占有することができない場合は、使用量を増やすために 1 つの GPU カードを複数の推論タスクに同時に再利用することを検討できます。 GPUカードの。NVIDIA/k8s-device-plugin のタイム スライシング機能を使用すると、GPU の計算能力を簡単に管理できます。実験環境では、グラフィックス カード モデル A10g を 3 つのシャードに分割し、各シャードでポッドを実行しました。推論タスクが継続的にフル負荷の場合、GPU 使用率が 9% 向上しました (同じワークロードのタスクの場合、合計完了時間は 11.9% 短縮されます)。

  • Karpenter+Spot: より高いクラスター使用率とより優れたコストのソリューションにより、コストがさらに最適化されます。

 要約する

 ゲーム分野では、AI によって生成されたイメージ マーケティング キャンペーンが急速に台頭しています。この記事では、ソリューション アーキテクチャに基づいて、プレーヤー指向の AI マッピング アクティビティのためのエンジニアリング ソリューションについて説明します。AIGC写真生成サービスをDiscordなどのプラットフォームに導入することで、プレイヤーは写真をゲーム要素に変換し、インタラクション効果やプロモーション効果を高めることができます。これらのイノベーションにより、キャンペーンのパフォーマンスとスケーラビリティが向上し、運営コストを削減しながら、プレーヤーにとってスムーズでパーソナライズされたエクスペリエンスが実現されます。

Guess you like

Origin blog.csdn.net/caijingshiye/article/details/132870506