この記事では、 エンドポイントを提供するモデル でサーバーレス最適化デプロイを使用する方法について説明します。 サーバーレスで最適化されたデプロイにより、デプロイ時間が大幅に短縮され、モデルサービス環境はモデルトレーニング環境と同じになります。
サーバーレス最適化デプロイとは
サーバーレス最適化デプロイでは、モデルの登録中にサーバーレス ノートブック環境でモデル成果物をパッケージ化およびステージングすることにより、エンドポイントのデプロイが高速化され、トレーニングとサービスの間で一貫した環境が実現されます。
これは、モデル成果物と環境がデプロイ時にコンテナーにパッケージ化される、サーバーレス以外の最適化されたデプロイとは異なります。 このような場合、サービス環境がモデルのトレーニング中に使用される環境と一致しない可能性があります。
Requirements
サーバーレス最適化エンドポイントには、モデル サービス エンドポイントと同じ要件があります ( 要件を参照)。 さらに:
- モデルは、 (FMAPI ではなく) カスタム モデルである必要があります
- モデルをログに記録し、バージョン 3 または 4 を使用してサーバーレス ノートブックに登録する必要があります
- モデルをログに記録して登録する必要があります。
mlflow>=3.1 - モデルは UC に登録され、CPU で提供される必要があります
- モデルの最大環境サイズは 1 GB です
サーバーレス最適化デプロイの使用
モデルをログに記録して登録する場合は、クライアント 3 または 4 と mlflow>=3.1でサーバーレス ノートブックを使用します。
サーバーレス環境のクライアント バージョンを調整するには、「サーバー レス環境の構成」を参照してください。
次に、モデルを登録するときに、 env_pack パラメーターを目的の値に設定します。
import mlflow
from mlflow.utils.env_pack import EnvPackConfig
mlflow.register_model(
model_info.model_uri,
model_name,
env_pack=env_pack=EnvPackConfig(name="databricks_model_serving")
)
env_pack パラメーターを追加すると、関数パックが作成され、モデルの登録中にモデル成果物とサーバーレス ノートブック環境がステージングされ、デプロイ中に使用できるように準備されます。 これは、 env_packなしでモデルを登録する場合と比べて、追加の時間がかかる場合があります。
EnvPackConfig には、モデルの依存関係を現在の環境にインストールして環境が有効であることを確認するかどうかを決定するパラメーター install_dependencies (既定でTrue ) があります。 その手順をスキップする場合は、値を False に設定します。
注
インターネット にアクセスできないワークスペース内のエンドポイント、またはカスタム ライブラリへの依存関係を持つエンドポイントは、 install_dependencies が True に設定されている場合に失敗する可能性があります。 このような場合は、 install_dependencies を False に設定します。
EnvPackConfig(...)を短縮形として"databricks_model_serving"に置き換えることもできます。 これは、EnvPackConfig(name="databricks_model_serving", install_dependencies = True) と同じです。
モデルの登録が完了したら、 モデルをモデル サービスにデプロイできます。 デプロイ時間が短縮され、イベント ログにコンテナーのビルドが示されなくなったことに注意してください。