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

ゼロから始める Kubeflow での機械学習パイプライン構築

8fa31051503b09846584c49cd53d2f80?s=47 Asei Sugiyama
November 06, 2020

ゼロから始める Kubeflow での機械学習パイプライン構築

機械学習基盤 本番適用と運用の事例・知見共有会 https://mlxse.connpass.com/event/187583/ での発表資料です。
https://docs.google.com/presentation/d/19P_hAZw8W9X1myeV1wuKYVEAHZsOl3-ohcV1E4wug7g/edit?usp=sharing の方が見やすいです。

8fa31051503b09846584c49cd53d2f80?s=128

Asei Sugiyama

November 06, 2020
Tweet

Transcript

  1. ゼロから始める Kubeflow での 機械学習パイプライン構築

  2. © 2020 Repro Inc. 概要 • Repro では機械学習を利用する開発チームがあったものの、経営方針により開発リ ソースを別件に集中するため昨年2名を残して解散 (現在は増員済み)

    • ノウハウもメンバー内に暗黙知化していたため、チームメンバーとともに散逸 • ゼロから再出発し、実際にバッチを基盤の上で動かすまでの道のりで経験した課題 とそれについての取組について共有 • これまでを振り返り、今後の取組が必要な領域についても共有
  3. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 3.

    実証実験の成功率向上に向けた取り組み 4. 複雑なオペレーションを実現するための取り組み a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み ← 本日の主題 5. 残課題と今後の取組 6. まとめ
  4. © 2020 Repro Inc. 自己紹介 • 杉山 阿聖 (Sugiyama Asei)

    • Software Engineer @ Repro AI Labs • TensorFlow に関するコミュニティ活動 • TFX : Issueを立てたりPRを立てたり • docs-l10n: 翻訳 & レビュー • 執筆活動 • 機械学習図鑑 (共著) • WEB+DB vol.119 寄稿 (深層学習入門以前) • 最近の業務 • 機械学習基盤構築 (企画・要件定義・設計・実装) • 各種レビュー (因果推論・Bandit・予測モデル) • 上記に必要な要件検討やマネジメント業務
  5. © 2020 Repro Inc. Repro

  6. © 2020 Repro Inc. Repro AI Labs (Lab) のミッション •

    Repro におけるデータ活用に関する技術の検証 • 例: CV 予測 https://repro.io/pr/10519/ • 実証分析の手法を応用して効果検証
  7. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 ←

    3. 実証実験の成功率向上に向けた取り組み 4. 複雑なオペレーションを実現するための取り組み a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み ← 本日の主題 5. 残課題と今後の取組 6. まとめ
  8. © 2020 Repro Inc. 背景 • Repro では機械学習を利用する開発チームがあったものの、経営方針により開発リ ソースを別件に集中するため昨年2名を残して解散 (現在は増員済み)

    • ノウハウもメンバー内に暗黙知化していたため、チームメンバーとともに散逸 • 2名でゼロから再出発することに
  9. © 2020 Repro Inc. 話さないこと & 話すこと 現在運用中の機械学習基盤 現在構築・運用中の次期機械学習基盤 話さないこと

    話すこと Cloud Composer
  10. © 2020 Repro Inc. 本発表で扱う課題 • 課題1. 行っていた実証実験の成功率が低い • 課題2.

    複雑なオペレーションを要する実証実験を実行できない
  11. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 3.

    実証実験の成功率向上に向けた取り組み ← 4. 複雑なオペレーションを実現するための取り組み a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み ← 本日の主題 5. 残課題と今後の取組 6. まとめ
  12. © 2020 Repro Inc. 原因1. さまざまなテーマに散発的に取り組んでいた • 新規予測モデルの作成 • Contextual

    Bandit • 因果推論 • 自然言語処理 原因2. 標準的な手続きがなく、そのばその場で取り組み方を変えていた 課題1. 実証実験の成功率が低い
  13. © 2020 Repro Inc. • Lab の活動に関するロードマップを整備 • 取り組むテーマについて経営陣と合意形成 •

    今回、ここはあまり触れない 対策1. ロードマップの整備と経営陣との合意形成
  14. © 2020 Repro Inc. • 試行錯誤のプロセスが未定義だったために、 失敗の発生箇所の特定が困難 • プロセスがないため、試行錯誤を行ったあとのプロセスの改 善が不可能

    • 標準的な工程や成果物の定義がないため、チーム内での共 同作業が会話ができないレベルで困難 • 例: “PoC” の定義がない 原因2. 標準的な手続きの欠如
  15. © 2020 Repro Inc. • 実験デザインの概念を持ち込み、試行錯誤の手続き を標準化 • 目的の明確化やデータの集計方法の検討を含めるよ うに、標準的なプロセスを定義

    • 実験を行う前に目的やデータの収集方法について検 討するよう、レポートのテンプレートを作成 • 実験デザインについては 生命科学の実験デザイン [第4版] が詳しい 対策2. プロセスに実験デザインの手法を導入
  16. © 2020 Repro Inc. 別資料 (公開済) を参照 (https://speakerdeck.com/asei/shi-yan-dezainru-men) 実験デザインの活用に関する詳細

  17. © 2020 Repro Inc. • 事前に計画ができるようになった結果、失敗の予兆を捉えられるように • プロセスがドキュメント化されるようになった結果、改善箇所が特定できるようになり、 失敗しないのではなく失敗の結果を次に繋げられるように •

    前述の CV 予測は数回の試行錯誤を行い、最終的な成果にこぎつけた • 標準的なプロセスが定義された結果、継続して行っている予測モデルの作成につい て標準化できるようになり、チーム内の誰でも実施できるように 対策の効果
  18. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 3.

    実証実験の成功率向上に向けた取り組み 4. 複雑なオペレーションを実現するための取り組み ← a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み 5. 残課題と今後の取組 6. まとめ
  19. © 2020 Repro Inc. 原因1. 標準的な開発工程や設計指針の欠如 • Contextual Bandit をQAもなく半自動・半手動で行った結果、大失敗した

    原因2. 安定的に動作する機械学習基盤の欠如 • 俗に言う「基盤がない」状態 • エンジニア抜きで構築でき、運用可能な基盤が必要 課題2. 複雑なオペレーションを要する実証実験を実行できない
  20. © 2020 Repro Inc. 対策1. 開発工程の定義 対策2. 標準的な設計として TFX を導入

    原因1. 標準的な開発工程や設計指針の欠如 企画 机上 実験 FS 実装
  21. © 2020 Repro Inc. Jupyter Notebook を「動く仕様書」と位置づけ、開発プロセスを定義しつなげる 対策1. 開発工程の定義 企画

    机上実験 FS 実装 目的 プロダクトの要求のうち、 技術的な検証が必要な テーマを抽出 目的 検証済みのアルゴリズム をプロダクトに実装 本発表では詳細は割愛 目的 過去データを利用したシ ミュレーションによる、アル ゴリズムの実現可能性検 証 目的 特定顧客とのプロトタイプ を用いた実証実験で、想定 したユースケースに対する 有効性検証 Input 企画書 Output レポート (Notebook) Input レポート (Notebook) Output レポートとプロトタイプ Input レポート (Notebook) Output プロダクト Input (未定義) Output 企画書 Lab の業務範疇
  22. © 2020 Repro Inc. 対策2. 標準的な設計として TFX を導入 TFX (TensorFlow

    Extended) は次の3つを指す 1. 機械学習を利用するシステムの設計思想 2. そのリファレンス実装 (tensorflow/tfx) 3. 機能の実装に必要なライブラリ (TFDV, etc.) 今回導入したのは1. の設計思想 (論文)
  23. © 2020 Repro Inc. • 各コンポーネントはストレージからデータを読み込み、処理結果をストレージに格納す る • 必要に応じてコンポーネントを組み合わせて設計可能 TFX

    におけるパイプラインの設計
  24. © 2020 Repro Inc. 原因2. 安定的に動作する機械学習基盤の欠如 対策: 機械学習基盤の構築 (本日の主題) 以降では実施した工程順に検討事項を紹介

    1. プロトタイプ 2. 要件定義 3. 技術検証 4. 設計 5. 構築 6. テスト
  25. © 2020 Repro Inc. プロトタイプ • 要件定義が困難であり、設計指針が適用できるか不明だったためプロトタイプを開発 • TFX の設計思想に基づいて、Apache

    Airflow (Cloud Composer) で試作 • 設計思想は適用できることを確認 • エラー発生時にログを追いにくく、開発効率や運用の安定性に課題
  26. © 2020 Repro Inc. 要件定義 (1/2) • 基盤を分類 (実験基盤・検証基盤・サービス基盤)し、検証基盤にフォーカス 企画

    机上実験 FS 実装 問題 : 不確定 方法 : 不確定 問題 : 確定 方法 : 確実 問題 : 不確定 方法 : 不確定 問題 : 確定 方法 : 不確定 Lab の業務範疇 N/A 実験基盤 検証基盤 サービス基盤 役割 Notebook によるインタラク ティブな実験の実施 役割 特定の手順による実験を 繰り返し実施 役割 特定の処理を安定的に実 施しサービス提供
  27. © 2020 Repro Inc. 要件定義 (2/2) • 工程と成果物を定義し、インセプションデッキで実験デザインを記述 実施事項 成果物

    工程 机上検証 テーマに沿った実験を行い、 Notebook を記述する レポート (Jupyter Notebook) 企画 レポートに従って実験デザインを行 いインセプションデッキを記述 インセプションデッキ 要件定義 インセプションデッキをもとに要件を 記述 要件定義書 設計 要件定義書・インセプションデッキを もとに仕様・設計を記述 仕様書 要件定義書 実装 仕様書・要件定義書をもとに実装 ソースコード 単体テスト テスト 要件定義書をもとにテスト項目を書 き起こしテスト テスト設計書 テスト結果報告書
  28. © 2020 Repro Inc. 基盤として Kubeflow Pipelines (AI Platform Pipelines)

    を選定 対応状況 要件 • マネージドサービスがあること • スケーラビリティが見込めること • BigQuery を利用しやすいこと • 利用するライブラリを柔軟に選べること • GCP 上でマネージドサービス AI Platform Pipelines が利用可能 • GKE や GCP の機能を用いてスケー ルさせられる見込みあり • 専用の Operator があり実装不要、 GCP 上なのでアクセス制御が容易 • Kubeflow Pipelinesの設計に従い、コ ンテナを自分で実装可能
  29. © 2020 Repro Inc. • Kubernetes に実装された機械学習基 盤の OSS である

    Kubeflow の機能の ひとつ • 単体でもデプロイでき、Kubernetes が 動くならどこでも利用可能 • kind や k3s 上でも動かせるので、 ローカルでの開発も可能 • Argo のラッパーになっており、Web UI や中間成果物の管理、結果の可視化 が可能 Kubeflow Pipelines
  30. © 2020 Repro Inc. AI Platform Pipelines • GCP による

    Kubeflow Pipelines のマ ネージド・サービス • 基本的にはGKE 上に Kubeflow Pipelines がデプロイされるだけ • Kubernetes のクラスタに手を入れるこ とも可能
  31. © 2020 Repro Inc. • TFX の設計思想に基づき設計 • 運用のための監視項目は後述 設計

  32. © 2020 Repro Inc. • 監視する指標についても構築時に検討 • 「顕在化していない問題は対処しない」という方針で検討 • 次の3つの観点から検討

    1. 通常のバッチシステムとしての指標 2. Kubernetes としての指標 3. 機械学習としての指標 インフラ構築・監視設計 (1/3)
  33. © 2020 Repro Inc. インフラ構築・監視設計 (2/3) • 1. 2. で検討した指標は

    GCP デフォルトのダッシュボードで監視可能
  34. © 2020 Repro Inc. • 機械学習としての指標は AI Platform Pipelines の

    Web UI 上から確認可能 • Feature Importance 以外 に AUC や損失の値も可 視化している • 可視化した項目は Notebook で見たものに同 じ インフラ構築・監視設計 (3/3)
  35. © 2020 Repro Inc. 通知 • アプリケーションとしてのエラーや OOMについては Cloud Monitoring

    で デフォルトでログ収集可能 • 上記のエラーは発生時にSlackに通知 するように設定
  36. © 2020 Repro Inc. • インフラの設定は terraform を用いて コードで記述 •

    AI Platform Pipelines のデプロイだけは terraform が未対応のため手動 • GitHub Actions, TerraformCloud を用 いてCI/CDパイプラインを構築 • デプロイ時のノウハウが属人化しない よう、チーム内でトレーニングを実施 IaC & CI/CD
  37. © 2020 Repro Inc. • 要件定義書からテスト項目の作成 • 通常のソフトウェアテストに加えて Notebook の結果を再現できるかをテスト

    テスト
  38. © 2020 Repro Inc. 問題なく動かすことができた • 開発期間 3 mo •

    プロトタイプ開発 1mo • 開発工程の標準化 1mo • 設計・構築・テスト 1mo 結果
  39. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 3.

    実証実験の成功率向上に向けた取り組み 4. 複雑なオペレーションを実現するための取り組み a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み 5. 残課題と今後の取組 ← 6. まとめ
  40. © 2020 Repro Inc. 残課題と今後の取組 1. 実験基盤での業務が非効率 2. 組織内の共通理解の不足 3.

    今後の取り組み
  41. © 2020 Repro Inc. 前処理における課題 • Jupyter Notebook 上にデータ取得のための似たよ うなコードを何度も書いている

    • 各種ライブラリ (metaflow など) を検証したものの、 業務要件の整理が必要という結論に データの取得における課題 • 集計処理の対象になるデータの理解が困難 • サービス開発を行っているエンジニアに支援を要請 して取り組み中 実験基盤での業務が非効率
  42. © 2020 Repro Inc. • これまでに述べた基盤構築を慎重に実施したのは、組織内への展開を行えるように するため • 経営陣や開発組織と共通理解の形成を実施中 •

    経営陣: Human in the loop の展開 • 開発組織: 実験デザインの展開や、エンジニアの短期加入による業務理解 • データサイエンスから秘密のベールを引き剥がし、退屈な仕事にする 組織内の共通理解の不足
  43. © 2020 Repro Inc. 今後の取り組み • MLOps: 機械学習における継続的デリ バリーと自動化のパイプライン で述べ

    られている Level 1 (右図) が次の目標 • 次の内容に取り組みたい 1. Feature Store 2. パイプラインの生成物管理 3. サービス基盤のリプレース
  44. © 2020 Repro Inc. 目次 1. 自己紹介 2. 背景 3.

    実証実験の成功率向上に向けた取り組み 4. 複雑なオペレーションを実現するための取り組み a. 標準的な作業工程の定義に向けた取り組み b. 安定的に動作する機械学習基盤の実現に向けた取り組み 5. 残課題と今後の取組 6. まとめ ←
  45. © 2020 Repro Inc. まとめ • 機械学習基盤についてはいくつか種類があり、寄せ られる期待が異なるため、それを実験基盤・検証基 盤・サービス基盤に整理した •

    実験基盤においては実験デザインの考え方を取り 入れ、業務を標準化したことで、試行錯誤の期間が 短縮し、成功確率が上がった • 検証基盤においてはTFXの考え方を取り入れ、パイ プラインの設計を標準化したことで、短期間で設計・ 構築ができた • サービス提供に向けては関係者の協力を得ること に課題があり、Human in the loop や実験デザイン を共通言語とすべく取り組み中
  46. ご静聴ありがとうございました