MLflowを使用した機械学習ライフサイクル管理
この記事では、機械学習ライフサイクル管理のために Databricks で MLflow がどのように使用されるかについて説明します。 また、各 MLflow コンポーネントを紹介する例と、これらのコンポーネントが Databricks 内でどのようにホストされているかを説明するコンテンツへのリンクも含まれています。
Databricks の機械学習ライフサイクル管理は、マネージド MLflow によって提供されます。 Databricks は、エンタープライズ セキュリティ機能、高可用性、その他の Databricks ワークスペース機能 (エクスペリメント、実行管理、ノートブック リビジョン キャプチャなど) と統合された MLflow のフルマネージドおよびホスト バージョンを提供します。
初めてのユーザーは、基本的な MLflow 追跡 を示す「 MLflow エクスペリメントの概要 」から始める必要があります。
MLflow とは
MLflow は、エンドツーエンドの機械学習ライフサイクルを管理するためのオープンソース プラットフォームです。 これには、次の主要コンポーネントがあります。
追跡: エクスペリメントを追跡して、パラメーターと結果を記録および比較できます。
モデル: さまざまな機械学習ライブラリのモデルを管理およびデプロイして、さまざまなモデル提供および推論プラットフォームにデプロイできます。
プロジェクト: 機械学習コードを再利用可能で再現可能な形式でパッケージ化して、他のデータサイエンティストと共有したり、本番環境に転送したりできます。
モデルレジストリ: モデルのライフサイクル全体を管理するためのモデル ストアを一元化できます。 ステージの移行: ステージングから運用まで、バージョン管理と注釈付けの機能を備えています。 Databricks は、 Unity Catalogでモデルレジストリのマネージ バージョンを提供します。
モデルサービング: MLflow モデルを REST エンドポイントとしてホストできます。 Databricks には、提供された AI モデルをデプロイ、管理、クエリするための統合インターフェイスが用意されています。
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 は、一般的なユースケースに対して事前定義されたステージ ( None 、 Staging 、Production、およびArchived )を提供します。 適切な権限があれば、ステージ間でモデル バージョンを移行したり、モデル ステージの移行をリクエストしたりできます。 モデル バージョン ステージはUnity Catalogでは使用されません。
説明: アルゴリズムの説明、使用されるデータセット、方法論など、チームに役立つ説明や関連情報を含む、モデルの意図に注釈を付けることができます。
モデルのデプロイ
Mosaic AI Model Serving は、 AI モデルを展開、管理、クエリするための統合インターフェースを提供します。 提供する各モデルは、Web アプリケーションまたはクライアント アプリケーションに統合できる REST API として利用できます。
モデルサービングは、次のサービスをサポートしています。
カスタムモデル。 これらは、MLflow 形式でパッケージ化された Python モデルです。 Unity Catalog に登録されている必要があります。 例としては、scikit-learn、XGBoost、PyTorch、Hugging Face トランスフォーマーモデルなどがあります。
外部モデル。 これらは、Databricks の外部でホストされているモデルです。 たとえば、OpenAIのGPT-4、AnthropicのClaudeなどの生成AIモデルです。 これらのモデルを提供するエンドポイントは一元管理でき、顧客はそれらのレート制限とアクセス制御を確立できます。
また、オフライン推論用に MLflow モデルをデプロイすることもできます (「 バッチ推論用のモデルのデプロイ」を参照)。