Compartilhar via


Guia de depuração para o serviço de modelo

Este artigo demonstra as etapas de depuração para problemas comuns que os usuários podem encontrar ao trabalhar com pontos de extremidade de serviço de modelo. Problemas comuns podem incluir erros que os usuários encontram quando o ponto de extremidade falha ao inicializar ou iniciar, falhas de build relacionadas ao contêiner ou problemas durante a operação ou execução do modelo no ponto de extremidade.

Logs de acesso e revisão

O Databricks recomenda examinar os logs de build para depuração e solução de erros em seu modelo que atende a cargas de trabalho. Consulte Monitorar a qualidade do modelo e a integridade do ponto de extremidade para obter informações sobre logs e como exibi-los.

Verifique os logs de eventos do modelo na interface do usuário do workspace e verifique se há uma mensagem de build de contêiner bem-sucedida. Se você não vir uma mensagem de build após uma hora, entre em contato com o suporte do Databricks para obter assistência.

Se o build for bem-sucedido, mas você encontrar outros erros, consulte Depuração após sucesso do build de contêiner. Se o build falhar, consulte Depuração após falha do build de contêiner.

Versões do pacote de biblioteca instalado

Nos logs de compilação, você pode confirmar as versões do pacote instaladas.

  • Para versões do MLflow, se você não tiver uma versão especificada, o Model Serving usará a versão mais recente.
  • Para o serviço de GPU personalizado, o Model Serving instala as versões recomendadas e cuDNN de acordo com a documentação pública do cuda PyTorch e do Tensorflow.

Depuração após sucesso do build de contêiner

Mesmo que o contêiner seja compilado com êxito, pode haver problemas ao executar o modelo ou durante a operação do próprio ponto de extremidade. As subseções a seguir detalham problemas comuns e como solucionar problemas e depurar

Dependência ausente

Você pode receber um erro como An error occurred while loading the model. No module named <module-name>.. Esse erro pode indicar que uma dependência está ausente do contêiner. Verifique se você indicou corretamente todas as dependências que devem ser incluídas na compilação do contêiner. Preste atenção especial às bibliotecas personalizadas e certifique-se de que os arquivos .whl sejam incluídos como artefatos.

Loop de logs de serviço

Se a compilação do contêiner falhar, verifique os logs de serviço para ver se você percebe que eles estão em loop quando o ponto de extremidade tenta carregar o modelo. Se você vir esse comportamento, tente as seguintes etapas:

  1. Abra um notebook e anexe a um cluster para todos os fins que usa uma versão do Databricks Runtime, não o Databricks Runtime para Machine Learning.
  2. Carregue o modelo usando o MLflow e tente depurar a partir daí.

Você também pode carregar o modelo localmente em seu PC e depurar a partir daí. Carregue seu modelo localmente usando o seguinte:

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)

O modelo falha quando as solicitações são enviadas para o ponto de extremidade

Você pode receber um erro como Encountered an unexpected error while evaluating the model. Verify that the input is compatible with the model for inference. quando predict() é chamado em seu modelo.

Há um problema de código na função predict(). O Databricks recomenda que você carregue o modelo do MLflow em um notebook e chame-o. Isso destaca os problemas na função predict(), e você pode ver onde a falha está acontecendo no método.

O workspace excede a simultaneidade provisionada

Você pode receber um erro Workspace exceeded provisioned concurrency quota.

Você pode aumentar a simultaneidade dependendo da disponibilidade da região. Entre em contato com sua equipe de conta do Databricks e forneça sua ID do workspace para solicitar um aumento de simultaneidade.

Depuração após falha do build de contêiner

Esta seção detalha os problemas que podem ocorrer quando o build falha.

OSError: [Errno 28] No space left on device

O erro No space left pode ser devido a muitos artefatos grandes sendo registrados ao lado do modelo desnecessariamente. Verifique no MLflow se os artefatos estranhos não são registrados junto com o modelo e tente reimplantar o pacote reduzido.

Problemas do Firewall do Azure com modelos de serviço do Catálogo do Unity

Você poderá ver um erro 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..

Entre em contato com sua equipe de conta do Databricks e eles vão ajudar você a resolver.

Falha de compilação devido à falta de disponibilidade de GPU

Você poderá ver um erro como Build could not start due to an internal error - please contact your Databricks representative..

Entre em contato com sua equipe de conta do Databricks e eles vão ajudar você a resolver.