バージョンアップ情報
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
テンソルフロー。Googleが開発を行っている機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。
-
PyTorch
パイトーチ。オープンソースのPythonの機械学習フレームワークです。
-
H2O(機械学習プラットフォーム)
エイチツーオーは、線形スケーラビリティーで拡張可能な分散型インメモリー機械学習プラットフォームです。