MLflow についてまとめて翻訳してみた

はじめに

MLflow について、下記のリンク先の動画と記事を元に内容をまとめて翻訳しました。

■本動画リンク
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani Parkhe & Tomas Nykod

■本記事リンク
Introducing MLflow: an Open Source Machine Learning Platform

MLflow – 完璧な機械学習(ML)ライフサイクルのためのインフラ

ML 開発の困難さ

図は一般的な ML のライフサイクルとなります。基本的には取得したデータをチェックした後にトレーニングし、デプロイした後で、新たにデータを取り込ませたりすることで改善させる、といった形になります。
image.png
ML の開発が困難な理由としては、以下が挙げられます。

  • どのライフサイクルにおいても利用できるツールが豊富にある
  • それぞれのライフサイクルで使用するツールが必ずしも同じでは無い
  • 次のライフサイクルにデータやモデル、コードを渡すのに苦労する

MLflow について

MLflow は、そんな ML 開発における問題点を解決するオープンソースの ML プラットフォームです。
image.png
主な特徴は以下となります。

  • どの ML ライブラリや言語にも対応
  • どの環境でも同じ様に実行可能
  • 1人、または複数人の場合でも利用できるデザイン設計
  • ビッグデータや Apache Spark に対応可能

MLflow デザインの哲学

MLflow のデザイン哲学は2つあります。

■デザイン哲学

  • 「API ファースト」のオープンプラットフォーム
    • どんなライブラリや言語、でも実行可能な環境
    • 既存の ML プラットフォームやワークフロとの統合が可能
  • モジュール設計
    • 個々人で異なるコンポーネントの利用が可能
    • ML ツールデベロッパが多くのユーザと簡単に繋がることが可能

MLflow コンポーネント

MLflow の主なコンポーネントは3つあります。
image.png
■コンポーネント

  • MLflow Tracking
    • 実験の記録やクエリを行う
  • MLflow Projects
    • どのプラットフォームでも再利用可能なフォーマットにパッケージング
  • MLflow Models
    • 様々なデプロイツールをサポートするモデルフォーマット

MLflow Tracking

image.png
MLflow Tracking は 機械学習コードを実行して視覚化した際、パラメータやコードのバージョン、そしてメトリクスなどのロギングや、ファイルのアウトプットをするための API と UI です。

■MLflow Tracking の特徴

  • 簡単なコード数行で、パラメータやメトリクスなどのトラッキングが可能
  • notebook やスタンドアローンなスクリプトなど、どの環境でも利用可能
  • ローカル環境のファイルやサーバにログの結果を保存し、複数の実行の比較が可能

MLflow Projects

image.png
MLflow Projects は再利用可能なデータサイエンスコードをパッケージングするためのスタンダードなフォーマットを提供するサービスです。

■MLflow Projects の特徴

  • Porject はそれぞれコードや Git リポジトリがついたディレクトリ
  • 記述ファイルを使って依存関係とコードの実行方法を特定

MLflow Models

image.png
MLflow Models は “flavors” と呼ばれる 複数のモデルで ML モデルをパッケージングする方法です。MLFlow は、異なる flavor のモデルをユーザが開発できるよう、様々なツールを提供します。MLflow モデルは、任意のファイルを含んだディレクトリと使用可能な flavors をリストする MLmodel 記述ファイルとに保存されます。

  • MLflow Models の例

上記のモデルを例にすると、このモデルは sklearn モデル flavor か python_function モデル flavor をサポートするツールと使用することができます。
MLflow は、一般的なモデルを様々なプラットフォームに開発するためのツールを提供します。例えば、python_function flavor をサポートするモデルを Docker ベースの REST サーバや Azure ML、Amazonn SageMaker、そしてバッチとストリーミング推論のための Apache Spark のユーザ定義関数としてデプロイすることができます。
MLflow Models をトラッキング API を使用してアーティファクトとして出力すると、MLflow はどのプロジェクトで実行したのかを自動的に記録します。

おわりに

MLflow についてのまとめは以上となります。
本編では、より詳し解説やデモなども紹介されているので、本編もぜひ確認ください。

 

 

 

Azure Databricksの導入ならナレコムにおまかせください。

導入から活用方法までサポートします。お気軽にご相談ください。

Azure Databricksソリューションページはこちら