MLflow を使用した機械学習ライフサイクル管理

この記事では、機械学習ライフサイクル管理のために Databricks で MLflow がどのように使用されるかについて説明します。 また、各 MLflow コンポーネントを紹介する例と、これらのコンポーネントが Databricks 内でどのようにホストされているかを説明するコンテンツへのリンクも含まれています。

Databricks の機械学習ライフサイクル管理は、マネージド MLflow によって提供されます。 Databricks は、エンタープライズ セキュリティ機能、高可用性、その他の Databricks ワークスペース機能 (エクスペリメント、実行管理、ノートブック リビジョン キャプチャなど) と統合された MLflow のフルマネージドおよびホスト バージョンを提供します。

初めてのユーザーは、基本的な MLflow 追跡 を示す「 MLflow エクスペリメントの概要APIs 」から始める必要があります。

MLflow とは

MLflow は、エンドツーエンドの機械学習ライフサイクルを管理するためのオープンソース プラットフォームです。 これには、次の主要コンポーネントがあります。

  • 追跡: エクスペリメントを追跡して、パラメーターと結果を記録および比較できます。

  • モデル: さまざまな T機械学習ライブラリのモデルを管理およびデプロイして、さまざまなモデル提供および推論プラットフォームにデプロイできます。

  • プロジェクト: 機械学習コードを再利用可能で再現可能な形式でパッケージ化して、他のデータサイエンティストと共有したり、本番環境に転送したりできます。

  • モデルレジストリ: モデルのライフサイクル全体を管理するためのモデル ストアを一元化できます。 ステージの移行: ステージングから運用まで、バージョン管理と注釈付けの機能を備えています。 Databricks は、 Unity Catalogでモデルレジストリのマネージ バージョンを提供します。

  • モデルサービング: MLflow モデルを REST エンドポイントとしてホストできます。 Databricks には、提供された AI モデルをデプロイ、管理、クエリするための統合インターフェイスが用意されています。

MLflow では、 JavaPythonRREST APIsがサポートされています。

MLflow の追跡

Databricks 上の MLflow は、機械学習モデルとディープラーニング モデルのトレーニング実行を追跡してセキュリティで保護するための統合されたエクスペリエンスを提供します。

モデルのライフサイクル管理

MLflow Model Registry集中化されたモデル リポジトリであり、MLflow モデルのライフサイクル全体を管理できるようにする UI およびAPIsセットです。 Databricks は、MLflow Model Registry でUnity Catalog のホストされたバージョンを提供します。Unity Catalog は、一元化されたモデル ガバナンス、クロスワークスペース アクセス、リネージ、およびデプロイメントを提供します。 Unity Catalogでのモデルのライフサイクル管理の詳細については、 Unity Catalogでのモデルのライフサイクルの管理」を参照してください。

ワークスペースでUnity Catalogが有効になっていない場合は、 Workspace Model Registryを使用できます。

Model Registry概念

  • Model : モデル フレーバーのmlflow.<model-flavor>.log_modelメソッドの 1 つを使用して記録されたエクスペリメントまたは実行から記録された MLflow モデル。 モデルが記録された後、 Model Registryを使用して登録することができます。

  • 登録済みモデル: Model Registryに登録されている MLflow モデル。 登録されたモデルには、一意の名前、バージョン、モデル リネージ、その他のメタデータがあります。

  • モデル バージョン: 登録済みのモデルのバージョン。 新しいモデルがModel Registryに追加されると、バージョン 1 として追加されます。 同じモデル名に登録された各モデルでは、バージョン番号がインクリメントされます。

  • モデル エイリアス: エイリアスは、登録済みモデルの特定のバージョンへの変更可能な名前付き参照です。 エイリアスの一般的な使用法は、モデル トレーニング ワークフローの特定の環境にデプロイされるモデル バージョンを指定すること、または特定のエイリアスを対象とする推論ワークロードを作成することです。 たとえば、「Fraud Detection」登録モデルの「Champion」エイリアスを、本番運用トラフィックの大部分を処理するモデル バージョンに割り当て、そのエイリアスを対象とする推論ワークロードを作成できます (つまり、 「チャンピオン」バージョン)。

  • モデルステージ(ワークスペースモデルレジストリのみ): モデルバージョンに 1 つ以上のステージを割り当てることができます。 MLflow は、一般的なユースケースに対して事前定義されたステージ ( NoneStaging本番運用、およびArchived )を提供します。 適切な権限があれば、ステージ間でモデル バージョンを移行したり、モデル ステージの移行をリクエストしたりできます。 モデル バージョン ステージはUnity Catalogでは使用されません。

  • 説明: アルゴリズムの説明、使用されるデータセット、方法論など、チームに役立つ説明や関連情報を含む、モデルの意図に注釈を付けることができます。

ノートブックの例

Model Registry使用して、風力発電所の毎日の発電量を予測する機械学習アプリケーションを構築する方法を示す例については、次を参照してください。

モデルのデプロイ

低遅延の配信に最適なオプションは、REST API の背後でのオンライン配信です。 Databricks には、オンライン推論用の モデルサービング が用意されています。

また、オフライン推論用に MLflow モデルをデプロイすることもできます (「 バッチ推論用のモデルのデプロイ」を参照)。