【DeNA Data/ML Engineering Night】#6 1,000,000+ユーザー固有モデルの運用を実現する学習パイプラインと推論API

2K Views

March 21, 25

スライド概要

2025/03/14に開催されたオフライン勉強会「DeNA Data/ML Engineering Night」の発表スライドです。
イベント概要: https://dena.connpass.com/event/339744/

profile-image

DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

TechCon 2025 AfterEvents March 14, 2025 1,000,000+ユーザー固有モデルの運用 を実現する学習パイプラインと推論API 大泉 壮汰 株式会社ディー・エヌ・エー ソリューション本部データ統括部データ基盤部 ゲームエンタメグループ © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 1

2.

(登壇者紹介) 大泉 壮汰 ソリューション本部データ統括部データ基盤部 ゲームエンタメグループ MLエンジニア ● 24卒で修士修了し、今年度新卒入社 ● インターン時代含め、EC, ライブ, ゲームと様々なドメインの ML案件を担当 © DeNA Co., Ltd. ● 趣味はフットサル・海外サッカー観戦・料理 ● ポケポケは水デッキ TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 2

3.

〜お詫び〜 今日の発表では都合により具体的なタイトル名や どんな種類のゲームの話なのかという情報は伏せて、 技術面にフォーカスさせていただきます🙏 © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 3

4.

目次 1 DeNAのMLエンジニアリング 2 インゲームにおけるMLシステム 3 ユーザー固有モデルの学習パイプライン 4 ユーザー固有モデルの推論API © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 4

5.

DeNAのMLエンジニアリング © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 5

6.

DeNAのMLエンジニア組織 ● DeNAのMLエンジニアは各事業部のアプリケーション開発チームにはいない ● 共通部門のデータ基盤部のストリームアラインドグループに所属 (2024/10~ 新編成) 自分の担当領域のAI案件において、データサイエンティスト, データエンジニアと ○ チームを組み、主に学習パイプラインと推論APIの開発・運用にあたる データ統括部 〇〇のレコメンド案件AIチーム データ基盤部 ゲーム M L E © DeNA Co., Ltd. D E ライブ M L E D E PdM/DS x1 MLE x2 DE x1 AI技術開発部 ゲーム ライブ C V / 強 化 C V / 音 声 D S D S ××の音声変換案件AIチーム TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night AI (音声) x1 MLE x1 6

7.

DeNAのAI案件の典型テンプレート構成 MLEG サンプルリポジトリでの 構成標準化の取り組み ● Vertex AI Pipelinesを中心としたGoogle Cloudのマネージドリソース志向の構成 ● データ連携方式やサービングは案件に応じて適切なリソースを選択 DWH サービング ジョブスケジューラー トリガー 学習 分散キュー © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 7

8.

インゲームにおけるMLシステム © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 8

9.

ゲームにおけるAI機能 アウトゲーム:プレイ以外の部分 インゲーム:プレイ内の部分 ● ガチャレコメンド ● オートプレイ ● デッキ自動編成 ● NPC ● 対戦マッチング ● 最善手レコメンド ● カスタマーサポート自動化 ● チート検知 アウトゲームは他ドメインのMLシステムと共通の発想で実現できることが多い インゲームはゲームドメイン・タイトル固有の要件が多く、 MLシステムにとって未開の部分が大きい © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 9

10.

プレイの現在・過去の状況を元に アクションを決定する機能 ゲームにおけるAI機能 アウトゲーム:プレイ以外の部分 インゲーム:プレイ内の部分 ● ガチャレコメンド ● オートプレイ ● デッキ自動編成 ● NPC ● 対戦マッチング ● 最善手レコメンド ● カスタマーサポート自動化 ● チート検知 今日の題材はインゲームのアクション予測モデルにおけるMLシステム © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 10

11.

アクション予測モデル どんなときに使う...? ○ プレイ中に手を離す必要が生じたとき ○ 次のアクションに迷ったとき ○ NPC対戦をしたいとき ○ 周回プレイをしたいとき ユーザー/NPC どうなっていれば良い機能...? ○ ユーザーの分身の イメージ 基本的なコンセプトはAIによる代理プレイ ■ © DeNA Co., Ltd. AI そのユーザー/NPCがその場面で行うであろうアクションを予測して実行 TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 11

12.

今回目指すもの ユーザーのプレイの習熟度や癖を反映した出力を行うMLシステム NPCも 含め © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 12

13.

ユーザー固有モデルの学習パイプライン © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 13

14.

要件整理 ユーザーのプレイスタイルに沿った出力を行うモデルが必要 → 汎用モデルにユーザーのプレイログを入力すればいいのでは? → ユーザーのプレイスタイルを反映するには長期間のログが必要 → モデルの入力として現実的ではない/モデルへの入力は直近のログのみにしたい © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 14

15.

要件整理 ユーザーのプレイスタイルに沿った出力を行うモデルが必要 → 汎用モデルにユーザーのプレイログを入力すればいいのでは? → ユーザーのプレイスタイルを反映するには長期間のログの入力が必要 → モデルの入力として現実的ではない/モデルへの入力は直近のログのみにしたい ユーザーごとにファインチューニングすればいいのでは? © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 15

16.

今回やること 全アクティブユーザー:1,000,000+のモデルをファインチューニングする ユーザー固有モデルの学習パイプラインの構築 © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 16

17.

1,000,000+モデルのファインチューニング 実現可能性の検討 ● 学習時間的に大丈夫なの? ○ Vertex AI Pipelines (Kubeflow) は並列にマシンを確保してパイプライン実行が可能 なので理想的には1モデル学習するのと学習時間は変わらない ● コスト的に大丈夫なの? ○ 今回のモデルは非常に軽量なので、1つのCPUコアで訓練可能 ○ 「訓練単価 = モデル数 × モデルあたりの訓練時間 ÷ CPUあたりの計算単価」が予 算内に収まれば、訓練頻度を調整することでコスト調整が可能 複数ノード内で複数訓練プロセスを実行することで2段階で訓練を並列化する © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 17

18.

学習パイプラインの構成 1. Build Table ステップ ● Dataset Dataset Dataset Dataset Dataset Dataset Dataset Dataset Dataset Process 1 Process 1 Process 1 Process 2 Process 2 Process 2 Process m Process m Process m マシン 1 マシン 2 マシン n BigQueryから学習対象ユーザーの直近のプ レイデータ (10,000~件/user) を抽出し、後 段のマシン毎に一時テーブルに分割 2. Build Dataset ステップ ● データのPreprocessを行い、PyTorchデータ セットを学習ユーザーごとに作成 3. Train ステップ ● n マシン m プロセスの並列で学習を行い、 学習済モデルの重みをデータベースに保存 © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 18

19.

ユーザー固有モデルの推論API © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 19

20.

再掲:DeNAのAI案件の典型構成 DWH 今回はModel Artifactがユーザーごと にあり、リクエストごとに違うモデル で推論しなければいけない サービング ジョブスケジューラー トリガー 学習 分散キュー © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 20

21.

今回の推論API構成 ファインチューニングした モデルの一部の重みの pickle(~200KB)をDBに保存 ユーザー固有 重み 同じ対戦・プレイ内で呼ばれ るモデルは重複しやすいので キャッシュが有効 キャッシュ リクエスト時 Pod起動時 汎用重み に置き換え © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 21

22.

パフォーマンスチューニング ● OpenTelemetryを用いて負荷試験中のトレース分析 修正前 モデルファイルをメモリに 展開する部分がボトルネッ クと判明し約10倍レイテン シ改善 (500ms → 50ms) ● 起動時:GCS→ローカルストレージにベースモデルを保存 ● リクエスト時:ベースモデルをロードし、DBからユーザー固有モデルを取得して推論 修正後 ● 起動時:GCSからベースモデルを取得し、オンメモリに保持 ● リクエスト時:初回DBアクセス後はキャッシュからユーザー固有モデルを取得して推論 © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 22

23.

まとめ ● ゲーム領域のインゲームでアクション予測モデルをユーザーごとにパーソナライズする 上で、1,000,000+のモデルを運用するための学習パイプラインと推論APIを構成した ● Vertex AI Pipelinesで、複数ノード内で複数訓練プロセスを実行し、2段階で訓練を並列 化することで、コストを抑えて大量のモデルの訓練が可能になった ● モデルを分割して、オンメモリでベースモデルを保持しながら、ユーザー固有モデルの 重みをDB/キャッシュから取得して推論することで高パフォーマンスな推論が可能に なった © DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 23

24.

© DeNA Co., Ltd. TechCon 2025 AfterEvents / DeNA Data/ML Engineering Night 24