これは、Games24x7 の Hussain Jagirdar と共同執筆したゲスト ブログ投稿です。
ゲーム24x7 は、インドで最も価値のあるマルチゲーム プラットフォームの 100 つであり、さまざまなスキル ゲームで 360 億人を超えるゲーマーを楽しませています。 「ゲームの科学」をコア哲学として、ゲーム AI、ゲーム データ サイエンス、およびゲーム ユーザー研究の直交する研究方向を統合することにより、ゲーム ダイナミクス、ゲーム プラットフォーム、およびプレーヤーに関するエンド ツー エンドのインフォマティクスのビジョンを可能にしました。 AI とデータサイエンスのチームは、大量の多次元データを掘り下げ、AWS でプレイヤージャーニーの最適化、ゲームアクションの検出、ハイパーパーソナライゼーション、カスタマー XNUMX などのさまざまなユースケースを実行しています。
Games24x7 は、自動化されたデータ駆動型の AI を活用したフレームワークを採用して、プラットフォームでのやり取りを通じて各プレイヤーの行動を評価し、異常な行動をしているユーザーにフラグを立てます。 彼らは深層学習モデルScarceGANを構築しました。これは、小さくて弱いラベルを持つ多次元縦断テレメトリーデータからの非常にまれなまたは希少なサンプルの識別に焦点を当てています. この作品は、 CIKM'21 とです。 オープンソース 任意の縦方向のテレメトリ データのまれなクラスの識別。 モデルの製品化と採用の必要性は、プラットフォームで責任あるゲームプレイを可能にするためのバックボーンを作成するために最も重要でした。フラグが立てられたユーザーは、モデレーションとコントロールの別の旅に連れて行くことができます。
この投稿では、Games24x7 が責任あるゲーム プラットフォームのトレーニング パイプラインをどのように改善したかを紹介します。 アマゾンセージメーカー.
お客様の課題
Games24x7 の DS/AI チームは、SageMaker ノートブック、 AWSステップ関数, AWSラムダ, アマゾンEMR、さまざまなユースケースのパイプラインを構築するため。 データ分布のドリフトを処理し、ScarceGAN モデルを再トレーニングするために、既存のシステムにはより優れた MLOps ソリューションが必要であることを発見しました。
Step Functions を介した前のパイプラインでは、単一のモノリス コードベースがデータの前処理、再トレーニング、および評価を実行しました。 これは、トラブルシューティング、手順の追加または削除、さらにはインフラストラクチャ全体に小さな変更を加える際のボトルネックになりました。 このステップ関数は、S3 からデータを抽出して処理するためにインスタンスのクラスターをインスタンス化し、前処理、トレーニング、評価のさらなるステップは、単一の大きな EC2 インスタンスで実行されます。 パイプラインがいずれかのステップで失敗したシナリオでは、ワークフロー全体を最初からやり直す必要があり、その結果、実行が繰り返され、コストが増加しました。 すべてのトレーニングおよび評価メトリクスは、Amazon Simple Storage Service (Amazon S3) から手動で検査されました。 モデルで行われた複数の実験のメタデータを渡して保存するメカニズムはありませんでした。 分散型のモデル モニタリング、徹底的な調査、最適なモデルの厳選には、データ サイエンス チームの時間が必要でした。 これらの努力が積み重なった結果、チームの生産性が低下し、オーバーヘッドが増加しました。 さらに、急速に成長しているチームでは、この知識をチーム全体で共有することは非常に困難でした。
MLOps の概念は非常に広範であり、すべてのステップを実装するには時間がかかるため、最初の段階で次の主要な問題に対処することにしました。
- 業界のベスト プラクティスを使用して社内のディープ ラーニング モデルを再トレーニングするための、安全で管理されたテンプレート化された環境
- 再トレーニング ジョブごとに異なるパラメーター セットを送信し、最後の実行を監査するパラメーター化されたトレーニング環境
- トレーニング指標と評価指標を視覚的に追跡し、実験を追跡および比較するためのメタデータを持つ機能
- 各ステップを個別にスケーリングし、ステップが失敗した場合に前のステップを再利用する機能
- モデルを登録し、機能を保存し、推論パイプラインを呼び出すための単一の専用環境
- さまざまなステップにさまざまなインスタンスを使用する柔軟性を組み込むことで、コンピューティング要件を最小限に抑え、コストを削減し、持続可能な ML の開発と運用を推進できる最新のツールセット
- さまざまなデータ サイエンス チームで使用できる最先端の MLOps パイプラインのベンチマーク テンプレートを作成する
Games24x7 は、以下を含む他のソリューションの評価を開始しました。 Amazon SageMaker スタジオ パイプライン. Step Functions による既存のソリューションには制限がありました。 Studio パイプラインには、いつでもステップを追加または削除できる柔軟性がありました。 また、全体的なアーキテクチャと各ステップ間のデータの依存関係は、DAG を使用して視覚化できます。 Amazon SageMaker Studio、パイプライン、処理、トレーニング、モデルレジストリ、実験とトライアルなどのさまざまな Amazon SageMaker 機能を採用した後、再トレーニングステップの評価と微調整が非常に効率的になりました。 AWS ソリューション アーキテクチャ チームは非常に深く掘り下げ、このソリューションの設計と実装に非常に役立ちました。
ソリューションの概要
次の図は、ソリューションのアーキテクチャを示しています。
このソリューションでは、 SageMaker スタジオ 再トレーニング実験を実行する環境。 パイプライン スクリプトを呼び出すコードは Studio ノートブックで利用でき、パイプラインを呼び出すときにハイパーパラメーターと入力/出力を変更できます。 これは、すべてのパラメーターをスクリプト内にハードコーディングし、すべてのプロセスを密接にリンクしていた以前の方法とはまったく異なります。 これには、モノリシック コードをさまざまなステップにモジュール化する必要がありました。
次の図は、元のモノリシック プロセスを示しています。
モジュール化
各ステップを個別にスケーリング、追跡、および実行するには、モノリシック コードをモジュール化する必要がありました。 各ステップ間のパラメーター、データ、およびコードの依存関係が削除され、ステップ間で共有されるコンポーネントの共有モジュールが作成されました。 モジュール化の図を以下に示します。
すべての単一モジュールについて、SageMaker SDK を使用してローカルでテストが行われました スクリプトモード トレーニング、処理、および評価のため マイナーチェンジが必要 SageMaker で実行するコードで。 の ローカルモードのテスト 深層学習用スクリプトは、すでに使用されている場合は SageMaker ノートブックで、または使用して実行できます SageMaker Pipelines を使用したローカルモード パイプラインで直接開始する場合。 これは、カスタム スクリプトが SageMaker インスタンスで実行されるかどうかを検証するのに役立ちます。
次に、SageMaker トレーニング/処理 SDK を使用して、各モジュールを個別にテストしました。 スクリプトモード 以下のトレーニングステップのように、各ステップで SageMaker インスタンスを手動で使用して、それらを順番に実行しました。
Amazon S3 を使用してソースデータを処理し、次のステップのために中間データ、データフレーム、および NumPy の結果を Amazon S3 に保存しました。 前処理、トレーニング、評価のための個々のモジュール間の統合テストが完了した後、 SageMaker Pipeline SDK の これは、上記のステップで既に使用した SageMaker Python SDK と統合されており、各ステップの入力パラメータ、データ、メタデータ、および出力を次のステップへの入力として渡すことで、これらすべてのモジュールをプログラムで連鎖させることができました。
以前の Sagemaker Python SDK コードを再利用して、モジュールを個別に実行し、Sagemaker Pipeline SDK ベースの実行にすることができました。 パイプラインの各ステップ間の関係は、ステップ間のデータの依存関係によって決まります。
パイプラインの最終ステップは次のとおりです。
- データ前処理
- 再訓練
- 評価
- モデル登録
以下のセクションでは、SageMaker Pipeline SDK で実行する場合の各ステップについて詳しく説明します。
データ前処理
このステップでは、生の入力データを変換し、トレーニング、検証、およびテスト セットに前処理して分割します。 この処理ステップでは、SageMaker 処理ジョブをインスタンス化しました TensorFlow フレームワーク プロセッサこのスクリプトは、Amazon S3 からデータをコピーし、SageMaker によって提供および管理されている Docker イメージをプルします。 この Docker コンテナにより、すべての TensorFlow ライブラリが既に含まれている状態で、requirements.txt ファイルでライブラリの依存関係を渡すことができ、スクリプトの source_dir のパスを渡すことができました。 トレーニング データと検証データはトレーニング ステップに送られ、テスト データは評価ステップに転送されます。 このコンテナを使用する最良の部分は、さまざまな入力と出力を異なる S3 ロケーションとして渡すことができることでした。これは、SageMaker パイプラインの次のステップへのステップの依存関係として渡すことができます。
再訓練
トレーニング モジュールを SageMakerパイプライン TrainingStep API と、TensorFlow Framework エスティメーター (スクリプト モードとも呼ばれます) を介して、既に利用可能なディープ ラーニング コンテナー イメージを使用して、 SageMakerトレーニング. スクリプト モードでは、トレーニング コードに最小限の変更を加えることができ、SageMaker のビルド済み Docker コンテナは Python やフレームワークのバージョンなどを処理します。 からの ProcessingOutputs Data_Preprocessing
ステップは、このステップの TrainingInput として転送されます。
すべてのハイパーパラメーターは、JSON ファイルを介してエスティメーターに渡されました。 トレーニングのすべてのエポックで、スクリプトの stdOut を介して既にトレーニング メトリックを送信していました。 進行中のトレーニング ジョブのメトリックを追跡し、以前のトレーニング ジョブと比較したかったため、すべてのエポックの StdOut からメトリックを取得するために、正規表現を使用してメトリック定義を定義することにより、この StdOut を解析する必要がありました。
SageMaker Pipelines が自動的に SageMaker Experiments API と統合デフォルトでは、実行ごとに実験、トライアル、およびトライアル コンポーネントが作成されます。 これにより、以下に示すように、精度や精度などのトレーニング メトリックを複数の実行で比較できます。
トレーニング ジョブを実行するたびに、カスタム ビジネス定義に基づいて、Amazon S3 に対して XNUMX つの異なるモデルを生成します。
評価
このステップでは、トレーニング済みのモデルを Amazon S3 からロードし、カスタム メトリクスで評価します。 この ProcessingStep は、モデルとテスト データを入力として受け取り、Amazon S3 でのモデル パフォーマンスのレポートをダンプします。
カスタム メトリクスを使用しているため、これらのカスタム メトリクスをモデル レジストリに登録するには、Amazon S3 に CSV として保存されている評価メトリクスのスキーマを SageMaker モデルの品質 JSON 出力。 次に、この評価 JSON メトリックの場所をモデル レジストリに登録できます。
次のスクリーンショットは、CSV を Sagemaker Model 品質の JSON 形式に変換する方法の例を示しています。
モデル登録
前述のように、XNUMX つのトレーニング ステップで複数のモデルを作成していたため、SageMaker Pipelines Lambda 統合を使用して XNUMX つのモデルすべてをモデル レジストリに登録する必要がありました。 単一のモデル登録には、 モデルステップ レジストリに SageMaker モデルを作成するための API。 モデルごとに、Lambda 関数はモデル アーティファクトと評価メトリクスを Amazon S3 から取得し、特定の ARN へのモデル パッケージを作成して、XNUMX つのモデルすべてを単一のモデル レジストリに登録できるようにします。 SageMaker Python API また、最適なモデルを選択するために渡したいカスタム メタデータを送信することもできました。 これは、単一のウィンドウからすべてのモデルを比較および監査できるようになったため、生産性の主要なマイルストーンであることが証明されました。 モデルを互いに一意に区別するためのメタデータを提供しました。 これは、ピア レビューとモデル メトリクスに基づく管理レビューの助けを借りて、単一のモデルを承認するのにも役立ちました。
上記のコード ブロックは、モデル パッケージの入力を通じて、モデル メトリックと共にモデル レジストリにメタデータを追加する方法の例を示しています。
以下のスクリーンショットは、異なるモデル バージョンが登録されると、それらのメトリックを簡単に比較できることを示しています。
パイプライン呼び出し
パイプラインは次の方法で呼び出すことができます イベントブリッジ 、Sagemaker Studio、または SDK 自体。 呼び出しは、ステップ間のデータ依存関係に基づいてジョブを実行します。
まとめ
この投稿では、Games24x7 が SageMaker パイプラインを介して MLOps アセットをどのように変換したかを示しました。 パラメータ化された環境を使用してトレーニング指標と評価指標を視覚的に追跡し、適切な処理プラットフォームと中央モデル レジストリを使用してステップを個別にスケーリングする機能は、監査可能、再利用可能、効率的、説明可能なワークフローを標準化し、前進させる上での主要なマイルストーンであることが証明されました。 . このプロジェクトは、さまざまなデータ サイエンス チームの青写真であり、メンバーが運用、管理、およびベスト プラクティスとのコラボレーションを可能にすることで、全体的な生産性を向上させました。
同様のユースケースがあり、開始したい場合は、SageMaker を使用することをお勧めします スクリプトモード と SageMaker エンドツーエンドの例 Sagemaker Studio を使用します。 これらの例には、このブログで取り上げた技術的な詳細が含まれています。
最新のデータ戦略は、データの管理、アクセス、分析、および行動のための包括的な計画を提供します。 AWS は、すべてのワークロード、すべてのタイプのデータ、およびすべての望ましいビジネス成果について、エンドツーエンドのデータ ジャーニー全体に対して最も完全なサービス セットを提供します。 これにより、AWS はデータから価値を引き出して洞察に変えるのに最適な場所になります。
著者について
フセイン・ジャギルダー Games24x7 の上級科学者 – 応用研究。 彼は現在、説明可能な AI とディープ ラーニングの分野の研究に取り組んでいます。 彼の最近の仕事には、深い生成モデリング、時系列モデリング、および関連する機械学習と AI のサブエリアが含まれています。 また、スケーラビリティ、信頼性、感度などの制約を必要とする MLOps と標準化プロジェクトにも情熱を注いでいます。
スミル・クマール AWS のソリューション アーキテクトであり、テクノロジー業界で 13 年以上の経験があります。 AWS では、AWS の主要な顧客と緊密に連携して、複雑なビジネス上の問題を解決するクラウドベースのソリューションを設計および実装しています。 彼はデータ分析と機械学習に非常に情熱を傾けており、AWS クラウドを使用して組織がデータの可能性を最大限に引き出すのを支援してきた実績があります。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 未来を鋳造する w エイドリエン・アシュリー。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :は
- 1
- 10
- 100
- 11
- 7
- a
- 能力
- 私たちについて
- 上記の.
- アクセス
- 累積
- 精度
- ACM
- 越えて
- 行為
- Action
- 追加されました
- NEW
- さらに
- 住所
- 採択
- 養子縁組
- 後
- AI
- すべて
- 許可
- ことができます
- 既に
- Amazon
- アマゾンセージメーカー
- Amazon SageMakerスタジオ
- 分析論
- 分析します
- および
- API
- 適用された
- 建築
- です
- AREA
- 周りに
- AS
- 評価
- 資産
- At
- 監査
- 監査可能
- 監査された
- 自動化
- 自動的に
- 利用できます
- AWS
- バック
- バックボーン
- ベース
- BE
- なぜなら
- 開始
- 背後に
- さ
- 以下
- ベンチマーク
- BEST
- ベストプラクティス
- より良いです
- の間に
- ブロック
- ブログ
- 建物
- 内蔵
- ビジネス
- by
- 缶
- 場合
- 例
- 中央の
- チェーン
- 挑戦
- 変化する
- 変更
- class
- 密接に
- クラウド
- クラスタ
- コード
- コードベース
- 協力します
- 比較します
- 比べ
- コンプリート
- 複雑な
- コンポーネント
- コンポーネント
- 包括的な
- 計算
- コンセプト
- 統合
- 制約
- コンテナ
- コンテナ
- コントロール
- 制御
- 変換
- 変換
- 基本
- 費用
- コスト
- 可能性
- カバー
- 作ります
- 作成した
- 作成します。
- 作成
- 現在
- カスタム
- 顧客
- Customers
- データ
- データ分析
- データサイエンス
- データ戦略
- データ駆動型の
- 分権化された
- 決定しました
- 専用の
- 深いです
- ディープダイブ
- 深い学習
- デフォルト
- 定義
- 需要
- 実証
- 依存関係
- 設計
- 希望
- 詳細
- 細部
- 検出
- 決定
- 開発
- 異なります
- 直接に
- 発見
- 話し合います
- 見分けます
- ディストリビューション
- デッカー
- ダウン
- ドライブ
- ダイナミクス
- 各
- 前
- 簡単に
- 効率的な
- 努力
- どちら
- 従業員
- 使用可能
- 有効にする
- 端から端まで
- 全体
- 環境
- 時代
- 評価します
- 評価
- さらに
- あらゆる
- 例
- 例
- 実行
- 既存の
- 既存システム
- 体験
- 実験
- 広範囲
- エキス
- 非常に
- Failed:
- 特徴
- File
- ファイナル
- 名
- フラグが立てられた
- フラグ
- 柔軟性
- 焦点を当てて
- フォロー中
- 次
- 形式でアーカイブしたプロジェクトを保存します.
- フレームワーク
- から
- フル
- function
- 機能性
- 機能
- さらに
- ゲーム
- ゲーマー
- Games
- 賭博
- ゲームプラットフォーム
- 生成する
- 生々しい
- 取得する
- 与える
- Go
- ゴエス
- 素晴らしい
- ゲスト
- ハンドル
- ハンドル
- ハード
- 持ってる
- 持って
- 助けます
- 助けました
- 助け
- ことができます
- HOURS
- 認定条件
- HTML
- HTTPS
- 識別
- 画像
- 画像
- 実装する
- 実装
- 実装
- import
- 改善されました
- in
- 含まれました
- 含めて
- 組み込む
- 増加した
- 個人
- 個別に
- 産業を変えます
- インフラ関連事業
- 洞察力
- インストルメンタル
- 統合された
- 統合
- 相互作用
- 興味深い
- 調査
- 関係する
- 分離
- 問題
- IT
- 繰り返し
- ITS
- 自体
- ジョブ
- Jobs > Create New Job
- 旅
- JPG
- JSON
- キー
- 知識
- 既知の
- ラベル
- 大
- 学習
- ライブラリ
- 図書館
- ような
- 制限
- リンク
- 負荷
- 局部的に
- 場所
- 場所
- 機械
- 機械学習
- 主要な
- 作る
- 作成
- 管理します
- 管理
- 手動で
- メカニズム
- メンバー
- 言及した
- 方法
- メトリック
- メトリック
- マイルストーン
- 百万
- 最小限の
- マイナー
- ML
- MLOps
- モード
- モデル
- 節度
- モダン
- モジュール
- モジュール
- モニタリング
- 一枚岩
- 他には?
- 最も
- の試合に
- 名
- 必要
- 次の
- ノート
- numpy
- of
- on
- ONE
- 継続
- 開いた
- 操作する
- 業務執行統括
- 最適化
- 注文
- 組織
- オリジナル
- その他
- 出力
- 全体
- パッケージ
- パラメータ
- 最高の
- 部
- パス
- 渡された
- パス
- 通過
- 情熱的な
- path
- パフォーマンス
- 哲学
- パイプライン
- 場所
- 計画
- プラットフォーム
- プラットフォーム
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- プレイ
- プレイヤー
- プレーヤー
- 過多
- ポイント
- ポスト
- 潜在的な
- パワード
- プラクティス
- 精度
- 前
- 問題
- プロセス
- ラボレーション
- 処理
- 生産性
- プロジェクト
- プロジェクト(実績作品)
- プロパティ
- 証明
- 実績のある
- 提供
- は、大阪で
- 公表
- 引っ張る
- Python
- 品質
- 珍しい
- Raw
- 最近
- 推奨する
- 記録
- 正規表現
- 登録
- 登録された
- 参加申し込み
- レジストリ
- 関連する
- の関係
- 信頼性
- 削除済み
- 除去
- 繰り返される
- レポート
- の提出が必要です
- 要件
- 研究
- 責任
- 責任あるゲーミング
- 再起動した
- 結果
- return
- 再利用可能な
- 再利用
- レビュー
- 職種
- ラン
- ランニング
- セージメーカー
- SageMakerパイプライン
- スケーラビリティ
- 規模
- スケーリング
- 乏しい
- シナリオ
- 科学
- 科学者
- スクリーンショット
- スクリプト
- SDDK
- セクション
- 安全に
- 送信
- シニア
- 感度
- シーケンス
- サービス
- サービス
- セッションに
- セット
- シェアする
- shared
- 表示する
- 示す
- 作品
- 同様の
- 簡単な拡張で
- 技能
- 小さい
- So
- 溶液
- ソリューション
- 解決する
- 一部
- ソース
- 特定の
- 分割
- ステージ
- 標準化
- 開始
- 起動
- 最先端の
- 統計
- 手順
- ステップ
- ストレージ利用料
- 店舗
- 保存され
- 戦略
- 研究
- そのような
- 持続可能な
- 取り
- チーム
- チーム
- 技術的
- テクノロジー
- template
- テンソルフロー
- test
- テスト
- それ
- エリア
- ソース
- アプリ環境に合わせて
- それら
- したがって、
- ボーマン
- 介して
- 時間
- 〜へ
- 追跡する
- トレーニング
- 訓練された
- トレーニング
- 変換
- トライアル
- 試験
- 順番
- わかる
- 独特に
- アンロック
- us
- つかいます
- 使用事例
- ユーザー
- users
- 貴重な
- 値
- 多様
- さまざまな
- ビジョン
- wanted
- which
- while
- 全体
- 意志
- 以内
- 仕事
- 作品
- でしょう
- 包まれました
- 年
- You
- あなたの
- ゼファーネット