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

[CNDT2020]リーガルテックの機械学習基盤を支えるクラウドネイティブ技術の実践

rupy
September 09, 2020

 [CNDT2020]リーガルテックの機械学習基盤を支えるクラウドネイティブ技術の実践

rupy

September 09, 2020
Tweet

Other Decks in Programming

Transcript

  1. ⾈⽊ 類佳 株式会社LegalForce 執⾏役員 兼 最⾼研究開発責任者(CRO: Chief R&D Officer) 経歴:

    元 東京大学情報理工学系研究科 中山英樹研究室(修士) 元 株式会社リクルート 出身:広島県→島根県 技術:Web開発、スマートフォン開発、ゲーム開発、 クラウドインフラ、自然言語処理、画像認識、機械学習等 趣味:ピアノ、ドラム、作曲 !SVLB@GVOBLJ
  2. 三位⼀体の組織構造 法務開発 Practice Development 製品開発 Design & Development 研究開発 Research

    & Development エンジニアではなく、 弁護⼠や作業者がいる 製品のガワを 作っている 製品に⽤いられる 要素技術の開発
  3. 検索 テキスト構造化 テキスト分類 レビュー データ変換 条⽂検索 ⽂書構造解析 ⽂書分類 検査 PDF変換

    Word変換 条ラベリング ⽂分割 類似⽂書推薦 差分⽐較 OCR ⾔語認識 ⽂書検索 情報抽出 権利義務抽出 LegalForce R&D Zoo(1/2) 条アラインメント 情報抽出 表抽出 ⽐較 改⾏位置予測 クエリ⾃動補完 OCR後修正 データ変換後処理 編集⽀援 校閲 ライティング⽀援 ファイルクローラー クローラー
  4. LegalForce R&D Zoo(2/2) データ基盤 契約書アノテーション基盤 評価基盤 データ基盤 データパイプライン アプリケーション基盤 ノートブック

    機械学習基盤 アプリケーション基盤 検索基盤 アノテーション基盤 BI・可視化 汎⽤アノテーション基盤 検索基盤 契約書匿名化 契約書匿名化 マスターデータ管理 オントロジー データカタログ ID基盤 学習基盤 モデルサービング セキュリティ 機密データ保護 監視 システム監視
  5. 機械学習システムの構成要素 • 機械学習以外の部分の要素が⾮常に⼤きい D. Sculley et al., “Hidden Technical Debt

    in Machine Learning Systems”, NeurIPS 2015 (⽇本語訳)図1:真ん中の⼩さな⿊い四⾓い部分で⽰されているように、 実際のMLシステムのごく⼀部のみがMLコードで構成されています。 必要な周辺インフラは広⼤で複雑です。
  6. 機械学習以外に気にすることが多すぎる データ 収集 データ 分析 前処理 学習 評価・ 実験管理 デプ

    ロイ モニタ リング データ取得 データ蓄積 アノテーション データセキュリティ 探索的データ分析(EDA) 簡易MLモデル作成 可視化 データ検証 データ変換 ・クレンジング ・表現変換 ・特徴作成・調整 ・特徴抽出 ・特徴選択 ・特徴構築 ・データ分割 モデルの学習 パラメーター チューニング 並列実⾏ モデルの評価 ロギング・実験管理・再学習 説明可能性 サービング 推論 モデル精度モニタリング
  7. 機械学習以外に気にすることが多すぎる データ 収集 データ 分析 前処理 学習 評価・ 実験管理 デプ

    ロイ モニタ リング データ取得 データ蓄積 アノテーション データセキュリティ 探索的データ分析(EDA) 簡易MLモデル作成 可視化 データ検証 データ変換 ・クレンジング ・表現変換 ・特徴作成・調整 ・特徴抽出 ・特徴選択 ・特徴構築 ・データ分割 モデルの学習 パラメーター チューニング 並列実⾏ モデルの評価 ロギング・実験管理・再学習 説明可能性 サービング 推論 モデル精度モニタリング インフラ インフラ インフラ WEB インフラ インフラ
  8. 機械学習以外に気にすることが多すぎる データ 収集 データ 分析 前処理 評価・ 実験管理 デプ ロイ

    モニタ リング データ取得 データ蓄積 アノテーション データセキュリティ 探索的データ分析(EDA) 簡易MLモデル作成 可視化 データ検証 データ変換 ・クレンジング ・表現変換 ・特徴作成・調整 ・特徴抽出 ・特徴選択 ・特徴構築 ・データ分割 モデルの評価 ロギング・実験管理・再学習 説明可能性 サービング 推論 モデル精度モニタリング インフラ インフラ WEB インフラ インフラ 学習 全体のごく⼀部 モデルの学習 パラメーター チューニング 並列実⾏ インフラ
  9. Change Anything, Change Everything (CACE) • 2014年にGoogleが論⽂で提唱 • ある部分を変えるとあらゆる振る舞いが変わる •

    機械学習のランダム性による D. Sculley, Gary Holt, Daniel Golovin, Eugene Davydov, Todd Phillips, Dietmar Ebner, Vinay Chaudhary, Michael Young SE4ML: Software Engineering for Machine Learning (NeurIPS 2014 Workshop) • 再度モデルを作ることができない • 問題が起きたときに前の状態に戻れない
  10. MLOpsの成熟レベル Googleの定義によると • MLOps レベル 0: ⼿動プロセス • なにも⼯夫を指定ない状態 •

    ⾃動化を含まず⼿動で⾏っている状態 • MLOps レベル 1: ML パイプラインの⾃動化 • 学習のパイプラインが⾃動化されており 継続的学習が⾏われている状態 • パイプラインのデプロイは⼿動 • MLOps レベル 2: CI / CD パイプラインの⾃動化 • 更にパイプラインのデプロイがCI/CDにより⾃動化されている状態 引⽤:https://cloud.google.com/solutions/machine-learning/mlops-continuous-delivery-and-automation- pipelines-in-machine-learning?hl=ja
  11. アノテーション エンドツーエンドMLOps (広範囲の領域をカバー) 実験管理 モデル・データ バージョン管理 Serving ワークフロー データ基盤 ノートブック

    多数のツール(OSS/サービス) データ収集 データ分析 前処理 学習 評価・実験管理 デプロイ モニタリング SageMaker AI Platform Kedro BigQuery Athena Datalab パラメータ調整 Sacred Hydra scikit-optimize VSCode モデル変換 Data Labeling Service Ground Truth データ加⼯ DataPrep Dataproc Cloud Composer Dataflow モニタリング ModelDB Trains MMdnn SageMaker Model Monitor Azure ML Apache Zeppelin ※グルーピングは 正確ではない可能性があります。 ※ごく⼀部です。 Auto ML 説明可能性 分散学習 ノートブック 関連
  12. アノテーション エンドツーエンドMLOps (広範囲の領域をカバー) 実験管理 モデル・データ バージョン管理 Serving ワークフロー データ基盤 ノートブック

    多数のツール(OSS/サービス) データ収集 データ分析 前処理 学習 評価・実験管理 デプロイ モニタリング SageMaker AI Platform Kedro BigQuery Athena Datalab パラメータ調整 Sacred Hydra scikit-optimize VSCode モデル変換 Data Labeling Service Ground Truth データ加⼯ DataPrep Dataproc Cloud Composer Dataflow モニタリング ModelDB Trains MMdnn SageMaker Model Monitor Azure ML Apache Zeppelin ※グルーピングは 正確ではない可能性があります。 ※ごく⼀部です。 Auto ML 説明可能性 分散学習 ノートブック 関連
  13. ツール⽐較検討 AI Platform Training Job Fairing Seldon Core KF Serving

    BentoML ML Flow Tracking ML Flow Model Registry Data Version Control 学習 実験管理 モデル/データ管理 モデルサービング
  14. ツール⽐較検討 AI Platform Training Job Fairing Seldon Core KF Serving

    BentoML ML Flow Tracking ML Flow Model Registry Data Version Control 学習 モデル/データ管理 モデルサービング 採⽤ 採⽤ 採⽤ 採⽤
  15. LegalForceにおけるデータ基盤の役割 • 社内全体のデータを集約・蓄積 • ETLツールによるデータパイプライン • データレイク、データウェアハウス、 データマート • BIツール

    • 契約書データの アノテーションツールの運⽤ • 契約書の匿名化 • ⾃動契約書データの整理・分析 • ラベル付与等による機械学習⽤データの 蓄積
  16. Firelens Aggregator NLB Digdag/Embulk Logging GCS Pub/Sub Dataflow DataLake DataWharehouse

    (BigQuery) (GKE) App(Fargate) ログ転送 Webアプリケーション ログパイプライン データ基盤 ログのフィルタ ECS App(GKE) Cloud DLP
  17. 学習 • 機械学習モデルを実際に学習する • PyTorch / Tenforflow / Scikit-learn /

    XGBoost等の 複数のフレームワークに対応させたい • セキュアにデータにアクセスしつつ GPUをスケールさせながら 学習を⾏いたい
  18. AI Platform Training Job GCP が提供する Managed な学習ジョブ実行サービス ・ ジョブ投入時にGCP

    の学習マシンを決定(計算資源管理が容易) ・ 複数の学習ジョブを非同期に投入可能 Training Job 計算環境 - 計算マシン - リージョン 学習スクリプト - Docker - tar.gz 選択 選択 ジョブ投入 Notebook / Local / Cron 等で実行
  19. Kubeflow Fairing Kubeflow が提供する学習ジョブ管理ツール ・ AI Platform Training Job と同様にジョブ投入が可能

    ・ ジョブ投入後に KF Serving でエンドポイント化するフローが容易 ・ Kubeflow on GKE の構築が前提 AI Hub: "Build, Train, and Deploy XGBoost model using Kubeflow Fairing” より Notebook / Local / Cron で学習実行 (Fairing) KF Serving でエンドポイント立ち上げ
  20. Kubeflow Pipeline Kubeflow が提供するワークフロー管理ツール ・ Kale による Notebook Extension を使うとスムーズに

    Pipeline 実行可能 ・ AI Platform Pipeline (Managed Kubeflow Pipeline) は今後検討 実行
  21. MLflow Tracking 実験に紐づく情報を記録・管理するツール ・ 実験情報はDB / データ・モデルの実体は GCS・S3 に記録 ・

    コードからlog_parameter, log_metrics, log_artifacts, log_modelなどの関 数群を呼び出し記録 ・ log_artifacts : 出力や中間データを実験に紐づけて保存 モデル・データ管理 実験管理 学習 実験情報記録 SQL ・ log_parameter: parameter ・ log_metrics : metrics モデル・データ GCS ・ log_model ・ log_artifacts
  22. 推論APIのサービング • 学習済みのモデルをAPIとして提供する (サービング) • APIはデータを受け取り、推論結果を返却する • 機械学習エンジニアのスキルセットは 推論API開発に適しているしているとは ⾔い難い

    • 機械学習エンジニアがAPI開発を⾏ったり、 API開発を依頼したりすることから開放されるこ とによる開発スピード・アジリティの改善が期待 される
  23. Seldon Core 複数の ML ライブラリ対応のモデルサービングツール ・ GKE に Helm Install

    で容易に導入可能 ・ 推論の Pipeline 化 (Inference Graph) が特徴 Inference Graph 引⽤: https://docs.seldon.io/projec ts/seldon-core/en/v1.1.0/
  24. Seldon Core Dockerfile seldon-core-microservice の起動: エンドポイント化 PredictModel.py に定義された PredictModel オブジェクト

    predict 関数を定義した特定名称のオブジェクトがあれば すぐに ML Endpoint として使える Dockerfile 内で seldon-core-microservice の起動でエンドポイント化 ・ REST / gRPC
  25. KF Serving Kubeflow が提供するモデルサービングツール ・ Predictor (推論) / Explainer (説明)

    / Transfomer(前処理・後処理) を定義 ・ Kubeflow Fairing から Serving へデプロイするフローはスムーズに可能
  26. BentoML 実験管理にも使えるサービングツール ・ ML 推論モデル実装時に bentoml 固有の decorator を利用 ・

    decorate されたコードの学習によって実験管理 ・ 管理されたモデルを利用しサービング (API 仕様ドキュメント自動生成) ML 推論モデル実装 実験管理画面 API 仕様ドキュメント 学習
  27. Model Serving Seldon Core KF Serving BentoML 推論の Pipeline 化

    導⼊・維持 コスト 呼び出しの 柔軟性 採⽤ 柔軟性の高い Inference Graph を使うため Seldon Core を採用
  28. LegalForceにおける MLOpsによる効果 1. アジリティ: データアクセス、分析、学習、デプロイ、 さらに再学習も含めた リリースまでの速度の改善 2. 再現性: 学習結果が再現可能になり、

    実験結果が⽐較しやすく 3. ⾃動化・⾮属⼈化: リリースまでのフローを整備し、 誰でも学習・デプロイができるように 4. セキュア化 データアクセスにおけるセキュリティの向上