Compartir a través de


Guía de depuración para servicio de modelos

En este artículo se muestran los pasos de depuración para problemas comunes que los usuarios pueden encontrar al trabajar con puntos de conexión de servicio de modelos. Los problemas comunes podrían incluir errores que se producen cuando el punto de conexión no se inicializa o inicia, errores de compilación relacionados con el contenedor o problemas durante la operación o ejecución del modelo en el punto de conexión.

Acceso y revisión de los registros

Databricks recomienda revisar los registros de compilación para depurar y solucionar errores en las cargas de trabajo de servicio de modelos. Vea Supervisión de la calidad del modelo y el estado del punto de conexión para obtener información sobre los registros y cómo verlos.

Compruebe los registros de eventos del modelo en la interfaz de usuario del área de trabajo y compruebe si hay un mensaje de compilación de contenedor correcta. Si no ve un mensaje de compilación después de una hora, póngase en contacto con el soporte técnico de Databricks para obtener ayuda.

Si la compilación se realiza correctamente, pero se producen otros errores, vea Depuración después de que la compilación del contenedor se realice correctamente. Si se produce un error en la compilación, vea Depuración después del error de compilación del contenedor.

Versiones de paquetes de biblioteca instaladas

En los registros de compilación, puede confirmar las versiones del paquete que están instaladas.

  • En el caso de las versiones de MLflow, si no tiene una versión especificada, Model Serving usa la versión más reciente.
  • Para el servicio de GPU personalizado, Model Serving instala las versiones recomendadas de y cuDNN según la documentación pública de cuda PyTorch y Tensorflow.

Depuración después de que la compilación del contenedor se realice correctamente

Incluso si el contenedor se compila correctamente, puede haber problemas al ejecutar el modelo o durante el funcionamiento del propio punto de conexión. En las subsecciones siguientes se detallan los problemas comunes y cómo solucionarlos y depurarlos

Dependencia que falta

Es posible que se produzca un error como An error occurred while loading the model. No module named <module-name>.. Este error podría indicar que falta una dependencia del contenedor. Compruebe que ha indicado correctamente todas las dependencias que se deben incluir en la compilación del contenedor. Preste especial atención a las bibliotecas personalizadas y asegúrese de que los archivos .whl se incluyen como artefactos.

Bucle de registros de servicio

Si se produce un error en la compilación del contenedor, compruebe los registros de servicio para ver si los observa en bucle cuando el punto de conexión intenta cargar el modelo. Si ve este comportamiento, pruebe los pasos siguientes:

  1. Abra un cuaderno y adjunte a un clúster multiuso que use una versión de Databricks Runtime, no Databricks Runtime para Machine Learning.
  2. Cargue el modelo mediante MLflow e intente depurar desde allí.

También puede cargar el modelo localmente en el equipo y depurar desde allí. Cargue el modelo localmente mediante lo siguiente:

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)

Se produce un error en el modelo cuando las solicitudes se envían al punto de conexión

Es posible que reciba un error como Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference. cuando se llama a predict() en el modelo.

Hay un problema de código en la función predict(). Databricks recomienda cargar el modelo desde MLflow en un cuaderno y llamarlo. Al hacerlo, se resaltan los problemas de la función predict() y puede ver dónde se produce el error en el método.

El área de trabajo supera la simultaneidad aprovisionada

Es posible que se produzca un error Workspace exceeded provisioned concurrency quota.

Puede aumentar la simultaneidad en función de la disponibilidad de la región. Póngase en contacto con el equipo de la cuenta de Databricks y proporcione el identificador del área de trabajo para solicitar un aumento de simultaneidad.

Depuración después del error de compilación del contenedor

En esta sección se detallan los problemas pueden aparecer cuando se produce un error en la compilación.

OSError: [Errno 28] No space left on device

El error No space left se puede deber a que se registran demasiados artefactos grandes junto con el modelo innecesariamente. Compruebe en MLflow que los artefactos extraños no se registran junto con el modelo e intente volver a implementar el paquete reducido.

Problemas de Azure Firewall con el servicio de modelos desde Unity Catalog

Es posible que vea un error como 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..

Póngase en contacto con el equipo de cuentas de Databricks para ayudar a resolverlo.

Error de compilación debido a la falta de disponibilidad de GPU

Es posible que vea un error como Build could not start due to an internal error - please contact your Databricks representative..

Póngase en contacto con el equipo de cuentas de Databricks para ayudar a resolverlo.