Partager via


Déploiements optimisés sans serveur pour les endpoints de déploiement de modèles

Cet article explique comment utiliser des déploiements optimisés pour le mode serverless sur vos points de terminaison de mise en service de modèles. Les déploiements optimisés serverless réduisent considérablement les temps de déploiement et conservent l'environnement de service du modèle identique à l'environnement d'entraînement du modèle.

Qu’est-ce que les déploiements optimisés « serverless » ?

Les déploiements optimisés sans serveur tirent parti de l’empaquetage et de la mise en scène des artefacts de modèles dans les environnements de notebooks sans serveur pendant l’enregistrement du modèle, ce qui permet un déploiement accéléré des points de terminaison et assure la cohérence des environnements entre l'entraînement et la mise en service.

Cela diffère des déploiements optimisés non serverless, où les artefacts de modèle et les environnements sont emballés dans des conteneurs au moment du déploiement. Dans ce cas, l’environnement de service peut ne pas correspondre à celui utilisé pendant l’entraînement du modèle.

Spécifications

Les points de terminaison optimisés serverless ont les mêmes exigences que les points de terminaison de service de modèle (voir Exigences). De plus,:

  • Le modèle doit être un modèle personnalisé (et non FMAPI)
  • Le modèle doit être consigné et enregistré dans un notebook serverless à l'aide de la version 3 ou 4
  • Le modèle doit être consigné et enregistré avec mlflow>=3.1
  • Le modèle doit être enregistré dans UC et exécuté avec un processeur CPU
  • La taille maximale de l’environnement du modèle est de 1 Go

Utilisation de déploiements optimisés sans serveur

Lors de l'enregistrement et de l’inscription d’un modèle, utilisez un notebook serverless avec le client 3 ou 4 et mlflow>=3.1.

Pour ajuster la version du client de l’environnement serverless, consultez Configurer l’environnement serverless.

Ensuite, lors de l’inscription d’un modèle, définissez le env_pack paramètre avec les valeurs souhaitées.

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")
)

En ajoutant le paramètre env_pack, la fonction emballera et préparera les artefacts du modèle ainsi que l'environnement de notebook sans serveur lors de l'enregistrement du modèle afin de le préparer pour l'utilisation pendant le déploiement. Cela peut prendre du temps supplémentaire par rapport à l’inscription du modèle sans env_pack.

EnvPackConfig a un paramètre install_dependencies (True par défaut) qui détermine si les dépendances du modèle sont installées dans l’environnement actuel pour confirmer que l’environnement est valide. Si vous souhaitez ignorer cette étape, définissez la valeur Falsesur .

Note

Les points de terminaison dans les espaces de travail sans accès à Internet ou les points de terminaison avec des dépendances sur les bibliothèques personnalisées peuvent échouer si ceux-ci sont définis à . Dans ces cas, définissez install_dependencies à False.

Vous pouvez également remplacer EnvPackConfig(...) par "databricks_model_serving" comme un raccourci. Ceci équivaut à EnvPackConfig(name="databricks_model_serving", install_dependencies = True).

Une fois le modèle inscrit, vous pouvez déployer le modèle dans le service de modèle. Notez que le temps de déploiement est réduit et que les journaux d'événements n’indiquent plus la génération du conteneur.