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

少人数PJにおける MLOps事例

少人数PJにおける MLOps事例

Yamaguchi Toshihiro

October 11, 2021
Tweet

Other Decks in Technology

Transcript

  1. 本日話す内容 • 推薦システム • Databricksについて • 開発・運用上の問題 • Databricksによる実装例 •

    Q&A ◦ Q. MLFlowでモデルの学習に利用したデータもトラッキングできますか? ◦ A. DeltaLakeのスナップショット機能を利用すれば可能です。
  2. 推薦システムの概要 • 目的 ◦ アプリに配信した記事のクリック率の向上 • 推薦アイテム ◦ 発行されてから1日以内の記事 ◦

    1ユーザーに20ほど推薦する • 学習データ ◦ 記事 ▪ 記事ID、タイトル、本文、発行日時 ... ▪ API経由で1時間に1回取得 ◦ ユーザーの行動ログ ▪ ユーザーID、記事ID、クリックしたかどうか ... ▪ Kinesis Streamingから都度取得 -> ユーザーの行動を素早く推薦に反映させたい • モデル ◦ ロジスティック回帰 ◦ クリックするを1、しないを0としてユーザー毎に各記事をクリックするか推測
  3. 推薦アイテムの推論 Webサーバ ユーザーID 推薦記事 推薦API 機械学習API 特徴量ストア データ収集 特徴量生成 モデル学習

    デプロイ ① ② ③ ④ ①端末からWebサーバへ推薦アイテムをリクエスト ②WebサーバからAPI Gatewayへリクエスト ③記事、ユーザー特徴量の取得 ④特徴量を元にSageMakerへ 推論アイテムをリクエスト ⑤推論結果をユーザーへ渡す ⑤ 推薦記事 ユーザーID 特徴量 特徴量 オンライン オフライン
  4. 推薦モデルの学習 Webサーバ ユーザーID 推薦記事 推薦API 機械学習API 特徴量ストア データ収集 特徴量生成 モデル学習

    デプロイ ① ② ③ ④ 推薦記事 ユーザーID 特徴量 特徴量 オンライン オフライン 記事API ①ログデータをKinesisStreamへ送信 ②記事API、KinesisStreamから記事データ、 ログデータを収集 ③特徴量を生成 ④モデルの学習 ⑤SageMakerへのデプロイ ⑤ ②
  5. 開発の流れと運用上のタスク
 データ処理 モデル開発
 デプロイ • Streamingデータの 処理 • データのスキーマ 変更への対応

    • 特徴量の管理 • モデルの管理 • モデルの精度の比較等 タスク • 推論APIの更新 • モデルの更新
  6. 利用ツール(2) MLflow 実験デー タ、結果等 を記録 Projects Model Model Registry Tracking

    コードを再 現できる形 で記録 モデルを 様々な環 境で利用 できる形 式で保存 モデルの 集中管理 機械学習のライフサイクルを管理するためのプラットフォーム
  7. 利用ツール(3) Apache Spark ストリーミングデータの 読み込み Delta Lakeへの保存 期間を指定したデータ の抽出 データの集計等

    利用していない 機械学習を利用した特 徴量生成 Streaming SQL GraphX MLlib 分散処理を行うためのライブラリ ビッグデータを用いたデータ処理、学習が可能
  8. ストリーミングデータの取得 Kinesis 生 Data { shardId: xxxx, data: xxxx, partitionKey:

    xxxx, ... } Table Data user_id string kiji_id string session_id string action string モデル学習 特徴量生成 ユーザーの行動ログは生データ、構造化データ、特徴量の順に変換する
  9. Feature Store articles article_id string title string body string display_time

    timestamp logs user_id string article_id string action string timestamp timestamp article_feature article_id string lda_feature vector bert_feature vector topic_feature vector user_feature user_id string lda_feature vector bert_feature vector topic_feature vector Table Table 作成した特徴量をDelta Tableに保存する
  10. 推薦API SageMaker エンドポイント AWS Lambda API Gateaway Webサーバ ユーザーID ユーザーID

    ユーザー特徴量 推薦記事 推薦記事 推薦記事 ユーザー特徴量 ユーザーID