トップ OSS紹介 MLflow

MLflow

NRIのOpenStandiaが提供するMLflow最新情報

バージョンアップ情報

MLflow情報

MLflowとは

MLflowは、実験、再現、デプロイ、モデルの保存など、機械学習のライフサイクルを管理するためのオープンソースプラットフォームです。
MLflowを使用すると、機械学習の実験結果を追跡して整理し、他の機械学習エンジニアに説明したり、機械学習モデルをパッケージ化し、デプロイしたりすることができます。
大規模な組織での利用が可能になるようにスケーラビリティーを考慮した設計がされていますが、個人のユーザーにも最適なOSSです。

主な機能

現在、MLflowは次の4つのコンポーネントを提供しています。

  • MLflow Tracking
    実験(コード、データ、設定、結果)の記録と検索
  • MLflow Projects
    任意のプラットフォームでコードの実行を再現できる形式でパッケージ化
  • MLflow Models
    多様なサービス環境に機械学習モデルをデプロイ
  • MLflow Registry
    セントラルリポジトリでモデルを保存、アノテーション付け、検出、および管理

それぞれについてもう少し詳しく紹介します。

MLflow Tracking

MLflow Trackingにより、実験の記録と検索が可能です。
コードのバージョンや使用したハイパーパラメータ、実行結果などの情報をファイルやRDBMSに保存し、GUIで解析することができます。

以下の例のように、リモートMLflow Tracking Server、
バックエンドエンティティストレージ用のPostgreSQL、およびアーティファクトストレージ用のS3バケットを備えた分散アーキテクチャもサポートします。

MLflow Projects

MLflow Projectsは、他者のコードの再利用と実行結果の再現ができるようにするためのパッケージングを行います。
以下のようなYAML形式のテキストファイルをプロジェクトのルートディレクトリに追加することで、MLflowプロジェクトを制御します。


name: My Project

conda_env: my_env.yaml
# Can have a docker_env instead of a conda_env, e.g.
# docker_env:
# image: mlflow-docker-example

entry_points:
main:
parameters:
data_file: path
regularization: {type: float, default: 0.1}
command: "python train.py -r {regularization} {data_file}"
validate:
parameters:
data_file: path
command: "python validate.py {data_file}"

MLflow Models

学習したモデルを決められたフォーマットでパッケージングしたり、デプロイする機能です。
学習済みのモデルを利用するために必要なCondaやDockerの環境を構築したり、学習済みのモデルで推論を行うREST APIサーバーを起動することが、以下のようなコマンド1つで可能です。


$ mlflow models serve --model-uri my_model

MLflow Registry

MLflow Registryは、MLflowモデルのライフサイクル全体を共同で管理するための、一元化されたモデルストア、APIのセット、およびUIです。
提供される機能は、モデルの系統(モデルが作成されたMLflowの実験と実行)のバージョンの管理、ステージの移行(ステージングから本番への移行など)、およびアノテーションなどです。

主な特徴

MLflowの公式サイトでは、主な特徴として以下の4つを挙げています。

  • 機械学習のライブラリやプログラミング言語に依存せず、既存のコードでも動作可能
  • どのクラウドサービスでも同じように実行可能
  • 1人のユーザーの利用から大規模な組織での利用まで利用規模に応じて、スケールする設計
  • ビッグデータに対してApache Sparkを使用したスケーリングが可能

類似プロダクト

機械学習のライフサイクル管理を行うものとして、商用のクラウドサービスのNeptuneやWeights & Biasesがあります。

MLflowのライセンス

MLflowのライセンスは、Apache License 2.0となっており、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • TensorFlow

    TensorFlow

    テンソルフロー。Googleが開発を行っている機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。

  • PyTorch

    PyTorch

    パイトーチ。オープンソースのPythonの機械学習フレームワークです。

  • H2O(機械学習プラットフォーム)

    H2O(機械学習プラットフォーム)

    エイチツーオーは、線形スケーラビリティーで拡張可能な分散型インメモリー機械学習プラットフォームです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。