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. 機械学習がPOCを超えるため
    の技術基盤
    2021

    7

    31

    nakamasato

    View full-size slide

  2. About me
    ● 那珂将人

    2016~2018

    ByteDance
    でレコメンドエンジニア

    2018
    年〜今 インフラ →
    SRE
    大規模機械学習システム開発の経験 +
    Cloud Native
    な基盤構築・運用経験
    → 機械学習システム構築・運用を勉強していきたい
    !

    View full-size slide

  3. 概要
    ● 機械学習を、現実の課題を解決するための仕組みとするのは難しい
    ● 機械学習システムの紹介
    今回の話は
    ● メインはレコメンドシステムをベースとした話
    (
    自分の経験による
    )
    ● すべての機械学習に当てはまるとは限らない

    View full-size slide

  4. 目的:
    機械学習を組み込んだシ
    ステムの例を紹介して、全
    体像を理解する

    View full-size slide

  5. レコメンドシステム

    View full-size slide

  6. レコメンドシステムを使ったサービス
    Amazon
    アマゾンの商品レコメンド
    ユーザへの影響
    :
    ● 購買履歴をもとのユーザがほしいと推定
    されるものをレコメンドする
    YouTube
    コンテンツレコメンド
    ユーザへの影響
    :
    ● 閲覧履歴をもとにユーザがほしいと推定
    されるものをレコメンドする

    View full-size slide

  7. 機械学習アプリケーション開発サイクル 例
    1.
    イベント設計
    2.
    データの前処理
    3.
    データセットの生成
    4.
    モデル学習のプラットフォーム
    5.
    バッチ学習とオンライン学習
    6. AB
    テスト

    View full-size slide

  8. 1. イベント設計
    1.
    入力元データをいじれない場合には不要
    2.
    どんなイベントを集めるか
    (impression, click, staytime,..)
    3.
    どんな属性を集めるのか
    (content_id, user_id, device_id…, ...)
    4.
    何を最大化したいのか
    (
    滞在時間
    )
    5.
    新しい人がイベント追加を容易にできるか
    (
    一覧、名前、コード化、レビュー
    …)

    View full-size slide

  9. 2. Seamlessに入ってくるデータの処理
    ● 生データの保存
    ● 所謂前処理
    ○ ストリームに流す
    ○ 特徴量の計算
    (NLP,
    画像解析を通す
    )
    ○ プロファイルの計算
    (
    ユーザやコンテンツのプロファイル計算
    )
    生行動データ
    前処理 (id生成、NLP、画像
    特徴量の計算など)
    コンテンツ系データ
    前処理
    プロファイルなど 2次データ
    コンテンツ特徴量

    View full-size slide

  10. 3. モデル学習に使うデータセットの生成
    ● データセットの作成
    ○ 各前処理で作成した特徴量を
    id
    から取得し、各レコードに特徴量に変換してデータセット生成
    ● データセットの保存
    ○ データセットをストリームにしてオンライン学習に使えるようにする
    ○ データセットを分散ストレージに保存しバッチ学習に使えるようにする
    生行動データ
    前処理 (id生成、NLP、画像
    特徴量の計算など)
    コンテンツ系データ
    前処理 ストリーム
    プロファイルなど 2次データ
    データセット作成
    分散ストレージ
    コンテンツ特徴量

    View full-size slide

  11. 4. モデル学習のプラットフォーム
    モデル学習フェーズの
    PDCA
    サイクルを高速に回すために重要
    1.
    機械学習エンジニアがモデルを
    Config
    ファイルで組める
    (
    特徴量の指定やモデル
    )
    a.
    可視化もできるとさらに 👍
    2. Config
    ファイルの指定とバッチデータによる学習
    (
    長い期間のデータに対して学習
    を行いモデルの良し悪しを検証する
    )
    a. AUC
    などの評価を使う
    b.
    大体この段階でボツなモデルは終了
    3.
    各モデル学習に対し、
    Config
    、学習期間、
    Job
    へのリンク、
    Metrics
    へのリンクなどが
    見れると毎回のサイクルが早くなる

    View full-size slide

  12. 5. バッチ学習したモデルをオンライン学習へ
    バッチ学習が完了すると、学習していた間にも新しいデータが生成されている!
    1.
    バッチ学習したモデル
    ID
    とバッチ学習に使ったデータの期間の最終点を指定して
    オンライン学習を開始
    2.
    オンライン学習は、指定されたモデルと指定された時間点からストリームデータを
    使ってモデルのパラメータを更新し続ける
    ストリーム
    データセット作成
    分散ストレージ バッチ学習 モデル (バッチ)
    オンライン学習 モデル (オンライン)
    モデルConfig

    View full-size slide

  13. 6. ABテスト
    モデルを入れ替えるかどうかの判断のために重要な部分
    1. AB
    テストプラットフォーム
    a.
    トラフィックの分流定義とパラメータの指定
    2. API
    サーバ
    a.
    リクエストごとに分流を行い、
    AB
    テストサービスから対象となる
    AB
    テスト変数を読み込み、機械学習
    サーバの
    API
    をコールする
    3.
    機械学習サーバ
    a. AB
    テストのパラメータによってモデルを選択したり重みを調整したりする
    4.
    行動ログ
    a.
    行動ログに
    AB
    テストパラメータを含めてログに吐き出す
    5.
    集計
    a. AB
    テストの集計
    Job
    がログから集計して、試験グループとベースグループに対する指標計算を行う

    View full-size slide

  14. 6. ABテスト
    クライアント APIサーバ
    ABテストサービス
    機械学習API
    モデルA
    モデルB
    行動データ (ABパラメータを含
    む)
    ログ集計 ダッシュボード
    ABテストプラットフォーム
    (UI)

    AB
    テスト設定
    ②リクエストを送る
    ③分流と
    AB
    テストパラ
    メータ取得

    AB
    テストパラメータ
    を付加してリクエスト

    AB
    テストパラメータによって
    モデルから結果を受け取る
    ⑥結果を返す
    ⑦結果を返す

    AB
    テストパラメータを含む行
    動ログイベント

    AB
    テストグループ
    ごとに集計 ⑨結果を可視化

    View full-size slide

  15. アプリケーションに機械学習を入れる難しさ
    1.
    システムの複雑性が大幅に増す
    a.
    前処理、データセット作成、モデル学習
    Job (
    バッチ
    /
    ストリーム
    )

    AB
    テストのシステム横断の対応
    2.
    機械学習の精度の高さだけではない
    a.
    ビジネス要件として、機械学習の最適解に人間が干渉する必要がある場合も
    (
    例 あるコンテンツは
    常に
    Top
    に配置、
    Ads
    の頻度など
    )
    3.
    機械学習の結果の偏り
    a.
    データの偏りが機械学習により助長される
    (

    .
    ユーザに男性が多い →モデルが男性ウケするものを
    いいものと学習→男性向けコンテンツばかりになる →女性が入ってきても離脱しやすくなる
    )

    View full-size slide

  16. 次回以降
    Open Source

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

    View full-size slide