Mais conteúdo relacionado Semelhante a LT.22 機械学習におけるPDCAを回せる環境構築の話 (20) LT.22 機械学習におけるPDCAを回せる環境構築の話 2. 自己紹介
● 氏名:坂本 昂輝
● 経歴:阪大の基礎工/情報院
卒。2018年にGIGに入社し、
メディアサイト制作のバック
エンドを担当。2019年から
は自社サービスWorkshipの
レコメンドエンジンやスコア
リングシステムの開発、およ
びデータ分析業務に従事して
いる。
● 趣味:ゲーム(FPS)、筋ト
レ(週3)
2
3. 目次
● プレゼンの目的と対象者
○ 目的
■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有
■ 社内の方々へ、仕事内容の共有
○ 対象者
■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方
■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方
● Workship
○ 概要
○ スコアリング
● 機械学習基盤
○ 最初の全体構成と PDCA
■ Google Cloud Functions
○ 改善後の全体構成と PDCA
■ アノテーションシステム
■ Docker 本番運用
■ スコアリング API
● データ分析基盤
○ KPI 確認用シート
○ オンライン分析 Jupyter Notebook
○ データ分析の PDCA 3
4. 目次
● プレゼンの目的と対象者
○ 目的
■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有
■ 社内の方々へ、仕事内容の共有
○ 対象者
■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方
■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方
● Workship
○ 概要
○ スコアリング
● 機械学習基盤
○ 最初の全体構成と PDCA
■ Google Cloud Functions
○ 改善後の全体構成と PDCA
■ アノテーションシステム
■ Docker 本番運用
■ スコアリング API
● データ分析基盤
○ KPI 確認用シート
○ オンライン分析 Jupyter Notebook
○ データ分析の PDCA 4
5. 目次
● プレゼンの目的と対象者
○ 目的
■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有
■ 社内の方々へ、仕事内容の共有
○ 対象者
■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方
■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方
● Workship
○ 概要
○ スコアリング
● 機械学習基盤
○ 最初の全体構成と PDCA
■ Google Cloud Functions
○ 改善後の全体構成と PDCA
■ アノテーションシステム
■ Docker 本番運用
■ スコアリング API
● データ分析基盤
○ KPI 確認用シート
○ オンライン分析 Jupyter Notebook
○ データ分析の PDCA 5
7. スコアリング
● プロフィールやユーザ行動情報等をもとに、フリーランスを点数化
● これまでのアプローチ
○ プロフィールの各情報に対して点数を付与し、その合計をスコアとする
■ 離散的で差がつかない
○ プロフィールの各情報に対して関数を適用し、その合計をスコアとする
■ スコアの分布の広がりを調整しにくい
■ 評価できない
■ 質ではなく、量でしか判断できない
● 現在のアプローチ
○ 機械学習でスコアを予測する
■ 単純な関数ではない
■ 例1:文章量で考えた場合、多すぎても少なすぎてもダメ
■ 例2:職業に依って重要なスキルは変化する
● 問題点
○ 最初はデータがない
■ 採用のプロにヒアリングしながら、プロフィールの評価データを作成する必要
7
8. 目次
● プレゼンの目的と対象者
○ 目的
■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有
■ 社内の方々へ、仕事内容の共有
○ 対象者
■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方
■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方
● Workship
○ 概要
○ スコアリング
● 機械学習基盤
○ 最初の全体構成と PDCA
■ Google Cloud Functions
○ 改善後の全体構成と PDCA
■ アノテーションシステム
■ Docker 本番運用
■ スコアリング API
● データ分析基盤
○ KPI 確認用シート
○ オンライン分析 Jupyter Notebook
○ データ分析の PDCA 8
10. Google Cloud Functions
● GCP のサーバレスコンピューティングサービス
● メリット
○ 対象言語で関数を記述すると、イベントを起点に実行してくれる
○ 対象言語
■ Go 1.1
■ Node.js 6, 8, 10
■ Python 3.7
● 問題
○ 容量が少ない (512MB)
■ 文章を精査するためのビルド済み解析器を複数置くことができない
■ 高度な辞書を置くことができない
● 解決策
○ Google NLP (Natural Language Processing) との連携
■ 高い (月5万)
10
11. 最初の PDCA
● 目標:指標○○を××以下にする
● 前作業:Bigquery からユーザデータを csv 形式でダウンロードし、スプレ
ッドシートで開いてアノテーション
○ 非常に見にくいので、Workship 上でプロフィールを開いて確認
■ プロフィールが更新されると誤っ
た点数をつけてしまうリスク
○ アノテーションの際、どのような点に
着目して点数をつけたかをメモ
■ 特徴ベクトル構築の参考にする
11
aa
Plan
前作業のメモを
参考に、特徴量
の追加計画
Do
特徴量の追加、
パラメータチュ
ーニング
Check
指標○○を手作業
で確認
Action
改善されていたら
コード&モデルデ
プロイ
14. Docker 本番運用
● 1台の物理サーバ上にコンテナを展開
● Docker で実現している機能
○ Jupyter Notebook オンラインデータ分析
■ Jupyter Notebook を用いたデータ分析の結果を誰でも閲覧可能
○ スコアリング API
■ 全フリーランスのスコアを返却
○ アノテーション用スコアリング API
■ 1フリーランスのスコアを返却
○ 学習バッチ
■ 1日1回、モデルを自動更新
● 注意点
○ 分析、スコアリングAPI、学習バッチなど、どれもお客様
に対してクリティカルな影響を与えるものではなく、
また”現状では”技術負債になりかねないため、
オーケストレーションツールは導入していない
14
15. papermill
● Jupyter Notebook (.ipynb) を CUI から実行可能とするツール
● cron と組み合わせることで Jupyter Notebook のバッチを作成可能
○ .ipynb から .py に変換する手間を省略
○ 1日毎にモデル学習を自動実行
● 導入方法
● 使い方
● 重要な点
○ 実行結果(モデルの評価結果を含む) result.ipynb をオンラインで確認可能
○ -p で引数を渡すことが可能なので、これを応用すればバッチ学習時には実行したくないコー
ドを Notebook 内に置いておくことが可能 15
$ pip install papermill
$ papermill model_training.ipynb result.ipynb -p args False
16. 改善後の PDCA
● 目標:指標○○を××以下にする
● 前作業:アノテーションシステムにアクセスし、アノテーション
○ ブラウザでプロフィールを確認かつ点数を付与することが可能
○ 各訓練データにコメントを付与
16
aa
Plan
前作業のメモを
参考に、特徴量
の追加計画
Do
特徴量の追加、
コードデプロイ
Check
自動アウトプット
された結果にアク
セスして確認
Action
改善されていなか
ったらモデルロー
ルバック
18. 目次
● プレゼンの目的と対象者
○ 目的
■ 機械学習やデータ分析基盤を構築する上で便利だったことの共有
■ 社内の方々へ、仕事内容の共有
○ 対象者
■ スタートアップで機械学習、もしくはデータサイエンスを活用しようとしている方
■ 大企業でも、新規プロジェクトでデータがないor少ない状態で進めようとしている方
● Workship
○ 概要
○ スコアリング
● 機械学習基盤
○ 最初の全体構成と PDCA
■ Google Cloud Functions
○ 改善後の全体構成と PDCA
■ アノテーションシステム
■ Docker 本番運用
■ スコアリング API
● データ分析基盤
○ KPI 確認用シート
○ オンライン分析 Jupyter Notebook
○ データ分析の PDCA 18
19. KPI 確認用シート
● KPI を可視化したスプレッドシート
● 構成要素
○ Google Spreadsheet
○ GAS (Google Apps Script)
○ Bigquery
● メリット
○ 簡単で安い
○ 毎日の KPI 確認が気軽
○ KPI の長期的な推移を予測
19
20. オンライン Jupyter Notebook
● KPI 確認用シートでは補いきれない分析を行なっている Jupyter Notebook
● メリット
○ オンラインで公開しており、
権限があれば閲覧できる
○ 詳しい分析はここで行い、
Markdown 形式でレポート
を残しておけば、わざわざ
データサイエンティストに
ありがちなドキュメントを
作成する必要がない
20
21. データ分析の PDCA (予定)
● 目標:○○の数値を××まで増加させる
● 前作業:コンバージョンを予測するモデルを構築
○ あらかじめ小さめのサンプルでA/Bテストを行い、機械学習モデルに対して、「施策の対象
となることでコンバージョンする」顧客の特徴を学ばせておく
21
aa
Plan
何らかの施策を
計画
Do
CVRが高めのサ
ンプルに対して
A/Bテスト
Check
施策の効果を測定
Action
結果を踏まえてモ
デルを改善
23. 参考
● 仕事ではじめる機械学習
○ 有賀 康顕、中山 心太、西林 孝 著 O’REILLY
● Jupyter だけで機械学習を実サービス展開できる基盤
○ https://engineer.recruit-lifestyle.co.jp/techblog/2018-10-04-ml-platform/
● 2018年なぜ私達はコンテナ/Dockerを使うのか
○ https://cloudpack.media/41647
23
24. Good is good.
We provide opportunities to The SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
25. GIG INC.
社員、業務委託 全職種積極採用中です!
経験者採用(1年以上)
● ディレクター / マーケター / 編集者
● フロントエンド / バックエンド / インフラ
● デザイナー / アートディレクター
● 人事 / 財務
職種未経験者も検討
● ディレクター / マーケター / 編集者
● バックエンド
新卒も検討
● マーケター / 編集者
GIG INCのこと
こちらの箱に連絡先をいれてください
26. Copyright © GIG INC. All Rights Reserved.CONFIDENTIAL
運命の仕事相手
Dramatic project matching