Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo demonstra as etapas de depuração para problemas comuns que os utilizadores podem encontrar ao trabalhar com endereços finais 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 compilação relacionadas ao contêiner ou problemas durante a operação ou execução do modelo no ponto de extremidade.
:::dica: Validar antes de depurar Estás a ter problemas de implementação? Comece com validação pré-implementação para detetar problemas comuns antes que ocorram. :::
Depure a construção do seu contentor
A Databricks recomenda rever logs para depuração e resolução de erros em cargas de trabalho de serviços de modelos. Consulte Monitorizar a qualidade do modelo e a saúde do endpoint para obter informações sobre logs e como visualizá-los.
Os registos de eventos (clique no separador de Eventos) na interface do espaço de trabalho contêm informações sobre o progresso da compilação de um contentor. Uma construção de contentor bem-sucedida é destacada por um SERVED_ENTITY_CONTAINER_EVENT tipo de evento juntamente com uma mensagem Container image creation finished successfully. Se não vir nenhum evento de build ou mensagem após uma hora de criar o endpoint, contacte o suporte da Databricks para obter ajuda.
Se a sua compilação for bem-sucedida, mas encontrar outros erros, veja Depurar após uma compilação do contentor bem-sucedida. Se a sua build falhar, veja Debug após a falha da build do contêiner.
Depurar após a construção do container ser bem-sucedida
Mesmo que o contentor seja construído com êxito, podem surgir problemas quando se executa o modelo ou durante a operação do próprio endpoint. As subsecções seguintes detalham problemas comuns e como os resolver.
Observação
Se o código do modelo retornar MlflowException erros, deverá esperar que o código de resposta seja mapeado para uma 4xx resposta. O Databricks considera esses erros de código de modelo como erros causados pelo cliente, uma vez que podem ser resolvidos com base na mensagem de erro resultante.
5xx códigos de erro são reservados para comunicar erros onde Databricks está em falta.
Dependência ausente
Pode aparecer um erro como An error occurred while loading the model. No module named <module-name>., que pode indicar que falta uma dependência no contentor. Verifique se você denotou corretamente todas as dependências que devem ser incluídas na compilação do contêiner. Preste especial atenção às bibliotecas personalizadas e certifique-se de que os .whl arquivos sejam incluídos como artefatos.
O modelo falha ou atinge o tempo limite 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 no seu modelo.
Este erro pode indicar um problema de código na predict() função. O Databricks recomenda que você carregue o modelo do MLflow em um bloco de anotações e o chame. Isso destaca os problemas na predict() função e você pode ver onde a falha está acontecendo dentro do método.
Análise de causa raiz de solicitações com falha
Se uma solicitação para um ponto de extremidade falhar, você poderá executar a análise de causa raiz usando tabelas de inferência. Se ativadas, as tabelas de inferência registam automaticamente todos os pedidos e respostas ao seu endpoint numa tabela do Catálogo Unity para que possa consultar tudo.
- Para modelos externos, pontos de extremidade de taxa de transferência provisionados e agentes de IA, consulte Monitorar modelos servidos usando tabelas de inferência habilitadas para AI Gateway.
- Para modelos personalizados, consulte Tabelas de inferência para monitorar e depurar modelos.
Para consultar tabelas de inferência:
- No seu espaço de trabalho, vá para a guia Servindo e selecione o nome do seu ponto de extremidade.
- Na seção Tabelas de inferência , localize o nome totalmente qualificado da tabela de inferência. Por exemplo,
my-catalog.my-schema.my-table. - Execute o seguinte em um bloco de anotações Databricks:
%sql SELECT * FROM my-catalog.my-schema.my-table - Visualize e filtre colunas como
request,responserequest_timeestatus_codepara entender as solicitações e restringir os resultados.%sql SELECT * FROM my-catalog.my-schema.my-table WHERE status_code != 200 - Se você habilitou o rastreamento de agentes para agentes de IA, consulte a coluna Resposta para exibir rastreamentos detalhados. Consulte Habilitar tabelas de inferência para agentes de IA.
O espaço de trabalho excede a simultaneidade provisionada
Você pode receber um Workspace exceeded provisioned concurrency quota erro. Isto indica que atingiu a sua quota de espaço de trabalho para concorrência provisionada. Consulte Limites e regiões de Serviço Modelo para mais informações sobre limites de concorrência.
Pode libertar esta quota eliminando ou parando endpoints não utilizados.
Este limite pode ser aumentado dependendo da disponibilidade da região. Entre em contato com sua equipe de conta Databricks e forneça seu ID de espaço de trabalho para solicitar um aumento de simultaneidade.
Workspace ultrapassa o limite de pedidos paralelos
Pode receber o seguinte erro 429: Exceeded max number of parallel requests. Please contact your Databricks representative to increase the limit.
Este limite indica que atingiu o limite de espaço de trabalho para o número máximo de pedidos que podem ser enviados em paralelo. Consulte Limites e regiões de Serviço do Modelo para mais informações sobre este limite.
O Databricks recomenda migrar para endpoints otimizados para o roteamento, onde este limite foi removido. Se não conseguir mudar para endpoints otimizados para rotas, pode reduzir o número de clientes que enviam pedidos de inferência, ou contactar o seu representante Databricks para aumentar a quota.
Demasiados pedidos simultâneos
Pode receber o seguinte erro 429: Too many concurrent requests. Consider increasing the provisioned concurrency of the served entity. Este erro indica que a concorrência provisionada atual do seu endpoint não consegue lidar com o volume de tráfego recebido. Se tiver ativado o autoscaling para o seu endpoint, o sistema irá automaticamente providenciar concorrência adicional até ao limite configurado pelo endpoint para lidar com o aumento da carga. Se o autoscaling não estiver ativado, considere aumentar manualmente a concorrência provisionada ou ative o autoscaling para gerir picos de tráfego.
Depuração após falha de build do container
Esta seção detalha problemas que podem ocorrer quando sua compilação falha.
OSError: [Errno 28] No space left on device
O No space left erro pode ser devido a muitos artefatos grandes sendo registrados ao lado do modelo desnecessariamente. Verifique no MLflow se artefatos estranhos não são registrados ao lado do modelo e tente reimplantar o pacote reduzido.
Problemas do Firewall do Azure com modelos de serviço do Catálogo Unity
Poderá ver o erro: 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 Databricks para ajudar a resolver.
Falha de compilação devido à falta de disponibilidade da GPU
Devido a restrições no fornecimento e disponibilidade da GPU, a sua build da GPU pode falhar com este erro: Build could not start due to an internal error - please contact your Databricks representative..
Entre em contato com sua equipe de conta Databricks para ajudar a resolver. Dependendo da disponibilidade regional, a equipa pode disponibilizar mais recursos da GPU.
Versões do pacote de biblioteca instalado
O Databricks recomenda que defina todas as bibliotecas importantes como dependências de modelos para garantir um comportamento consistente e reproduzível entre os ambientes. Nos logs de build podes confirmar as versões dos pacotes que estão instaladas corretamente.
- Para versões MLflow, se você não tiver uma versão especificada, o Model Serving usará a versão mais recente.
- Para fornecimento de GPU personalizado, Model Serving instala as versões recomendadas de
cudaecuDNNde acordo com a documentação pública do PyTorch e do Tensorflow.
Modelos de log que exigem flash-attn
Se estiver a registar um modelo que requer flash-attn, a Databricks recomenda usar uma versão personalizada de pacote wheel de flash-attn. Caso contrário, erros de compilação como os que ModuleNotFoundError: No module named 'torch' podem resultar.
Para usar uma versão personalizada de flash-attn, especifique todos os requisitos de pip como uma lista e passe essa lista como parâmetro na função mlflow.transformers.log_model. Você também deve especificar as versões pytorch, torch e torchvision que são compatíveis com a versão CUDA especificada em sua flash attn roda.
Por exemplo, a Databricks recomenda o uso das seguintes versões e rodas para CUDA 11.8:
- Pytorch
- Tocha 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)