Azure で ML Ops をやってみる ~概要編~


目次

  1. はじめに
  2. 機械学習運用の上での課題点
  3. ML Ops とは?
  4. 最後に

はじめに

この記事は株式会社ナレッジコミュニケーションが運営する
クラウドAI by ナレコム Advent Calendar 2021 の5日目にあたる記事になります。

こんにちは!

今回は ML Ops について、機械学習モデルを運用する上での課題と、概要をまとめてみました。
機械学習モデルを作り、実際に機械学習モデルの運用を始めるうえで、様々な課題があります。
どうすれば機械学習モデルの運用が進むのか、考えていこうと思います。

次のパートで、実際に Azure の各種サービスを用いて、MLOps をやってみようと思いますので、次のパートもぜひご覧ください。

機械学習運用の上での課題点

想定


まずはじめに、機械学習モデルを運用していく上での課題点を一緒に考えてみます。
今回は、下記の図の役割とフローで機械学習モデルを開発するということにします。

モデル開発のフロー

①. 最初にデータアナリストが機械学習モデルの開発のための準備段階として、機械学習で解決する課題定義と仮説検証を進めます。どんな機械学習モデルを用いれば、ビジネス上での価値があるのか、といったことを考察する段階です。

②. 次に、データサイエンティストが、データアナリストが策定した要件に合わせてモデル開発を進めていきます。

③. 次に、データエンジニアは機械学習モデルにかけるデータを集めるためのデータ収集基盤など、モデルの運用をする上での環境開発や継続的な分析を行うための分析環境を構築します。

④. 最後に、MLエンジニアはデータサイエンティストが作った機械学習モデルをdockerコンテナでデプロイし、継続的な学習ができるスキームをデータエンジニアと連携して組んでいく​役割が多いかと考えられます。

機械学習モデルの運用と課題 ~モデルの精度が落ちてきた場合~

モデルの開発が完了し、実際にモデルをアプリケーションなどに組み込み、運用していく段階です。
モデルを運用する上で、初期はデータサイエンティストが想定する精度が出せるのですが…
運用を進める上で、精度が下がってしまい、(これをドリフトといいます)機械学習モデルの価値が下がっていってしまいます。


下がったモデルの精度を上げるため、データサイエンティストがまた別のアルゴリズムや手法、データセットでモデルのトレーニングをしていきますが、

  • モデルの再トレーニングをしたため、学習コストなどがかかってしまった
  • モデルパイプラインの共通化、モデルの評価指標のモニタリング
  • データエンジニアは学習データの取得方法の変更対応が必要
  • MLエンジニアはカナリアデプロイ、A/Bテストができる環境構築、バージョン管理

などなどの問題が発生し、機械学習モデルの運用が大変になります。
上記の問題を解決するのが、ML Ops の概念です。

ML Ops とは

Hidden Technical Debt in Machine Learning Systems
Part of Advances in Neural Information Processing Systems 28 (NIPS 2015)

上記は、2015年に発表された”機械学習システムの隠れた技術負債”という論文にある図です。
本質的に機械学習システムやそれを含むアプリケーションでは様々な課題が発生することが知られています。
赤枠で囲った、中央の小さな黒い四角が機械学習モデルになります。
機械学習モデルの周囲には…

  • 設定
  • データ収集
  • 特徴量の計算
  • データの検証
  • 計算資源の管理
  • 分析ツール
  • プロセス管理ツール
  • 上記を乗せるインフラ
  • 監視

といった様々な要素があり、予想以上に複雑性が増すことを示しています。

これらの複雑性をできる限り排除した上で、データ分析チームや運用チームが、モデリングに使うデータ、モデルそのもの、諸々のリソースを設定するためのコード、これらをできるだけ管理しやすい状態に維持し、機械学習モデルの生成と運用を通じて効率的かつ継続的に価値を届け続けること、という点を軸にした考え方や方法論が MLOps となります。

最後に

MLOps の概念について、いかがでしたでしょうか。
機械学習モデルを運用していく上で様々な問題がありますが、次のパートでAzure サービスを利用して MLOps を実践したいと思いますので、ぜひ次のパートも見ていただければ嬉しいです。
ご覧いただきありがとうございました!