Upgrade to Pro — share decks privately, control downloads, hide ads and more …

複数サービスを支える マルチテナント型 Batch MLプラットフォーム

複数サービスを支える マルチテナント型 Batch MLプラットフォーム

LINEヤフーにおけるマルチテナント型Batch MLプラットフォームの設計と運用事例を紹介します。複数サービスを支える仕組み、提供しているモデル、アーキテクチャやマルチテナント運用の工夫を解説します。

More Decks by LINEヤフーTech (LY Corporation Tech)

Other Decks in Technology

Transcript

  1. © LY Corporation Agenda 01 自己紹介 02 Batch ML プラットフォームとは?

    03 Batch ML基盤 の機能 04 Batch ML基盤の規模 05 Batch ML基盤 で提供しているモデル 06 アーキテクチャ 07 まとめ 2
  2. © LY Corporation 田邊 拓実 (@ITF_BC) LINEヤフー株式会社データグループ DS統括本部5本部ML2部モデル開発3チーム 3 経歴

    • 2023年3月 筑波大学大学院卒業 • 2023年4月 LINE株式会社にMLエンジニアとして新卒入社 学生時代の研究 • ブラックボックス最適化 • 強化学習 業務 • LINEスタンプの推薦 • Batch MLプラットフォームの開発 • LINEニュースの推薦
  3. © LY Corporation Batch ML vs Online ML Batch MLプラットフォームとは?

    5 オフライン (Batch) オンライン (Real-time) 学習 推論 (triton serving) ⚫ オフライン : データがまとまった後に一括で学習/推論を行う ⚫ オンライン : データが入ってくるたびにリアルタイムで学習/推論を行う
  4. © LY Corporation Batch ML vs Online ML Batch MLプラットフォームとは?

    6 オフライン (Batch) オンライン (Real-time) 学習 推論 (triton serving) ⚫ オフライン : データがまとまった後に一括で学習/推論を行う ⚫ オンライン : データが入ってくるたびにリアルタイムで学習/推論を行う 内製Batch ML基盤
  5. © LY Corporation 内製BatchML 基盤 Batch MLプラットフォーム とは? 7 開発環境

    本番環境 BatchML 基盤 データベース 学習済みモデル LINEスタンプ LINEニュース LINE公式 アカウント 属性推定 各サービス YAMLファイル YAMLファイル
  6. © LY Corporation Framework の紹介 Batch ML基盤の機能 9 Input Validation

    Resource Estimation Parameter Tuning Train / Predict Output Validation Evaluation Output Table Push Metrics データセットの スキーマをチェック データ量のチェック ハイパーパラメータ チューニング モデルの学習/推論 出力のスキーマや 値のチェック 出力の評価 UniqueやNDCG、 Accuracyなど Hive Tableに出力 データ量や 評価結果をロギング
  7. © LY Corporation Framework の紹介 Batch ML基盤の機能 10 Input Validation

    Resource Estimation データセットの スキーマをチェック データ量のチェック
  8. © LY Corporation Framework の紹介 Batch ML基盤の機能 11 Parameter Tuning

    Train / Predict ハイパーパラメータ チューニング モデルの学習/推論
  9. © LY Corporation Framework の紹介 Batch ML基盤の機能 12 Output Validation

    Evaluation Output Table 出力のスキーマや 値のチェック 出力の評価 UniqueやNDCG、 Accuracyなど Hive Tableに出力
  10. © LY Corporation 本番環境での利用方法 Batch ML基盤の機能 20 pre-process train post-process

    Hive Table Model Storage Hive Table Hive Table predict Batch ML基盤
  11. © LY Corporation LINE アプリの様々な場所でのスタンプ推薦に利用 • スタンプショップ ホームタブ • スタンプショップ

    プレミアムタブ • スタンプ詳細ページのitem to itemレコメンド • トーク画面 • 新年スタンプ LINEスタンプの推薦 24
  12. © LY Corporation LINE アプリの様々な場所での公式アカウント の推薦に利用 • LINE公式アカウントホームタブ • LINE公式アカウント検索

    • 詳細画面でのitem to itemレコメンド • 不正公式アカウントの検知 LINE公式アカウントの推薦 25
  13. © LY Corporation モデルの紹介 Batch ML基盤 で提供しているモデル 29 モデルタイプ 説明

    主な用途 モデル数 recommendation インタラクションのログからアイテムの レコメンドを生成する。 多くのモデルはtwo-towerモデルを採用。 Two-stage recommendで の1段階目で使用 12 ranker ユーザーごとのアイテムの並び替えを行う。 LightGBM on SparkやNN rankerがある。 Two-stage recommendで の2段階目で使用 9 embedding-mapping 画像やテキストからembedding vector を生成するモデル。 CB2CF*1レコメンドでのCB modelで使用 5 regression 回帰モデル。 ユーザーの年齢推定などで 使用 10 classification 分類モデル。 ユーザーの属性推定などで 使用 7 knn-search ベクトルデータを元にK近傍法で似ている アイテムやユーザー、おすすめアイテムを探索 する。 CB2CFレコメンドでのレコ メンド生成時に使用 4 1: https://arxiv.org/abs/1611.00384
  14. © LY Corporation MaskNet Model (User Tower) 31 Batch ML基盤で提供しているモデル

    Recommendation model Input Features EmbeddingBag • “MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask“*1で提 案 • 特徴量の相互作用を効率的に求められる • Feature importanceも求められる • X (旧Twitter)社のレコメンドシステムでも Heavy Rankerとして採用*2 *1: https://arxiv.org/abs/2102.07619 *2: https://github.com/twitter/the-algorithm-ml/blob/main/projects/home/recap/README.md
  15. © LY Corporation MaskNet Model (User Tower) 32 Batch ML基盤で提供しているモデル

    Recommendation model Input Features EmbeddingBag EmbeddingBagで各特徴量のID集合を埋め込みベクトル に変換 (weighted sum pooling) • レコメンドデータによく見られるID数が多いsparse性の 高いデータに強い • 出現回数や TF-IDF weight なども簡単に反映できる • pytorch.EmbeddingBagを使うことで 少ないkernelで計算可能 • Sparse gradients にも対応できるので計算効率がいい LINEスタンプ LINEニュース LINE OA LINEマンガ 属性推定 広告
  16. © LY Corporation MaskNet Model (User Tower) 33 Batch ML基盤で提供しているモデル

    Recommendation model Input Features EmbeddingBag 複数のMaskBlockがembedding vectorからマスクを 生成し、embedding vectorを要素ごとにスケーリング 各MaskBlockの出力をconcatした後にMLPに通して user embeddingを得る
  17. © LY Corporation その他の学習時の工夫 Positive sampling • 一部の正例を特徴側に残し残りを学習候補にする • frequencyの低いアイテム

    (レアなアイテム) の サンプリング確率を調整可能にするパラメータ導入 一部の特徴量のドロップアウトでの過学習の抑制 Follow The (Proximally) Regularized Leader*1 (FTRL) optimizerの利用 34 Batch ML基盤で提供しているモデル Recommendation model *1 https://dl.acm.org/doi/10.1145/2487575.2488200
  18. © LY Corporation Recommendation model (backend) Batch ML基盤で提供しているモデル 35 Transfer

    Manager ZMQ Parquet Data Parquet Data process process process process process process process process process process process process CPU pod CPU pod CPU pod CPU pod GPU pod GPU pod MPI MPI MPI Transfer Manager preprocess inference postprocess
  19. © LY Corporation Recommendation model (backend) Batch ML基盤で提供しているモデル 36 リソース

    • Preprocess, inference, postprocessで複数 pod/processをOpenMPIで並列化 • CPU podの数や1 podあたりのプロセス数 を変えた複数のリソースタイプをタスクの 規模に応じて使い分ける Parquet 読み込み • MPIによる並列読み込み • Shuffling • repeat
  20. © LY Corporation Recommendation model (backend) Batch ML基盤で提供しているモデル 37 ZMQ

    (ZeroMQ) • Preprocess pod  inference pod inference pod  postprocess pod のpod間通信に使用 • Transfer ManagerがProducer, Consumer, Controllerの状態やコネクションを管理 • producer がデータを送信するとZMQで複 数のconsumerにデータを振り分け
  21. © LY Corporation 概要 アーキテクチャ 39 ユーザー Argo Workflows (Framework)

    k8s cluster Model Config (ConfigMap) Model Store (ConfigMap) GPU Cluster MLflow S3 Storage リクエスト HDFS
  22. © LY Corporation 開発/運用 アーキテクチャ 40 Model Repository Docker/Helm Registry

    k8s cluster Manifest Repository ConfigMap Secret ArgoCD Workflow Template Model開発者 Cluster 管理者 • モデルやフレームワークの実装を入れる Modelリポジトリとcluster独自の設定 (keytab, MLflow endpoint, model version, etc..) を入れる Manifestリポジトリを分離 • Modelリポジトリからモデルや フレームワークのDocker imageをpush • Manifestリポジトリでclusterに適用するdocker imageを指定することで 週次のモデルのリリースや更新を行う
  23. © LY Corporation マルチテナント運用 アーキテクチャ 41 Model Repository Docker/Hel m

    Registry Manifest Repository ConfigMap Secret ArgoCD Workflow Template Manifest Repository ConfigMap Secret ArgoCD Workflow Template k8s cluster A k8s cluster B • LINE系のサービスで使っていたBatch ML基盤を ヤフー系のサービスで導入してもらいやすくする • アクセス権限が厳しいデータがあるなどの理由で 自分たち独自でBatch ML基盤をデプロイしたい • Argo workflows templateをhelm chart化して管理、 新規 cluster にBatch ML基盤を簡単にデプロイ可能 • cluster 独自の設定はhelm chartのパラメータや ConfigMap/Secretとして管理 Cluster A 管理者 Cluster B 管理者 Model 開発者