Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッション 発表資料)

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 55 Anzeige

MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッション 発表資料)

MLOps に基づく AI/ML 実運用最前線
~画像、動画データにおける MLOps 事例のご紹介~
(映像情報メディア学会2021年冬季大会企画セッション 発表資料)

2021年12月16日

NTTデータ
山口 永

MLOps に基づく AI/ML 実運用最前線
~画像、動画データにおける MLOps 事例のご紹介~
(映像情報メディア学会2021年冬季大会企画セッション 発表資料)

2021年12月16日

NTTデータ
山口 永

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッション 発表資料) (20)

Anzeige

Weitere von NTT DATA Technology & Innovation (20)

Aktuellste (20)

Anzeige

MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッション 発表資料)

  1. 1. © 2021 NTT DATA Corporation 映像情報メディア学会2021年冬季大会企画セッション MLOpsに基づくAI/ML実運用最前線 ~画像、動画データにおけるMLOps事例のご紹介~ 2021年12月16日 株式会社NTTデータ 山口 永
  2. 2. サマリー ✓ 機械学習のシステム開発はなぜ上手くいかないのか? ✓ どうすれば良いのか? ✓ 画像+動画データにおけるベストプラクティスは?
  3. 3. © 2021 NTT DATA Corporation 3 なぜMLOpsが必要なのか?
  4. 4. 一般的なビジネスプロセス 企画・戦略構想 検証 開発 運用 GTM UTM PoB PoC PoV 勝ち目ありそうなコンセ プトや戦略をうまく作り 上げたい 立てた戦略の実現性 を検証で確認し、可 能性を確認したい 誰より(競合)も早く リリースしたい 適宜、ニーズにより 機能・サービス拡 大したい ◼ フェーズごとに狙いが分かれている。 フェーズ ビジネス 一般の 狙い AI/ML 固有の 狙い 戦略にAI/MLを活か し、(競合と)差別 化を図りたい ビジネス&技術の双方 の実現性を確かめた い 誰より(競合)も早く リリースしたい ※ 一般的なビジネス開発と 一緒 サービス価値(≒モ デル価値)を継続 的に向上したい 図1:DX案件の導入フェーズ
  5. 5. AIだとの場合は? 企画・戦略構想 検証 開発 運用 GTM UTM PoB PoC PoV 課題1(PoC) 精度面がネックでPoCから商用適用へたどり 着けない 課題2(商用) 通常のシテム開発の違いがネックでデリバリースピード が出せず、ビジネス価値を維持できない ◼ PoCとデリバリーでそれぞれ課題があり、前に進まない、、、 図1:DX案件の導入フェーズ
  6. 6. 課題1:PoCから商用フェーズへ移行出来ない 案件化前 実証実験(PoC) 商用開発 概要 案件数 FY2018~ 自社データでどの程度 価値のあるサービスができるか 素早く手軽に見極めたい 全大量データをフル活用したAI &堅牢なサービスにて 業務/サービス変革を達成したい ニーズ 汎用AI すぐ使えるツールセットでデモ スピーディーに低コストで 自社データを使って AIモデル作成~デモアプリ作成を実行 高品質システム構築 (大量データを利用したAI&堅牢 基盤) AIで一般的には どの程度のことができるか知り たい 20件 8件 3件 某通信会社 某広告代理店 某エンタメ企業 某電力会社 : 某エンタメ企業 某電力会社 : 某電力会社 : ◼ 短期間にて精度面で実用可能なAIを作成することは困難である事から、 PoCから商用フェーズへ辿りつかない案件が多い(※ PoC期間は3カ月) 図1:PoCから商用開発への移行率の関係
  7. 7. 参考:AI開発は試行錯誤の繰り返し 1 2 3 4 5 6 図1:AIモデルチューニングプロセス(CRISP-DMを元に作成) CRISP-DM:https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining ◼ AIモデルチューニングプロセスは試行錯誤の繰り返し 分析デザインを行ったり来たりしながらチューニング繰り返し、ビジネス要求に耐えられる精度を目指す
  8. 8. 課題1:PoCから商用フェーズへ移行出来ない 図1:PoCから商用開発への移行率の関係 100% 80% 60% 40% 20% 0% モデルチューニング 回数 1回 5回 2回 3回 4回 前提:一回のPoCが3か月とした場合、3回以上モデルチューニングを行う事で、成功確率が80%以上を推移 ◼ PoCが成功する確率(≒商用開発へ発展)は、チューニング回数と相関あり。 →チューニングを高速化していかに回数をこなせるかが重要
  9. 9. 課題2:デリバリースピードが出せずビジネス価値が維持できない 図1:[Sculley, 2015] より翻訳をして引用 URL:https://papers.nips.cc /paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf 小さい、、、 ◼ 機械学習モデルを作成するコード部分は、機械学習システム全体の一部分 ◼ 比重はとても小さく、それ以外の検討事項が多すぎる
  10. 10. 参考: 機械学習システム開発の成功率は非常に低い ◼ 商用成功は13%に留まり、87%は適用に失敗している 13% 87% 商用運用に成功 商用適用に失敗 https://venturebeat.com/2019/07/19/why-do- 87-of-data-science-projects-never-make-it- into-production/ AIの商用システム稼働率 図1:PoCから商用開発への移行率の関係
  11. 11. 参考: 機械学習システム開発の成功率は非常に低い 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します データ品質をチェック +加工して、データ サイエンティストに 高品質なデータを 提供致します AIモデルを内包したア プリケーション開発実 施+当該アプリを商 用システムでデプロイ します。 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 アプリとモデル精度を 監視して、アプリエ ラーはDevへ連絡、 精度劣化はAIエン ジニアへ連絡します 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) 実業務に耐えら れるような、高 精度なモデル を作成します ◼ 機械学習の商用開発フェーズでは、PoCフェーズと異なり様々なケイパビリティの専門家が コラボレーションしながら開発を進める必要があります。
  12. 12. 参考: 機械学習システム開発の成功率は非常に低い 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) 実業務に耐えら れるような、高 精度なモデル を作成します ◼ 参画する複数の専門家のケイパビリティがかなり異なるため、連携コストが大きくなる事から、 全体の生産性は低下しがちの傾向にあります。 ソースコードは Notebook形式のまま で、グローバル変数多 用+エラー処理も甘い ので、このままでは商 用で利用できない よ! アプリのエラーログが分 かりずらいので、ジョブ が失敗した際にディス パッチ先が判断しずら い、、 モデル精度をチェック するための閾値が分 からないから、精度劣 化の閾値基準が分 からないよ! 上流システムから 流れてくるデータに 関してスキーマ変 更が発生。 これではAIエンジ ニア側に高品質 なデータを渡せな いよ!
  13. 13. © 2021 NTT DATA Corporation 13 MLOpsに関する NTTデータの取り組み
  14. 14. MLOps導入サービスの開始 ◼ 2020年9月30日に社外プレスにて公開  AIにおいては素早く精度を高めつつも、サービス公 開後に継続的に精度改善を行う必要があるため、 既存のDevOpsサービスにおける顧客へ素早く価値 を届けるためのノウハウをベースに、多数のAI案件 で得られた知見を本サービスへ適用  本サービスを導入する事で、従来は数カ月ほどかか るAIサービスを最短数週間で実現し、継続的にビジ ネス価値を改善  3年間で案件への導入件数100件を目指す *1 https://www.nttdata.com/jp/ja/news/release/2020/093001/
  15. 15. MLOpsサービスイメージ(1/3) ツールは案件毎に 最適な物をテーラーリング データ確認 データ前処理 モデル設計 モデル管理 評価 1 3 4 5 6 2 学習 プロセス 期待効果 OSS 4週間を 1週間へ短縮 2週間を 作業ゼロへ 1週間を 作業ゼロへ Amazon SageMaker Machine Learning クラウドサービス 図1:MLOpsツールチェーン Amazon Web Service Google Cloud Microsoft Azure AI Platform AutoML Vision AutoML Table ◼ 試行錯誤回数(≒モデルチューニング回数)を増加させるためにはDevOpsツールのMachine Learning版 が必須(≒MLOps) ◼ ツール導入により、250%の高速化(=3か月PoCで平均5回のチューニング)が可能
  16. 16. MLOpsサービスイメージ(2/3) 開発時期・状況 CD用途 α月 α+1月 α+2月 α+3月 α+4月 テスト機配信(インテグ) 21回 54回 225回 126回 36回 商用β配信(サイレントリリース) 12回 15回 12回 商用ストア配信(リリース) 1回 3回 最終的には隔週で商用リリース ➢ ML版“CI“からはじめる ✓ サーバー、エッジの両方とも精度監視を行い、常に業務的に意味がある モデルになるようCECDを行うため、パイプラインを拡張 ✓ MLモデルを継続的にテストするためのパイプライン作成 ✓ MLモデルのテストは決定論的では無く確率論的に振舞う 繰り返す ➢ ” CD”と”CE”を同時導入 ◼ ML版CI・CDに加えて、継続的なモデル評価(CE)を行うパイプラインを導入し、 常に価値のあるモデルを商用サービスへ繰り返しリリースするフローを整備。 図1:機械学習開発の自動化イメージ
  17. 17. MLOpsサービスイメージ(3/3) ◼ AIモデル開発はアプリケーション開発と同様で、作るだけではなく運用する事が重要 ◼ 作業自動化を進める事で、ぐるぐるを効率化させる 1.モデル開発 入力データ 正解データ 2.デプロイ 入力データ 予測結果 データキャプチャー 入力データ 予測結果 3.モデル精度監視 Requese Response 4.データ作成+再学習 新しい 入力データ 新しい 正解データ MLチーム Opsチーム 業務チーム 1だけでは無く、 2、3、4が重要で、 Opsツールで効率化 を図りたい 図1:機械学習の開発サイクル
  18. 18. (参考)リリース頻度向上≒顧客満足度向上 ◼ 機械学習システムの開発プロセスを最適化する事で改善したモデルを継続リリースし、 その結果エンドユーザーからの評価が高まると考えております。 図1:リリース頻度(X軸)と顧客満足度(Y軸)の関係
  19. 19. © 2021 NTT DATA Corporation 19 MLOps技術の紹介
  20. 20. 機械学習の開発フロー(1/2) ◼ 機械学習開発の大まかな流れ、、 学習 評価 前処理 特徴量 ストア 実験環境 ステージング/プロダクション環境 ソースコード (自動化パイプライン) ソースリポジトリ (VCS) CI CD モデル構築・評価 (自動化されたパイプライン) CD モデル レジストリ 予測 サーバ モニタリング 通知 図1:機械学習開発のワークフロー
  21. 21. 機械学習の開発フロー(1/2) ◼ 各工程ごとに必要な機能は異なります、、 学習 評価 前処理 特徴量 ストア 実験環境 ステージング/プロダクション環境 ソースコード (自動化パイプライン) ソースリポジトリ (VCS) CI CD モデル構築・評価 (自動化されたパイプライン) CD モデル レジストリ 予測 サーバ モニタリング 通知 パイプライン化(処理フローの定義) 本番環境でパイプラインを実行 することで、再現性を担保 試行錯誤でのAIモデル開発 運用における 精度監視 実験・本番時に利用できる 一元化されたリポジトリ 自動テスト 自動ビルド 図1:機械学習開発のワークフロー
  22. 22. 機械学習開発フェーズ毎に必要な機能(1/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 1 共通 複数の開発者がコラボレーション可能 な開発環境 〇 〇 〇 〇 共通化された開発環境 ・Notebook形式の開発環境 ・JupyterHub ・JupyterGateway ・Kubeflow 2 ソースコード共有が可能 〇 〇 〇 〇 ソースコード共有が可能 ・ソースコードバージョン管理 ・Git 3 CPU、GPU等の計算リソースを柔軟に 利用したい。 〇 〇 〇 計算リソースを自由に利用したい。 ・計算リソース抽象化 ・Kubernetes 4 各種運用作業を自動化したい。 〇 〇 〇 〇 機械学習版CICD ・CI(ContinusIntegration) ・CT(ContinusTuning) ・CD(ContinusDerivery) ・CM(ContinusMonitaring) ・個別実装 5 データ収集と管 理 商品の画像を撮影しサーバに格納する 〇 撮影画像のアップロード ・LabelingTool ・CVAT ・LabelStudio ・VoTT 6 データを検索したい 〇 〇 〇 必要なデータを検索して、データ毎の意味 を確認したい ・DataCatalogTool ・Collibra ・Alation 7 画像にラベルを付与する 〇 〇 ラベル付与作業のコスト削減支援 同上 同上 8 前処理 機械学習に適さない画像を削除する 〇 異常値などの自動判別 同上 同上 9 付与されたラベルの誤りを修正する 〇 付与ラベルチェックのコスト削減支援 同上 同上 10 データの品質を確認する 〇 各種データ品質の確認 ・データ品質確認 ・GreatExpectations ・Dequu 表1:機械学習開発フェーズ毎に必要な機能
  23. 23. 機械学習開発フェーズ毎に必要な機能(2/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 11 特徴量作成 データの水増しや正規化などの、後続 のモデル作成による推論精度が高くな るようなデータ加工を行う 〇 データ前処理が可能な実行環境 ・前処理実行環境 ・Python ・Spark ・dbt 12 どんな特徴量を作成すれば良いか考え る 〇 探索的にデータの傾向を確認したい ・EDA ・Re:Dash ・Metabase ・Pandas or Koalas ・Bamboolib 13 二値化等の特徴量が分かりやすくなる 加工処理を実施する 〇 特徴量加工処理が可能な実行環境 ・特徴量加工実行環境 同上 14 似た商品を検索できるようにしたい 〇 特徴量ベクトル間の距離検索 ・ベクトル化+量子化 ・weaviate 15 特徴量設計したデータをバージョン管 理する 〇 データバージョン管理と特徴をストア可 能な機能 ・データバージョン管理 ・DVC ・GitLFS ・Pachyderm 16 加工したデータをACID+最適な フォーマットで管理したい 〇 最適なストレージフォーマット ・ACIDストレージフォーマット ・DeltaLake ・Hudi ・IceBerg 17 加工した特徴量データをバッチ学習用 とオンライン推論用の用途に分けたい 〇 データバージョン管理と特徴をストア可 能な機能 ・FeatureStore ・Feast ・HopsWorks ・Tecton 18 モデル学習 モデルのトレーニングに利用するデー タ、検証に利用するデータを検証方式 (holdout、cross validation)にした がって分割する 〇 トレーニングデータ、検証データの正解 ラベルの分散や画像データの特徴(ノルム、 エントロピーなど)を考慮した自動分割支 援 ・データ分割 ・各種MLFrameWork 19 なるべく短時間で学習を終わらせる 〇 分散ノードで並列学習したい ・分散データ学習 ・Horovod 20 識別商品の追加&削除を考慮して、再 学習を行う。 〇 学習済みモデルから差分データを使って 学習を行う。 ・FineTuning ・各種MLFrameWork 表1:機械学習開発フェーズ毎に必要な機能
  24. 24. 機械学習開発フェーズ毎に必要な機能(3/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 21 評価 モデル精度の評価と管理を行う 〇 モデルの実施結果(学習時間、検証データ 予測時間、予測結果)の自動評価(ダウング レードの自動検証) ・実験管理機能 ・MLFlow ・Polyaxon 22 最適な性能を出すモデルを探索する 〇 ハイパーパラメータをチューニングし検 証用データを使って予測精度を確認に最 適な性能モデルをgrid seachする ・ハイパーパラメーターチュー ニング ・ニューラルモデルサーチ ・Katib ・HyperOpt ・Optuna 23 学習済モデルをモデルリポジトリに登 録する 〇 モデルリポジトリへの学習済みモデルの 登録 ・ModelRegistry ・ModelRegistry 24 シチズンデータサイエンティストでも 最適なモデル作成を行いたい。 〇 自動でモデル学習と最適化を行う ・AutoML ・NoCodeAI ・Pycaret ・AutoKeras 25 後続のDev側で引継ぎやすいように、 Script+Model形式を標準化する 〇 モデルフォーマットの標準化 ・各種Scirpt呼び出し形式標準化 ・モデルフォーマット標準化 ・MLflowModels ・MlflowProject ・Onnx 26 作成したDeepLearnnigモデルの構造 を確認して、無駄が無いか可視化した い 〇 DeepLearningで作成したモデルをユー ザーフレンドリーなGUIで可視化+デバッ グしたい ・NuralArchitectureDebug ・Netron ・Tensorflowboard 27 モデルの再現性を確保する 〇 トレーニングに使用するデータ、検証に 使用するデータ、パイプライン、ハイ パーパラメータ学習済みモデルをDocker イメージにパッケージングする ・コンテナイメージ化 ・ContainerRegistry ・Docker ・Harbor ・GitlabRegistry 28 前処理~評価までの一連のタスクを自 動化し、繰り返し評価を行う 〇 〇 データ抽出~前処理~モデルの実行まで の一連の手順をパイプラインとして構築 し自動実行する ・パイプライン機能 ・MlflowMultStep ・Airflow ・Kubeflow ・ZenML ・Kedoro ・TFX 表1:機械学習開発フェーズ毎に必要な機能
  25. 25. 機械学習開発フェーズ毎に必要な機能(4/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 29 モデルの推論根拠や公平性を確認した い 〇 AIモデルの推論根拠や、人種+性別など の本人の努力ではどうしても変えられな い属性利用を検出したい ・ExplanationAI ・公平性 ・Shaply ・Lime ・Fairlearn 30 Notebookベースでパイプラン処理を 実装する 〇 〇 各種処理をパイプライン化するに当たり、 JupyterNotebook形式のファイルも外部 引数を与えた形で呼び出し可能な形にす る。 ・Notebook形式ファイルの実行 ・PapperMills 32 サービング 精度評価で問題なかったモデルをデプ ロイする 〇 モデルレジストリ経由で、APIサーバーと して環境にデプロイする ・Serving&Deploy ・MLflow ・SeldonCore ・BentML 33 推論コストを下げるような取り組みを したい。 〇 〇 〇 DeepLearningで作成したモデルのネット ワーク構造の最適化 ・モデル構造最適化 ・Trition ・TVM 34 モデル運用 ABテストを実施したい、、 〇 ABテスト環境を自作せずに実現可能 ・Canaryリリース ・ブルーグリーンデプロイメン ト ・Kubernetes ・Istio 35 データドリフトやコンセプトドリフト を検知する 〇 学習データと推論データの分布的なズレ を検知する ・データドリフト検知 ・コンセプトドリフト検知 ・AllibiDetect ・Evidently 表1:機械学習開発フェーズ毎に必要な機能
  26. 26. © 2021 NTT DATA Corporation 26 画像+動画におけるMLOpsの導入事例
  27. 27. 画像+動画はなぜ難しいのか?(1/2) ◼ 構造化データと比較して、非構造化データは開発+運用コストが桁違いにかかる、、 (例:学習+推論にGPUが必須、、、) A)構造化データ B)非構造化データ Bと比 較して、 開発+ 運用コ ストは 小さい 図1:開発+運用コスト構造
  28. 28. 画像+動画はなぜ難しいのか?(2/2) ◼ 複数の施策を組み合わせる事で、現実的なコスト(≒マネタイズ可能)に落とし込む必要がある、、 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  29. 29. 画像アノテーション効率化(1/5) ◼ 赤枠の取り組み事例に関してご紹介致します 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  30. 30. 画像アノテーション効率化(2/5) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 1 共通 複数の開発者がコラボレーション可能 な開発環境 〇 〇 〇 〇 共通化された開発環境 ・Notebook形式の開発環境 ・JupyterHub ・JupyterGateway ・Kubeflow 2 ソースコード共有が可能 〇 〇 〇 〇 ソースコード共有が可能 ・ソースコードバージョン管理 ・Git 3 CPU、GPU等の計算リソースを柔軟に 利用したい。 〇 〇 〇 計算リソースを自由に利用したい。 ・計算リソース抽象化 ・Kubernetes 4 各種運用作業を自動化したい。 〇 〇 〇 〇 機械学習版CICD ・CI(ContinusIntegration) ・CT(ContinusTuning) ・CD(ContinusDerivery) ・CM(ContinusMonitaring) ・個別実装 5 データ収集と管 理 商品の画像を撮影しサーバに格納する 〇 撮影画像のアップロード ・LabelingTool ・CVAT ・LabelStudio ・VoTT 6 データを検索したい 〇 〇 〇 必要なデータを検索して、データ毎の意味 を確認したい ・DataCatalogTool ・Collibra ・Alation 7 画像にラベルを付与する 〇 〇 ラベル付与作業のコスト削減支援 同上 同上 8 前処理 機械学習に適さない画像を削除する 〇 異常値などの自動判別 同上 同上 9 付与されたラベルの誤りを修正する 〇 付与ラベルチェックのコスト削減支援 同上 同上 10 データの品質を確認する 〇 各種データ品質の確認 ・データ品質確認 ・GreatExpectations ・Dequu 表1:機械学習開発フェーズ毎に必要な機能
  31. 31. 画像アノテーション効率化(3/5) 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) 実業務に耐えら れるような、高 精度なモデル を作成します ソースコードは Notebook形式のまま で、グローバル変数多 用+エラー処理も甘い ので、このままでは商 用で利用できない よ! アプリのエラーログが分 かりずらいので、ジョブ が失敗した際にディス パッチ先が判断しずら い、、 モデル精度をチェック するための閾値が分 からないから、精度劣 化の閾値基準が分 からないよ! アノテーションする 画像枚数が多す ぎて、、とても稼 働がかか る!!! ◼ 画像アノテーションは地味に稼働(≒お金)がかかる、、、
  32. 32. 画像アノテーション効率化(4/5) ◼ CVATはインテルで開発されたコンピュータービジョン用OSSアノテーションツール ◼ 自分で作成したモデルを用いたAutomatic annotationを実行可能(=Active Learning) 図1:CVAT画面例
  33. 33. 画像アノテーション効率化(5/5) ◼ AIが得意な識別はAIに任せる ◼ 逆にAIが苦手な識別は、先生(≒専門家)と組み合わせたで、AIをさらに賢くする 1.AIで判定 2.確信度で場合分け 0.90 0.89 0.70 0.40 0.20 0.09 0.05 0.02 0.01 赤枠は“AI自信なし”なので、集中的に学習が必要 例:英語は得意だが数学が苦手な生徒は、数学 を集中的に勉強する必要あり クレーム 確信度 3-1.そのままAIで再学習 3-2.人手で再ラベリング後、 AIで再学習 AIが苦手なデータ(科目)は、専門家 から答えを教えてもらって、学習する 専門家
  34. 34. 分散学習(1/4) ◼ 赤枠の取り組み事例に関してご紹介致します 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  35. 35. 分散学習(2/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 11 特徴量作成 データの水増しや正規化などの、後続 のモデル作成による推論精度が高くな るようなデータ加工を行う 〇 データ前処理が可能な実行環境 ・前処理実行環境 ・Python ・Spark ・dbt 12 どんな特徴量を作成すれば良いか考え る 〇 探索的にデータの傾向を確認したい ・EDA ・Re:Dash ・Metabase ・Pandas or Koalas ・Bamboolib 13 二値化等の特徴量が分かりやすくなる 加工処理を実施する 〇 特徴量加工処理が可能な実行環境 ・特徴量加工実行環境 同上 14 似た商品を検索できるようにしたい 〇 特徴量ベクトル間の距離検索 ・ベクトル化+量子化 ・weaviate 15 特徴量設計したデータをバージョン管 理する 〇 データバージョン管理と特徴をストア可 能な機能 ・データバージョン管理 ・DVC ・GitLFS ・Pachyderm 16 加工したデータをACID+最適な フォーマットで管理したい 〇 最適なストレージフォーマット ・ACIDストレージフォーマット ・DeltaLake ・Hudi ・IceBerg 17 加工した特徴量データをバッチ学習用 とオンライン推論用の用途に分けたい 〇 データバージョン管理と特徴をストア可 能な機能 ・FeatureStore ・Feast ・HopsWorks ・Tecton 18 モデル学習 モデルのトレーニングに利用するデー タ、検証に利用するデータを検証方式 (holdout、cross validation)にした がって分割する 〇 トレーニングデータ、検証データの正解 ラベルの分散や画像データの特徴(ノルム、 エントロピーなど)を考慮した自動分割支 援 ・データ分割 ・各種MLFrameWork 19 なるべく短時間で学習を終わらせる 〇 分散ノードで並列学習したい ・分散データ学習 ・Horovod 20 識別商品の追加&削除を考慮して、再 学習を行う。 〇 学習済みモデルから差分データを使って 学習を行う。 ・FineTuning ・各種MLFrameWork 表1:機械学習開発フェーズ毎に必要な機能
  36. 36. 分散学習(3/4) 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) ソースコードは Notebook形式のまま で、グローバル変数多 用+エラー処理も甘い ので、このままでは商 用で利用できない よ! アプリのエラーログが分 かりずらいので、ジョブ が失敗した際にディス パッチ先が判断しずら い、、 モデル精度をチェック するための閾値が分 からないから、精度劣 化の閾値基準が分 からないよ! アノテーションする 画像枚数が多す ぎて、、とても稼 働がかか る!!! ◼ 巨大モデル(例:Vit)は学習時間がとてもかかる、、、、 学習モデルが大 きすぎて、全然 学習が終わら ないよ!!!
  37. 37. 分散学習(4/4) ◼ 安価なGPUノード(V100)を複数並列で並べた上で、分散ノードで学習を行う。 ◼ 計算リソースはK8sで抽象化した上で、必要なノードを利用する、、 学習を複数GPUインスタンスで実施する方法は 大きく二つある a)データを分割して並列処理 b)モデルのニューラルアーキテクチャーを分割して 並列処理 Horovodは前者、a)に対応可能 但し、データのGPUインスタンス間のレプリケーションや学習パラ メーターのレプリケーション同期のオーバーヘッドがあるため、GPU インスタンスに乗算した速度は出ない 図2:k8s device plugin との連携 図1:Horovod
  38. 38. DSとDevとの連携効率化(1/4) ◼ 赤枠の取り組み事例に関してご紹介致します 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  39. 39. DSとDevとの連携効率化(2/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 21 評価 モデル精度の評価と管理を行う 〇 モデルの実施結果(学習時間、検証データ 予測時間、予測結果)の自動評価(ダウング レードの自動検証) ・実験管理機能 ・MLFlow ・Polyaxon 22 最適な性能を出すモデルを探索する 〇 ハイパーパラメータをチューニングし検 証用データを使って予測精度を確認に最 適な性能モデルをgrid seachする ・ハイパーパラメーターチュー ニング ・ニューラルモデルサーチ ・Katib ・HyperOpt ・Optuna 23 学習済モデルをモデルリポジトリに登 録する 〇 モデルリポジトリへの学習済みモデルの 登録 ・ModelRegistry ・ModelRegistry 24 シチズンデータサイエンティストでも 最適なモデル作成を行いたい。 〇 自動でモデル学習と最適化を行う ・AutoML ・NoCodeAI ・Pycaret ・AutoKeras 25 後続のDev側で引継ぎやすいように、 Script+Model形式を標準化する 〇 モデルフォーマットの標準化 ・各種Scirpt呼び出し形式標準化 ・モデルフォーマット標準化 ・MLflowModels ・MlflowProject ・Onnx 26 作成したDeepLearnnigモデルの構造 を確認して、無駄が無いか可視化した い 〇 DeepLearningで作成したモデルをユー ザーフレンドリーなGUIで可視化+デバッ グしたい ・NuralArchitectureDebug ・Netron ・Tensorflowboard 27 モデルの再現性を確保する 〇 トレーニングに使用するデータ、検証に 使用するデータ、パイプライン、ハイ パーパラメータ学習済みモデルをDocker イメージにパッケージングする ・コンテナイメージ化 ・ContainerRegistry ・Docker ・Harbor ・GitlabRegistry 28 前処理~評価までの一連のタスクを自 動化し、繰り返し評価を行う 〇 〇 データ抽出~前処理~モデルの実行まで の一連の手順をパイプラインとして構築 し自動実行する ・パイプライン機能 ・MlflowMultStep ・Airflow ・Kubeflow ・ZenML ・Kedoro ・TFX 表1:機械学習開発フェーズ毎に必要な機能
  40. 40. DSとDevとの連携効率化(3/4) 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) アプリのエラーログが分 かりずらいので、ジョブ が失敗した際にディス パッチ先が判断しずら い、、 モデル精度をチェック するための閾値が分 からないから、精度劣 化の閾値基準が分 からないよ! ◼ MLとDevはケイパビリティが異なる+別Teamが多い事から、連携コストが大きくなりがち、、 アノテーションする 画像枚数が多す ぎて、、とても稼 働がかか る!!! 良し!! 学習用コード とモデルが作 成出来たので、 Devへ引継ぎ を行う!! ソースコードは Notebook形式で呼 び出し方不明、、 モデルだけ渡されても、 どのようなAPIで推進 すれば良いかわからな いよ、、、
  41. 41. DSとDevとの連携効率化(4/4) ◼ 複数のMLフレームワーク毎のモデルフォーマットを標準化する事で、推論(モデル呼び出し)を標準化 ◼ 後続のDev側の開発効率を下げさせないために、連携資材のフォーマットを工夫する、、、 AsIs:モデルフォーマットがバラバラ ToBe:モデルフォーマット標準化
  42. 42. ML開発ワークフローの自動化(1/4) ◼ 赤枠の取り組み事例に関してご紹介致します 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  43. 43. ML開発ワークフローの自動化(2/4) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 1 共通 複数の開発者がコラボレーション可能 な開発環境 〇 〇 〇 〇 共通化された開発環境 ・Notebook形式の開発環境 ・JupyterHub ・JupyterGateway ・Kubeflow 2 ソースコード共有が可能 〇 〇 〇 〇 ソースコード共有が可能 ・ソースコードバージョン管理 ・Git 3 CPU、GPU等の計算リソースを柔軟に 利用したい。 〇 〇 〇 計算リソースを自由に利用したい。 ・計算リソース抽象化 ・Kubernetes 4 各種運用作業を自動化したい。 〇 〇 〇 〇 機械学習版CICD ・CI(ContinusIntegration) ・CT(ContinusTuning) ・CD(ContinusDerivery) ・CM(ContinusMonitaring) ・個別実装 5 データ収集と管 理 商品の画像を撮影しサーバに格納する 〇 撮影画像のアップロード ・LabelingTool ・CVAT ・LabelStudio ・VoTT 6 データを検索したい 〇 〇 〇 必要なデータを検索して、データ毎の意味 を確認したい ・DataCatalogTool ・Collibra ・Alation 7 画像にラベルを付与する 〇 〇 ラベル付与作業のコスト削減支援 同上 同上 8 前処理 機械学習に適さない画像を削除する 〇 異常値などの自動判別 同上 同上 9 付与されたラベルの誤りを修正する 〇 付与ラベルチェックのコスト削減支援 同上 同上 10 データの品質を確認する 〇 各種データ品質の確認 ・データ品質確認 ・GreatExpectations ・Dequu 表1:機械学習開発フェーズ毎に必要な機能
  44. 44. ML開発ワークフローの自動化(3/4) 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) ◼ 機械学習開発はやる事が多いため、おのずと手作業が発生する事で稼働がかかってしまう、、、 手作業が多すぎ てつらい!!! 手作業が多すぎ てつらい!!! 手作業が多すぎ てつらい!!! 手作業が多すぎ てつらい!!!
  45. 45. ML開発ワークフローの自動化(4/4) ◼ ①CI:ソースコードをバージョン管理へ登録後、テスト、コンテナイメージ作成及びパイプラインのデプロイを実施。 ◼ ②CT:新規データ着地をトリガーに、①でデプロイしたパイプラインを実行し、モデルレジストリに登録。 ◼ ③CD:承認者が精度で問題無い事を確認した後、当該モデルを1Clickでプロダクションへデプロイ ◼ ④CM:継続的にモデル精度劣化やデータドリフト発生等をモニタリングし、必要であれば再学習を行う。 ① ② ③ 図1:CI+CT+CD+CEの方式案 URL: https://cloud.google.com/architecture/mlops- continuous-delivery-and-automation-pipelines-in- machine-learning?hl=ja ④
  46. 46. 学習と推論コストの効率化(1/6) ◼ 赤枠の取り組み事例に関してご紹介致します 初期コスト想定 開発効率改善 開発効率改 善によりコスト 25%削減 学習+推論コスト改善 インスタンスタイプの改 善により コスト45%削減 最終コスト試算 最終 コスト 70% 削減 図1:コスト改善のStepイメージ 学習データ生成改善 学習データ生 成コスト25% 削減
  47. 47. 学習と推論コストの効率化(2/6) ◼ 赤枠に関して、画像+動画での事例をご紹介致します。 項番 タスク Role 必要な機能 フェーズ 内容 Cus An Biz DE DS Dev Ops 要求仕様 機能名 実現方法 29 モデルの推論根拠や公平性を確認した い 〇 AIモデルの推論根拠や、人種+性別など の本人の努力ではどうしても変えられな い属性利用を検出したい ・ExplanationAI ・公平性 ・Shaply ・Lime ・Fairlearn 30 Notebookベースでパイプラン処理を 実装する 〇 〇 各種処理をパイプライン化するに当たり、 JupyterNotebook形式のファイルも外部 引数を与えた形で呼び出し可能な形にす る。 ・Notebook形式ファイルの実行 ・PapperMills 32 サービング 精度評価で問題なかったモデルをデプ ロイする 〇 モデルレジストリ経由で、APIサーバーと して環境にデプロイする ・Serving&Deploy ・MLflow ・SeldonCore ・BentML 33 推論コストを下げるような取り組みを したい。 〇 〇 〇 DeepLearningで作成したモデルのネット ワーク構造の最適化 ・モデル構造最適化 ・Trition ・TVM 34 モデル運用 ABテストを実施したい、、 〇 ABテスト環境を自作せずに実現可能 ・Canaryリリース ・ブルーグリーンデプロイメン ト ・Kubernetes ・Istio 35 データドリフトやコンセプトドリフト を検知する 〇 学習データと推論データの分布的なズレ を検知する ・データドリフト検知 ・コンセプトドリフト検知 ・AllibiDetect ・Evidently 表1:機械学習開発フェーズ毎に必要な機能
  48. 48. 学習と推論コストの効率化(3/6) 図1:PoCフェーズ(MLのみ) データエンジニア (Data) AIエンジニア (ML) デベロッパー (Dev) データ収集 データ品質チェック データクレンジング リアルタイ ム予測 バッチ予測 運用 (Ops) リアルと バッチ用の コード作成 AIエンジニア (ML) 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 実業務に耐えら れるような、高 精度なモデル を作成します 前処理 モデル設計 モデル管理 精度評価 1 2 3 4 5 6 アプリのエラー監視 モデル精度監視 システム運用 図2:商用開発フェーズ(Data、ML、Dev、Opsなど、多数参加) ソースコードは Notebook形式のまま で、グローバル変数多 用+エラー処理も甘い ので、このままでは商 用で利用できない よ! アプリのエラーログが分 かりずらいので、ジョブ が失敗した際にディス パッチ先が判断しずら い、、 モデル精度をチェック するための閾値が分 からないから、精度劣 化の閾値基準が分 からないよ! ◼ 非構造化データに関する処理はGPUが必須。そのため、、GPUリソースを大量に消費する(≒コスト増) アノテーションする 画像枚数が多す ぎて、、とても稼 働がかか る!!! ダメだ、、、 学習と推論で GPUリソースを 利用しまくるの で、計算リソー スコストが掛か りまくる、、、
  49. 49. 学習と推論コストの効率化(4/6) ◼ 各種深層学習コンパイラーを利用する事で、モデル構造を最適化(枝切りや量子化)を行う ◼ 下記はTVM(TensorVertualMachine)の例だが、グラフ全体+各オペレーターを最適化する事で、コス ト効率が良いモデルに変換を行う。 ONNX MXNet TensorFlow Keras グラフ + オペレータ 最適化 LLVM CUDA OpenCL x86 ARM AMDGPU NNVM:グラフ全体変換 TVM:オペレータ変換 Pytorch 図1:TVMを利用したモデルコンパイルイメージ
  50. 50. 学習と推論コストの効率化(5/6) ◼ 学習+推論コストを下げるような、特化型ASICの利用を検討する ◼ 下記はAWSの事例になるが、各種特化型ASICを利用する事で、コスト低減を図る、、 参考URL: https://aws.amazon.com/jp/machine-learning/elastic- inference/ 参考URL: https://aws.amazon.com/jp/about-aws/whats- new/2021/03/amazon-ec2-inf1-instances-aws-inferentia- available-additional-regions/ 参考URL: https://aws.amazon.com/jp/machine-learning/trainium/ 図1:Trainum 図2:Inferentia 図3:ElasticInference
  51. 51. 学習と推論コストの効率化(6/6) ◼ 下記はAWSのベンチマーク資料抜粋になる、 ◼ AWSが提供する最安値GPU(g4dn)よりも、コスト効率を上げる事が可能となる。 参考URL: https://aws.amazon.com/jp/blogs/news/increasing-performance-and-reducing-the-cost-of-mxnet- inference-using-amazon-sagemaker-neo-and-amazon-elastic-inference/ 図1:コストと性能評価グラフ
  52. 52. © 2021 NTT DATA Corporation 52 Conclusion
  53. 53. Conclusion ✓ 機械学習のシステム開発はなぜ上手くいかないのか? ✓ どうすれば良いのか? ✓ 画像+動画データにおけるベストプラクティスは? ー> ✓ MLOpsはいまだ業界標準のべスプラ+考え方はありません ✓ 各社+各人知恵を捻って対応してのが現状です、 ✓ 是非本日の適用事例を参考にしてください!!!
  54. 54. 問い合わせ先 ✓ Comnapy :NTTDATA ✓ Name :Ei Yamaguchi ✓ E-Mail :ei.yamaguchi@nttdata.com ✓ Organization :apcj@kits.nttdata.co.jp
  55. 55. © 2021 NTT DATA Corporation

×