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 の例
1time_created: 2018-02-21T13:21:34.12
2flavors:
3  sklearn:
4    sklearn_version: 0.19.1
5    pickled_model: model.pkl
6  python_function:
7    loader_module: mlflow.sklearn
8    pickled_model: model.pkl

上記のモデルを例にすると、このモデルは 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ソリューションページはこちら

この記事を書いた人

azure-recipe-user