HERE MLflow Plugin
MLflow は、機械学習( ML )開発を管理するための一般的なオープンソースプラットフォームです。プラグインで ML ライフサイクルを管理するための MLflow プラットフォームが提供されています。 このプラグインを使用すると、ユーザーはプラットフォームで ML 実験を管理し、プラットフォームの他のユーザーと共有したり、 HERE Marketplace で利用できるようにしたりできます。 データサイエンティストは、任意の ML Cloud プラットフォームの任意の ML フレームワークをトレーニングに使用でき、プラットフォームの ML アーティファクトの管理を選択できます。 MLflow プラグインは、 ML モデルのトレーニング中に使用できます。または、すでにトレーニングを受けたモデルをプラットフォームにアップロードできます。
MLflow プラグインには、次の機能があります。
- パラメータと結果を記録および比較するための実験を追跡します
- 他のデータサイエンティストと共有できるように、再利用可能で再現性のある形式で ML コードをパッケージ化します
- 中央のモデルストアを提供して、モデルのバージョン管理、ステージの遷移、カタログ HERE リソースネーム を介した注釈など、 MLflow モデルの全ライフサイクルを共同で管理します。
- 推測のためのサービスとしてモデルを公開するために、ローカルで Docker を構築します。 注 : この機能は、このリリースでローカルに推測サービスをテストする場合にのみ使用できます。
前提条件
インストール
モジュールをインストールするには、次のコマンドを使用します。
このコマンドを使用すると、現在の環境に MLflow プラグインモジュールの最新バージョンがインストールされます。
pip install --extra-index-url https://repo.platform.here.com/artifactory/api/pypi/analytics-pypi/simple/ here-mlflow-plugin==1.0
注
- GDAL または geopandas による Windows への依存に関連するエラーがある場合は、パッケージのインストール時に次の手順を実行します。
- Microsoft Visual C++ ビルドツールに関連するエラーが発生した場合は、次の手順を実行します。
開発者フロー
here_mlflow_plugin_setup -c <catalog_id>
- このカタログ HERE リソースネーム を参照するトラッキング URI を設定します。 カタログ ID ではなく、カタログ HERE リソースネーム を指定してください
Linux/MacOS の場合 :
export MLFLOW_TRACKING_URI=here+mlflow://catalog/v1/<catalog_hrn>
Windows の場合 :
set MLFLOW_TRACKING_URI=here+mlflow://catalog/v1/<catalog_hrn>
-
サンプルのノートブックをダウンロードします。
-
トレーニングを開始するか、プラットフォームでトレーニングを受けた既存のモデルをアップロードします。 詳細については、ノートブックの例を参照してください。
-
MLflow をローカルで起動して、ログに記録されたすべての情報を表示および比較します。 指定した実験名を選択して run_id を抽出します。
mlflow ui --backend-store-uri here+mlflow://catalog/v1/<catalog_hrn> --default-artifact-root here+mlflow://catalog/v1/<catalog_hrn>
-
この run_id を使用して、サービスとして公開するために Docker イメージをローカルに構築します。
here_mlflow_plugin_build_docker -m <MODEL-URI> --no_java <False/True> -n <IMAGE-NAME>
このスクリプトには、次の 3 つのパラメータがあります。
パラメーター | 説明 |
-m/-- モデル | Docker イメージを構築するモデルの URI |
-n/--name を指定します | イメージに付けられる名前。デフォルト値はです mlflow-pyfunc-servable |
-nj/ --no_java | True の場合、 Java は Docker イメージにインストールされません。デフォルト値はです False |
例 :
here_mlflow_plugin_build_docker -m "here+mlflow://catalog/v1/<catalog_hrn>/0/6cbba15e-fe0c-4ab7-86c1-37644a7afc94/models" --no_java True -n "test-alpine"
- サービスにアクセスするために、 Docker をローカルで実行します。
docker run -p <PORT>:8080 <IMAGE_ID>
付録
レイヤー名 | LayerType | コンテンツタイプ | 属性 1 | タイプ | 属性 2 | タイプ | 属性 3 | タイプ | 属性 4 | タイプ |
トラッキング - 実験 | インデックス | アプリケーション /JSON | インジェスト時間 | タイムウィンドウ (10 分 ) | experiment_id | 文字列 | experiment_name | 文字列 | - | - |
追跡 - 実行 | インデックス | アプリケーション /JSON | 開始時間 | タイムウィンドウ (10 分 ) | experiment_id | 文字列 | run_id | 文字列 | - | - |
アーティファクト - メタデータ | インデックス | アプリケーション /JSON | インジェスト時間 | タイムウィンドウ (10 分 ) | run_id | 文字列 | - | - | - | - |
アーティファクト - データ | バージョン | application/octet-stream | パーティションタイプ | 汎用 | - | - | - | - | - | - |
モデルメタデータ | インデックス | アプリケーション /JSON | インジェスト時間 | タイムウィンドウ (10 分 ) | モデル名 | 文字列 | - | - | - | - |
model-version-metadata | インデックス | アプリケーション /JSON | インジェスト時間 | タイムウィンドウ (10 分 ) | モデル名 | 文字列 | バージョン | 整数 | run_id | 文字列 |