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

2021-07-31 機械学習がPOCを超えるための技術基盤@機械学習の社会実装勉強会

2021-07-31 機械学習がPOCを超えるための技術基盤@機械学習の社会実装勉強会

機械学習の社会実装勉強会第1回 https://machine-learning-workshop.connpass.com/event/219997/の資料

Naka Masato

July 31, 2021
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

  1. About me • 那珂将人 • 2016~2018 年 ByteDance でレコメンドエンジニア •

    2018 年〜今 インフラ → SRE 大規模機械学習システム開発の経験 + Cloud Native な基盤構築・運用経験 → 機械学習システム構築・運用を勉強していきたい !
  2. 1. イベント設計 1. 入力元データをいじれない場合には不要 2. どんなイベントを集めるか (impression, click, staytime,..) 3.

    どんな属性を集めるのか (content_id, user_id, device_id…, ...) 4. 何を最大化したいのか ( 滞在時間 ) 5. 新しい人がイベント追加を容易にできるか ( 一覧、名前、コード化、レビュー …)
  3. 2. Seamlessに入ってくるデータの処理 • 生データの保存 • 所謂前処理 ◦ ストリームに流す ◦ 特徴量の計算

    (NLP, 画像解析を通す ) ◦ プロファイルの計算 ( ユーザやコンテンツのプロファイル計算 ) 生行動データ 前処理 (id生成、NLP、画像 特徴量の計算など) コンテンツ系データ 前処理 プロファイルなど 2次データ コンテンツ特徴量
  4. 3. モデル学習に使うデータセットの生成 • データセットの作成 ◦ 各前処理で作成した特徴量を id から取得し、各レコードに特徴量に変換してデータセット生成 • データセットの保存

    ◦ データセットをストリームにしてオンライン学習に使えるようにする ◦ データセットを分散ストレージに保存しバッチ学習に使えるようにする 生行動データ 前処理 (id生成、NLP、画像 特徴量の計算など) コンテンツ系データ 前処理 ストリーム プロファイルなど 2次データ データセット作成 分散ストレージ コンテンツ特徴量
  5. 4. モデル学習のプラットフォーム モデル学習フェーズの PDCA サイクルを高速に回すために重要 1. 機械学習エンジニアがモデルを Config ファイルで組める (

    特徴量の指定やモデル ) a. 可視化もできるとさらに 👍 2. Config ファイルの指定とバッチデータによる学習 ( 長い期間のデータに対して学習 を行いモデルの良し悪しを検証する ) a. AUC などの評価を使う b. 大体この段階でボツなモデルは終了 3. 各モデル学習に対し、 Config 、学習期間、 Job へのリンク、 Metrics へのリンクなどが 見れると毎回のサイクルが早くなる
  6. 6. ABテスト モデルを入れ替えるかどうかの判断のために重要な部分 1. AB テストプラットフォーム a. トラフィックの分流定義とパラメータの指定 2. API

    サーバ a. リクエストごとに分流を行い、 AB テストサービスから対象となる AB テスト変数を読み込み、機械学習 サーバの API をコールする 3. 機械学習サーバ a. AB テストのパラメータによってモデルを選択したり重みを調整したりする 4. 行動ログ a. 行動ログに AB テストパラメータを含めてログに吐き出す 5. 集計 a. AB テストの集計 Job がログから集計して、試験グループとベースグループに対する指標計算を行う
  7. 6. ABテスト クライアント APIサーバ ABテストサービス 機械学習API モデルA モデルB 行動データ (ABパラメータを含

    む) ログ集計 ダッシュボード ABテストプラットフォーム (UI) ① AB テスト設定 ②リクエストを送る ③分流と AB テストパラ メータ取得 ④ AB テストパラメータ を付加してリクエスト ⑤ AB テストパラメータによって モデルから結果を受け取る ⑥結果を返す ⑦結果を返す ⑧ AB テストパラメータを含む行 動ログイベント ⑨ AB テストグループ ごとに集計 ⑨結果を可視化
  8. アプリケーションに機械学習を入れる難しさ 1. システムの複雑性が大幅に増す a. 前処理、データセット作成、モデル学習 Job ( バッチ / ストリーム

    ) 、 AB テストのシステム横断の対応 2. 機械学習の精度の高さだけではない a. ビジネス要件として、機械学習の最適解に人間が干渉する必要がある場合も ( 例 あるコンテンツは 常に Top に配置、 Ads の頻度など ) 3. 機械学習の結果の偏り a. データの偏りが機械学習により助長される ( 例 . ユーザに男性が多い →モデルが男性ウケするものを いいものと学習→男性向けコンテンツばかりになる →女性が入ってきても離脱しやすくなる )
  9. 次回以降 Open Source や ML サービス 1. Kubeflow 2. Argo

    workflows 3. AI Platform 4. SageMaker 5. ... どのようにこれらのツールを有効活用してアプリケーション開発やコアの機械学習部分に 注力しつつ、機械学習の価値を届けていけるか