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>

付録

  • カタログを削除します。

    here_mlflow_plugin_setup -d <catalog_hrn>
    
  • レイヤーの詳細 :

レイヤー名 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 文字列

」に一致する結果は 件です

    」に一致する結果はありません