いっしきまさひこBLOG

Web制作関連、プログラミング関連、旅行記録などなど。

PyData.Tokyo Meetup #19 SysML 聴講ノート

※これはセミナー聴講時の個人的なノートをそのまま公開したものです。誤字誤植や勘違いがある可能性があるのでご了承ください。

PyData.Tokyo Meetup #19 SysML - connpass

19:20 - 19:30 「PyData.Tokyoについて」 PyData.Tokyo オーガナイザー

  • Python+Dataをテーマにしたコミュニティ
  • 世界のPyDataコミュニティにつながることを目指している

19:30 - 20:10 データサイエンティストが力を発揮できるアジャイルデータ活用基盤 @suganuma-koji, @tmshn

  • 基盤を作ったり運用したりがメインの仕事
  • リクルートのビジネスモデル「リボンモデル」 =クライアントとユーザーを結び付けるマッチングプラットフォーム
  • ユーザーにリアルタイムで宿をレコメンドするデモ:
    • 閲覧しているページに基づいてレコメントする宿を表示する
  • 機械学習部分:
    • Embedding: Item Embedding by word2vecで処理
  • データプロダクトのライフサイクル:
    • 知見を溜めるため、コンパクトにイテレーションを回すことが必要
    • それには幅広い技能が必要
    • コミュニケーションコストや工数の問題でイテレーションが遅くなる
  • そこで、さまざまなデータ活用案件に柔軟に応用可能なプラットフォームを用意
    • エンジニアによる都度開発を最小限に抑えて、スムーズなイテレーションを実現する
  • APIの世界:
    • Hacci API: ユーザー行動ログをブラウザからリアルタイムに取得し連携するAPI
    • 汎用API: 任意のキーバリューを設定できるAPI。Pandasから容易に呼び出すなどの機能もある
    • cetflow API: 機械学習のオンライン予測を提供するAPI
    • 集約API: CETのAPIエコシステムはマイクロサービス的に複数のシステムを組み合わせて利用できる。PythonファイルをGitHubにpushするだけで作れる仕組みになっている
  • オブザーバビリティは基盤側で担保:
    • APIのログはStackdriver/BigQueryに連携されている、など
  • リアルタイム処理システム
  • バッチの世界:
  • SQL Farm: BigQueryのSQLとYAMLファイルを書くだけでクエリを定期実行し、汎用APIに自動でロードしてくれる仕組み
  • ジョブ基盤:
    • Airflowでスケジュール・ワークフローを管理し、GKE上でジョブを実行
    • Papermill(Jupyter Notebookをバッチ実行するためのツール)が使える
  • JupyterHub:
    • ローカルではなく、クラウド環境で実行できる(つまり強力)
    • Jupyter NotebookはPythonファイルにコンバートしたうえでプルリクしている(Diff取りやすい)
  • ポイント:
    • データサイエンティストとエンジニアの関心をうまく分離して、データサイエンティストだけで施策をどんどん実行できる環境を作ろう
  • Q:さまざまなコンポーネントがあるが、どうやって技術選択したのか?
    • 関心の分離が大事で、データサイエンティストが使っている言語やツールに合わせた。自動化も優先した

20:20 - 20:50 マシンラーニング、マイクロサービス、マネジメント Shibui Yusuke

  • iOSアプルで「写真検索」機能をリリースした
    • 写真の中から欲しいモノを選択して絞り込み、検索できる

メルカリの機械学習

  • 2017年3月頃から機械学習を導入し始めた
  • 出品検知、写真検索など

SysML

  • MLエンジニア: TensorFlowなどのツールを使ってモデルを開発する
  • SysML: MlOpsとも呼ばれる。機械学習のモデルをシステムで動かす
    • ミッション: 機械学習モデルを歩版で動かす(プラットフォーム開発とインテグレーション)
    • リュケイオン: ワークフローをカバーする独自のプラットフォーム
  • ビジネスで考える:
    • 機械学習の価値は、ビジネスへの還元だと考えている。実用化こそが、SysMLのミッション
  • システムで考える:
    • マイクロサービス化するアーキテクチャにするという結論に至った
  • 出品検知: 特定種類のものを検知する。1システムで複数の機械学習モデルを稼働
    • 第1版: モノリシックで簡単なもの。特定の検知。sk-learn
    • 第1.1版: 特定の検知を2値分類にして強化。モデル追加優先。多クラス分類+2値分類。sk-learn
    • 第1.2版: ディープラーニングとlstio(A/Bテスト)の投入。アーキテクチャ改善優先。docker。TensorFlow+sk-learn
    • 第2版: QAを入れる(ユニットテストはできないからマニュアルテストを)。Kubernetes。1リリースが10分になった

20:50 - 21:00 スポンサーLT

新設ポジション・データエンジニア@Business Intelligenceの紹介 株式会社メルカリ

  • BIエンジニア: BIチーム(仮説検証、インパクトシミュレーション、効果検証)。データ基盤。データエンジニア