モデルサービングエンドポイントの高速展開
このページでは、モデルサービングEndpointでエクスプレスデプロイメントを使用する方法について説明します。エクスプレスデプロイメントは、デプロイメント時間を短縮し、モデルサービング環境をモデルトレーニング環境と同じに保ちます。
Expressデプロイメントは以前は レス最適化デプロイメントと呼ばれていました。
エクスプレスデプロイメントとは何ですか?
エクスプレスデプロイメントは、モデルの登録中に、Serverlessノートブック環境でモデルアーティファクトをパッケージ化してステージングします。これにより、Endpointのデプロイメントが迅速化され、トレーニングおよびサービング環境の一貫性が保たれます。
非エクスプレスデプロイメントでは、モデルアーティファクトと環境はデプロイメント時にコンテナにパッケージ化されるため、サービング環境がモデルトレーニング中に使用されたものと一致しない場合があります。
標準とエクスプレスデプロイメント
次の表は、標準デプロイメントとエクスプレスデプロイメントを比較したものです。
観点 | 標準デプロイメント | エクスプレスデプロイメント |
|---|---|---|
環境が構築されると | コンテナイメージはデプロイ時に構築されます。 | モデルを登録する際に、アーティファクトと環境がパッケージ化されます。 |
トレーニングとサービング環境 | サービング環境がトレーニング環境と一致しない場合があります。 | サービング環境は、登録元のノートブック環境と同じです。 |
デプロイメント速度 | 遅くなります。デプロイメントはコンテナイメージのビルドを待機します。 | より高速です。デプロイメントはコンテナイメージのビルドをスキップします。 |
登録速度 | 標準。 | モデルと環境のサイズに応じて、パッケージ化には数秒から1分かかります。 |
Deployment event log | コンテナイメージ作成イベントを表示します。 | コンテナイメージ作成イベントは表示されません。 |
Expressデプロイメントでは、1回限りのパッケージング作業がモデル登録に移行されます。これにより、モデルと環境のサイズに応じて、register_model呼び出しに数秒から1分追加されます。その代わりに、**デプロイメントが大幅に高速化されます**:コンテナイメージのビルドが完全にスキップされるためです。そのビルドもデプロイメント障害の一般的な原因(依存関係の解決、イメージビルドエラー)となります。そのため、それをスキップすると一連の問題を解消できます。Expressモデルのデプロイメントイベントlogには、コンテナのビルドイベントが含まれていません。
要件
エクスプレスデプロイメントEndpointは、モデルサービングEndpointと同じ要件があります。要件を参照してください。
加えて:
- モデルはカスタム モデルである必要があります。
- モデルは、バージョン3以降の Serverless Notebook で記録および登録されている必要があります。
- モデルは
mlflow>=3.12とともにログに記録され、登録されている必要があります。databricks-sdk>=0.102.0 - モデルはUnity Catalogに登録され、CPUコンピュートで提供されている必要があります。通常のServerlessノートブックから登録します。
- モデルの最大環境サイズは200GBです。
env_packパラメーター
env_packをregister_modelに渡すことで、エクスプレスデプロイメントを有効にします。
import mlflow
from mlflow.utils.env_pack import EnvPackConfig
mlflow.register_model(
model_info.model_uri,
model_name,
env_pack=EnvPackConfig(name="databricks_model_serving"),
)
env_pack モデルのアーティファクトと、登録時にノートブックセッションに追加した依存関係をパックしてステージングするため、登録にはenv_packを使用しない呼び出しよりも時間がかかります。
EnvPackConfig install_dependenciesパラメーターを受け入れます(defaultでTrue)。Trueの場合、モデルの依存関係は現在の環境にインストールされ、環境が有効であることを確認します。
インターネットアクセスがないワークスペース、またはモデルがカスタムライブラリに依存している場合で、install_dependenciesがTrueの場合、登録に失敗することがあります。このような場合は、install_dependencies を False に設定します。
"databricks_model_serving"という文字列をEnvPackConfig(...)のショートカットとして置き換えることができます。EnvPackConfig(name="databricks_model_serving", install_dependencies=True)と同等です。