Partager via


Guide de débogage pour la mise en service de modèles

Cet article illustre les étapes de débogage pour les problèmes courants rencontrés par les utilisateurs lors de l’utilisation de points de terminaison de la mise en service de modèles. Les problèmes courants peuvent inclure les erreurs rencontrées par les utilisateurs lorsque le point de terminaison ne parvient pas à initialiser ou démarrer, à générer des échecs liés au conteneur ou à des problèmes pendant l’opération ou l’exécution du modèle sur le point de terminaison.

Accéder aux journaux et les consulter

Databricks recommande de consulter les journaux de génération pour le débogage et la résolution des erreurs dans votre modèle de mise en service de vos charges de travail. Consultez Surveiller la qualité du modèle et l’intégrité du point de terminaison pour plus d’informations sur les journaux et leur affichage.

Vérifiez les journaux d’événements pour le modèle dans l’interface utilisateur de l’espace de travail et recherchez un message de génération de conteneur réussi. Si vous ne voyez pas de message de génération après une heure, contactez le support Databricks pour obtenir de l’aide.

Si votre génération réussit, mais que vous rencontrez d’autres erreurs, consultez Débogage après la réussite de la génération du conteneur. Si votre génération échoue, consultez Débogage après l’échec de la génération du conteneur.

Versions de package de bibliothèque installées

Dans vos journaux de génération, vous pouvez confirmer les versions de package installées.

  • Pour les versions de MLflow, si vous n’avez pas de version spécifiée, Model Service utilise la dernière version.
  • Pour le service GPU personnalisé, Model Serving installe les versions recommandées de cuda cuDNN PyTorch et de Tensorflow publiques.

Débogage après la réussite de la génération du conteneur

Même si le conteneur est généré avec succès, il peut y avoir des problèmes lorsque vous exécutez le modèle ou pendant l’opération du point de terminaison lui-même. Les paragraphes suivants détaillent les problèmes courants et expliquent comment les résoudre et procéder au débogage

Dépendances manquantes

Vous risquez d’obtenir une erreur telle que An error occurred while loading the model. No module named <module-name>.. Cette erreur peut indiquer qu’une dépendance est manquante dans le conteneur. Vérifiez que vous avez correctement indiqué toutes les dépendances qui doivent être incluses dans la génération du conteneur. Prêtez une attention particulière aux bibliothèques personnalisées et assurez-vous que les fichiers .whl sont inclus en tant qu’artefacts.

Bouclage des journaux de service

Si votre génération de conteneur échoue, vérifiez les journaux de service pour voir si vous les voyez en boucle lorsque le point de terminaison tente de charger le modèle. Si vous voyez ce comportement, essayez les étapes suivantes :

  1. Ouvrez un notebook et attachez-le à un cluster à usage général qui utilise une version Databricks Runtime, et non Databricks Runtime pour le Machine Learning.
  2. Chargez le modèle à l’aide de MLflow et essayez de déboguer à partir de là.

Vous pouvez également charger le modèle localement sur votre PC et déboguer à partir de là. Chargez votre modèle localement à l’aide des étapes suivantes :

import os
import mlflow

os.environ["MLFLOW_TRACKING_URI"] = "databricks://PROFILE"

ARTIFACT_URI = "model_uri"
if '.' in ARTIFACT_URI:
    mlflow.set_registry_uri('databricks-uc')
local_path = mlflow.artifacts.download_artifacts(ARTIFACT_URI)
print(local_path)

conda env create -f local_path/artifact_path/conda.yaml
conda activate mlflow-env

mlflow.pyfunc.load_model(local_path/artifact_path)

Le modèle échoue lorsque les requêtes sont envoyées au point de terminaison

Vous pouvez recevoir une erreur telle que Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference. lorsque la méthode predict() est appelée sur votre modèle.

Il existe un problème de code dans la fonction predict(). Databricks vous recommande de charger le modèle à partir de MLflow dans un notebook, puis de l’appeler. Cela met en évidence les problèmes dans la fonction predict(), et vous pouvez voir où se produit l’échec dans la méthode.

L’espace de travail dépasse la concurrence provisionnée

Vous pouvez recevoir une erreur Workspace exceeded provisioned concurrency quota.

Vous pouvez augmenter la concurrence en fonction de la disponibilité des régions. Contactez votre équipe de compte Databricks et fournissez votre ID d’espace de travail pour demander une augmentation de la concurrence.

Débogage après l’échec de la génération du conteneur

Cette section détaille les problèmes qui peuvent se produire lorsque votre génération échoue.

OSError: [Errno 28] No space left on device

L’erreur No space left peut être due à un trop grand nombre d’artefacts volumineux enregistrés inutilement en même temps que le modèle. Vérifiez dans MLflow que les artefacts superflus ne sont pas enregistrés en même temps que le modèle et essayez de redéployer le package réduit.

Problèmes du Pare-feu Azure liés à la mise en service de modèles à partir du catalogue Unity

Vous pouvez voir une erreut telle que Build could not start due to an internal error. If you are serving a model from UC and Azure Firewall is enabled, this is not supported by default..

Contactez l’équipe de votre compte Databricks afin d’obtenir de l’aide pour la résolution du problème.

Échec de la génération en raison d’un manque de disponibilité de GPU

Vous pouvez voir une erreut telle que Build could not start due to an internal error - please contact your Databricks representative..

Contactez l’équipe de votre compte Databricks afin d’obtenir de l’aide pour la résolution du problème.