guia de depuração para manutenção do modelo

Este artigo demonstra a depuração dos passos para problemas comuns que os usuários podem encontrar ao trabalhar com o modelo de endpoint servindo. Os problemas comuns podem incluir erros que os usuários encontram quando o endpoint não consegue inicializar ou começar, falhas de construção relacionadas ao contêiner ou problemas durante as operações ou a execução do modelo no endpoint.

Registros de acesso e revisão

Databricks recomenda revisar a compilação logs para depuração e solução de problemas de erros em suas cargas de trabalho de modelo de serviço. Consulte Monitorar a qualidade do modelo e a endpoint saúde para obter informações sobre logs e como view corrigi-las.

Verifique o evento logs para o modelo na UI workspace e verifique se há uma mensagem de criação de contêiner bem-sucedida. Se o senhor não vir uma mensagem de compilação após uma hora, entre em contato com o suporte da Databricks para obter ajuda.

Se a compilação for bem-sucedida, mas o senhor encontrar outros erros, consulte depuração após a compilação bem-sucedida do contêiner. Se a compilação falhar, consulte depuração após falha na compilação do contêiner.

Versões instaladas da biblioteca pacote

Em sua compilação logs, o senhor pode confirmar as versões do pacote que estão instaladas.

  • Para as versões do MLflow, se o senhor não tiver uma versão especificada, o servindo modelo usará a versão mais recente.

  • Para o serviço personalizado de GPU, o servindo modelo instala as versões recomendadas de cuda e cuDNN de acordo com a documentação pública do PyTorch e do Tensorflow.

depuração após o sucesso da construção do contêiner

Mesmo que o contêiner seja criado com sucesso, pode haver problemas quando o modelo for executado ou durante as operações do próprio endpoint. 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 construção do contêiner. Preste atenção especial à biblioteca personalizada e certifique-se de que os arquivos .whl sejam incluídos como artefatos.

Logs de serviço em loop

Se a compilação do contêiner falhar, verifique os logs de serviço para ver se há um looping quando o endpoint tenta carregar o modelo. Se o senhor observar esse comportamento, tente os seguintes passos:

  1. Abra um Notebook e anexe a um clusters todo-propósito que usa uma versão Databricks Runtime, não Databricks Runtime para Machine Learning.

  2. Carregue o modelo usando MLflow e tente a depuração a partir daí.

Você também pode carregar o modelo localmente no 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 ao endpoint

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(). Databricks recomenda que o senhor carregue o modelo do site MLflow em um notebook e o chame. Isso destaca os problemas na função predict() e você pode ver onde a falha está acontecendo no método.

o espaço de trabalho excede a simultaneidade de provisionamento

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 a equipe Databricks account e forneça seu ID workspace para solicitar um aumento de concorrência.

depuração após falha na construção do contêiner

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

OSError: [Errno 28] No space left on device

O erro No space left pode ser devido ao excesso de artefatos grandes sendo registrados ao lado do modelo desnecessariamente. Verifique em MLflow se artefatos estranhos não estão registrados ao lado do modelo e tente reimplantar o pacote reduzido.

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

Talvez você veja um erro como Build could not start due to an internal error - please contact your Databricks representative..

Entre em contato com a equipe do Databricks account para ajudar a resolver o problema.