Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
:::tip Validar antes de depurar ¿Tiene problemas de implementación? Comience con la validación previa a la implementación para detectar problemas comunes antes de que se produzcan. :::
Depuración de la compilación del contenedor
Databricks recomienda revisar los registros para depurar y solucionar errores en las cargas de trabajo de implementación 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.
Los registros de eventos (haga clic en la pestaña Eventos ) de la interfaz de usuario del área de trabajo contienen información sobre el progreso de una compilación de contenedor. Una construcción de contenedor exitosa se resalta mediante un tipo de evento SERVED_ENTITY_CONTAINER_EVENT junto con un mensaje Container image creation finished successfully. Si no ve ningún evento de compilación o mensaje después de una hora de creación del punto de conexión, 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, consulte Depuración después de que la compilación del contenedor tenga éxito. Si se produce un error en la compilación, consulte Depuración después del error de compilación del contenedor.
Depuración después de que la compilación del contenedor tenga éxito
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.
Nota:
Si el código del modelo devuelve errores MlflowException, espere que el código de respuesta se asigne a una respuesta 4xx. Databricks considera que estos errores de código de modelo son errores causados por el cliente, ya que se pueden resolver en función del mensaje de error resultante.
5xx Los códigos de error están reservados para comunicar errores en los que Databricks está en error.
Dependencia que falta
Es posible que reciba un error como An error occurred while loading the model. No module named <module-name>., que 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.
Se produce un error en el modelo o se agota el tiempo de espera cuando se envían solicitudes 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.
Este error puede indicar un problema de código en la predict() función . 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.
Análisis de la causa principal de las solicitudes con error
Si se produce un error en una solicitud a un punto de conexión, puede realizar análisis de la causa principal mediante tablas de inferencia. Si está habilitada, las tablas de inferencia registran automáticamente todas las solicitudes y respuestas al punto de conexión en una tabla de catálogo de Unity para que pueda consultarlas.
- Para los modelos externos, los puntos de conexión de rendimiento aprovisionados y los agentes de IA, consulte Supervisión de modelos servidos mediante tablas de inferencia habilitadas para la puerta de enlace de AI.
Para consultar tablas de inferencia:
- En el área de trabajo, vaya a la pestaña Servicio y seleccione el nombre del punto de conexión.
- En la sección Tablas de inferencia , busque el nombre completo de la tabla de inferencia. Por ejemplo:
my-catalog.my-schema.my-table. - Ejecute lo siguiente en un cuaderno de Databricks:
%sql SELECT * FROM my-catalog.my-schema.my-table - Vea y filtre por columnas como
request,responserequest_timeystatus_codepara comprender las solicitudes y restringir los resultados.%sql SELECT * FROM my-catalog.my-schema.my-table WHERE status_code != 200 - Si ha habilitado el seguimiento de agentes para agentes de IA, consulte la columna Respuesta para ver seguimientos detallados. Consulte Habilitación de tablas de inferencia para agentes de IA.
El área de trabajo supera la simultaneidad aprovisionada
Es posible que se produzca un error Workspace exceeded provisioned concurrency quota. Esto indica que ha alcanzado la cuota de concurrencia aprovisionada de su espacio de trabajo. Consulte Límites y regiones de servicio de modelos para obtener más información sobre los límites de simultaneidad.
Puede liberar esta cuota eliminando o deteniendo puntos de conexión sin usar.
Este límite se puede aumentar 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.
El área de trabajo supera el límite de solicitudes paralelas
Es posible que reciba el siguiente error 429: Exceeded max number of parallel requests. Please contact your Databricks representative to increase the limit.
Este límite indica que ha alcanzado el límite del área de trabajo en el número máximo de solicitudes que se pueden enviar en paralelo. Consulte Límites y regiones de servicio de modelos para obtener más información sobre este límite.
Databricks recomienda migrar a puntos de conexión optimizados para rutas, donde se ha quitado este límite. Si no puede migrar a puntos de conexión optimizados para rutas, puede reducir el número de clientes que envían solicitudes de inferencia o ponerse en contacto con el representante de Databricks para un aumento de cuota.
Demasiadas solicitudes simultáneas
Es posible que reciba el siguiente error 429: Too many concurrent requests. Consider increasing the provisioned concurrency of the served entity. este error indica que la simultaneidad aprovisionada actual del punto de conexión no puede controlar el volumen de tráfico entrante. Si ha habilitado el escalado automático para el punto de conexión, el sistema aprovisionará automáticamente la simultaneidad adicional hasta el límite configurado del punto de conexión para controlar la mayor carga. Si el escalado automático no está habilitado, considere la posibilidad de aumentar manualmente la simultaneidad aprovisionada o habilitar el escalado automático para controlar los picos de tráfico.
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 el error: 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
Debido a las restricciones de disponibilidad y suministro de GPU, la compilación de GPU puede producir este error: 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. En función de la disponibilidad de la región, el equipo puede aprovisionar más recursos de GPU.
Versiones de paquetes de biblioteca instaladas
Databricks recomienda definir todas las bibliotecas importantes como dependencias del modelo para garantizar un comportamiento de modelo coherente y reproducible en todos los entornos. En los registros de compilación, puede confirmar las versiones del paquete que están instaladas correctamente.
- 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
cudasegún la documentación pública decuDNNPyTorch y Tensorflow.
Modelos de registro que requieren flash-attn
Si va a registrar un modelo que requiere flash-attn, Databricks recomienda usar una versión de rueda personalizada de flash-attn. De lo contrario, se pueden producir errores de compilación como ModuleNotFoundError: No module named 'torch' .
Para usar una versión de rueda personalizada de flash-attn, especifique todos los requisitos de pip como una lista y páselo como un parámetro en la función mlflow.transformers.log_model. También debe especificar las versiones de PyTorch, Torch y TorchVision que son compatibles con la versión de CUDA especificada en su flash attn wheel.
Por ejemplo, Databricks recomienda usar las siguientes versiones y ruedas para CUDA 11.8:
- Pytorch
- Torch 2.0.1+cu118
- Torchvision 0.15.2+cu118
- Flash-Attn
logged_model=mlflow.transformers.log_model(
transformers_model=test_pipeline,
artifact_path="artifact_path",
pip_requirements=["--extra-index-url https://download.pytorch.org/whl/cu118", "mlflow==2.13.1", "setuptools<70.0.0", "torch==2.0.1+cu118", "accelerate==0.31.0", "astunparse==1.6.3", "bcrypt==3.2.0", "boto3==1.34.39", "configparser==5.2.0", "defusedxml==0.7.1", "dill==0.3.6", "google-cloud-storage==2.10.0", "ipython==8.15.0", "lz4==4.3.2", "nvidia-ml-py==12.555.43", "optree==0.12.1", "pandas==1.5.3", "pyopenssl==23.2.0", "pytesseract==0.3.10", "scikit-learn==1.3.0", "sentencepiece==0.1.99", "torchvision==0.15.2+cu118", "transformers==4.41.2", "https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.8/flash_attn-2.5.8+cu118torch2.0cxx11abiFALSE-cp311-cp311-linux_x86_64.whl"],
input_example=input_example,
registered_model_name=registered_model_name)