Solução de problemas de ambiente
Neste artigo, aprenda como solucionar problemas comuns que você pode encontrar com compilações de imagem de ambiente e saiba mais sobre vulnerabilidades de ambiente do AzureML.
Aguardamos seus comentários! Se você navegou até esta página por meio dos logs de Definição de Ambiente ou Análise de Falha de Build, gostaríamos de saber se o recurso foi útil para você ou se deseja relatar um cenário de falha que ainda não foi abordado em nossa análise. Você também pode deixar comentários sobre esta documentação. Deixe seus comentários aqui.
Ambientes do Azure Machine Learning
Os ambientes de Azure Machine Learning são um encapsulamento do ambiente no qual o treinamento do aprendizado de máquina acontece. Eles especificam a imagem base do Docker, os pacotes Python e as configurações de software em relação aos scripts de treinamento e pontuação. Os ambientes são ativos gerenciados com controle de versão no workspace do Machine Learning, que habilitam fluxos de trabalho de aprendizado de máquina reproduzíveis, auditáveis e portáteis em uma variedade de destinos de computação.
Tipos de ambientes
Os ambientes se enquadram em três categorias: coletados, gerenciados pelo usuário e gerenciados pelo sistema.
Os ambientes coletados são ambientes criados previamente e gerenciados pelo Azure Machine Learning e estão disponíveis por padrão em todos os workspaces. Eles contêm coleções de pacotes e configurações do Python para ajudar você a começar a usar várias estruturas de machine learning e devem ser usados no estado em que se encontram. Esses ambientes pré-criados também permitem um tempo de implantação mais rápido.
Para ambientes gerenciados pelo usuário, você é responsável por configurar seu ambiente e instalar todos os pacotes de que seu script de treinamento precisa no destino de computação. Além disso, não se esqueça de incluir as dependências necessárias para a implantação de modelo.
Esses tipos de ambientes têm dois subtipos. Para o primeiro tipo, BYOC (trazer seu próprio contêiner), você traz uma imagem existente do Docker para o Azure Machine Learning. Para o segundo tipo, os ambientes baseados no contexto de build do Docker, o Azure Machine Learning materializa a imagem com base no contexto que você fornece.
Quando quiser que o Conda gerencie o ambiente do Python por você, use um ambiente gerenciado pelo sistema. O Azure Machine Learning cria um novo ambiente isolado do Conda materializando sua especificação do Conda de acordo com uma imagem base do Docker. Por padrão, o Azure Machine Learning adiciona recursos comuns à imagem derivada. Todos os pacotes do Python presentes na imagem base não estão disponíveis no ambiente isolado do Conda.
Criar e gerenciar ambientes
Você pode criar e gerenciar ambientes em clientes como o SDK do Python para o Azure Machine Learning, a CLI do Azure Machine Learning, a interface do usuário do Estúdio do Azure Machine Learning e a extensão do Visual Studio Code.
Ambientes "anônimos" são registrados automaticamente no workspace, quando você envia um experimento sem registrar ou referenciar um ambiente já existente. Eles não estão listados, mas você pode recuperá-los pela versão ou pelo rótulo.
O Azure Machine Learning compila as definições de ambiente em imagens do Docker. Ele também armazena as imagens em cache no Registro de Contêiner do Azure associado ao workspace do Azure Machine Learning, para que elas possam ser reutilizadas nos trabalhos de treinamento seguintes e nas implantações de ponto de extremidade de serviço. Vários ambientes com a mesma definição podem resultar na mesma imagem armazenada em cache.
A execução de um script de treinamento exige remotamente a criação de uma imagem do Docker.
Vulnerabilidades em ambientes do AzureML
Você pode resolver as vulnerabilidades atualizando para uma versão mais recente de uma dependência (imagem base, pacote do Python etc.) ou migrando para uma dependência diferente que atenda aos requisitos de segurança. A mitigação de vulnerabilidades é demorada e dispendiosa, pois pode exigir refatoração de código e infraestrutura. Com a prevalência de software código aberto e o uso de dependências aninhadas complicadas, é importante gerenciar e controlar as vulnerabilidades.
Há algumas maneiras de diminuir o impacto das vulnerabilidades:
- Reduzir o número de dependências: use o conjunto mínimo de dependências para cada cenário.
- Compartimentalize seu ambiente para que você possa definir o escopo e corrigir problemas em um só lugar.
- Entenda as vulnerabilidades sinalizadas e sua relevância para seu cenário.
Examinar vulnerabilidades
Monitore e mantenha a higienização do ambiente, com o Microsoft Defender para o Registro de Contêiner para ajudar a verificar se há vulnerabilidades nas imagens.
Para automatizar esse processo com base em gatilhos do Microsoft Defender, consulte Automatizar respostas aos gatilhos do Microsoft Defender para Nuvem.
Vulnerabilidades versus Reprodutibilidade
A reprodutibilidade é uma das bases do desenvolvimento de software. Quando você desenvolve um código de produção, uma operação repetida precisa garantir o mesmo resultado. A mitigação de vulnerabilidades pode interromper a reprodutibilidade alterando as dependências.
O foco principal do Azure Machine Learning é garantir a reprodutibilidade. Os ambientes se enquadram em três categorias: coletados, gerenciados pelo usuário e gerenciados pelo sistema.
Ambientes coletados
Os ambientes coletados são ambientes criados previamente que são gerenciados pelo Azure Machine Learning e que estão disponíveis por padrão em todos os workspaces provisionados do Azure Machine Learning. Novas versões foram lançadas pelo Azure Machine Learning para resolver vulnerabilidades. Se o uso da imagem mais recente pode significar uma escolha difícil entre a reprodutibilidade e o gerenciamento de vulnerabilidades.
Os ambiente coletados contêm coleções de pacotes e configurações do Python para ajudar você a começar a usar várias estruturas de aprendizado de máquina. Você deve usá-los no estado em que se encontram. Esses ambientes pré-criados também permitem um tempo de implantação mais rápido.
Ambientes gerenciados pelo usuário
Para ambientes gerenciados pelo usuário, você é responsável por configurar o ambiente e instalar todos os pacotes de que o script de treinamento precisa no destino de computação e pela implantação do modelo. Esses tipos de ambientes têm dois subtipos:
- BYOC (Traga Seu Próprio Contêiner): o usuário fornece uma imagem do Docker para o Azure Machine Learning
- Contexto de build do Docker: o Azure Machine Learning materializa a imagem do conteúdo fornecido pelo usuário
Depois de instalar mais dependências sobre uma imagem fornecida pela Microsoft ou trazer sua própria imagem de base, o gerenciamento de vulnerabilidades se tornará sua responsabilidade.
Ambientes gerenciados pelo sistema
Use ambientes gerenciados pelo sistema quando quiser que o Conda gerencie o ambiente do Python por você. O Azure Machine Learning cria um novo ambiente isolado do Conda materializando sua especificação do Conda de acordo com uma imagem base do Docker. Embora o Azure Machine Learning patches imagens base com cada versão, caso use a imagem mais recente pode ser uma compensação entre a reprodutibilidade e o gerenciamento de vulnerabilidades. Portanto, é sua responsabilidade escolher a versão de ambiente usada para seus trabalhos ou implantações de modelo ao usar ambientes gerenciados pelo sistema.
Vulnerabilidades: problemas comuns
Vulnerabilidades em imagens base do Docker
As vulnerabilidades do sistema em um ambiente geralmente são introduzidas a partir da imagem base. Por exemplo, as vulnerabilidades marcadas como "Ubuntu" ou "Debian" são do nível do sistema do ambiente – a imagem base do Docker. Se a imagem base for de um emissor de terceiros, verifique se a versão mais recente tem correções para as vulnerabilidades sinalizadas. As fontes mais comuns das imagens base no Azure Machine Learning são:
- Registro de Artefato da Microsoft (MAR) também conhecido como Registro de Contêiner da Microsoft (mcr.microsoft.com).
- As imagens podem ser listadas na página inicial do MAR, chamando a API do catálogo, ou /tags/list
- Fontes e notas sobre a versão para imagens base de treinamento do AzureML podem ser encontradas no Azure/AzureML-Containers
- Nvidia (nvcr.io ou perfil da nvidia)
Se a versão mais recente da imagem base não resolve suas vulnerabilidades, as vulnerabilidades da imagem base poderão ser resolvidas instalando versões recomendadas por uma verificação de vulnerabilidade:
apt-get install -y library_name
Vulnerabilidades em pacotes do Python
As vulnerabilidades também podem ser de pacotes do Python instalados sobre a imagem base gerenciada pelo sistema. Essas vulnerabilidades relacionadas ao Python devem ser resolvidas atualizando suas dependências Python. As vulnerabilidades do Python (pip) na imagem geralmente vêm de dependências definidas pelo usuário.
Para pesquisar vulnerabilidades e soluções conhecidas do Python, consulte o Banco de Dados de Consultoria do GitHub. Para resolver vulnerabilidades do Python, atualize o pacote para a versão que tem correções para o problema sinalizado:
pip install -u my_package=={good.version}
Se você estiver usando um ambiente conda, atualize a referência no arquivo de dependências do Conda.
Em alguns casos, os pacotes do Python serão instalados automaticamente durante a instalação do conda do seu ambiente sobre uma imagem base do Docker. As etapas de mitigação para eles são iguais às dos pacotes introduzidos pelo usuário. O Conda instala as dependências necessárias para cada ambiente materializado. Pacotes como criptografia, setuptools, wheel, etc. serão instalados automaticamente a partir dos canais padrão do Conda. Há um problema conhecido com o canal anaconda padrão sem versões de pacote mais recentes, portanto, é recomendável priorizar o canal conda-forge mantido pela comunidade. Caso contrário, especifique explicitamente os pacotes e as versões, mesmo que você não faça referência a eles no código que planeja executar nesse ambiente.
Problemas de cache
Associado ao seu workspace do Azure Machine Learning está uma instância do Registro de Contêiner do Azure que é um cache para as imagens de contêiner. Qualquer imagem materializada é enviada por push para o registro de contêiner e usada se você disparou a experimentação ou a implantação para o ambiente correspondente. O Azure Machine Learning não exclui imagens do registro de contêiner, e é sua responsabilidade avaliar quais imagens você precisa manter ao longo do tempo.
Solucionar problemas de compilações de imagem de ambiente
Saiba como solucionar problemas com compilações de imagem de ambiente e instalações de pacote.
Problemas de definição de ambiente
Problemas de nome do ambiente
Prefixo coletado não permitido
Este problema pode ocorrer quando o nome do ambiente personalizado usa termos reservados somente para ambientes coletados. Ambientes coletados são ambientes que a Microsoft mantém. Ambientes personalizados são ambientes que você cria e mantém.
Possíveis causas:
- O nome do ambiente começa com Microsoft ou AzureML
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Atualize o nome do ambiente para excluir o prefixo reservado que você está usando no momento
Recursos
O nome do ambiente é muito longo
Possíveis causas:
- O nome do seu ambiente tem mais de 255 caracteres
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Atualize o nome do seu ambiente para ter 255 caracteres ou menos
Problemas do Docker
APLICA-SE A: Extensão de ML da CLI do Azure v1
APLICA-SE A: SDK do Python azureml v1
Para criar um novo ambiente, use uma das seguintes abordagens (consulte DockerSection):
- Imagem de base
- Forneça o nome da imagem base, o repositório de onde deve ser extraída, e as credenciais, se necessário
- Fornecer uma especificação do Conda
- Dockerfile base
- Fornecer um Dockerfile
- Fornecer uma especificação do Conda
- Contexto de compilação do Docker
- Fornecer o local do contexto de compilação (URL)
- O contexto de compilação deve conter pelo menos um Dockerfile, mas também pode conter outros arquivos
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Para criar um novo ambiente, você deve usar uma das seguintes abordagens:
- Imagem do Docker
- Forneça o URI da imagem hospedada em um registro, como o Docker Hub ou o Registro de Contêiner do Azure
- Exemplo aqui
- Contexto de compilação do Docker
- Especifique o diretório que servirá como o contexto de build
- O diretório deve conter um Dockerfile e quaisquer outros arquivos necessários para compilar a imagem
- Exemplo aqui
- Especificação do Conda
- Você deve especificar uma imagem base do Docker para o ambiente; O Azure Machine Learning compila o ambiente do Conda com base na imagem do Docker fornecida
- Fornecer o caminho relativo para o arquivo do conda
- Exemplo aqui
Definição do Docker ausente
APLICA-SE A: SDK do Python azureml v1
Esse problema pode acontecer quando a definição do ambiente não tem uma DockerSection
. Esta seção define as configurações relacionadas à imagem final do Docker criada com base na especificação do ambiente.
Possíveis causas:
- Você não especificou a
DockerSection
da definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Adicione um DockerSection
à sua definição de ambiente, especificando uma imagem base, dockerfile base ou contexto de build do docker.
from azureml.core import Environment
myenv = Environment(name="myenv")
# Specify docker steps as a string.
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
Recursos
Muitas opções do Docker
Possíveis causas:
APLICA-SE A: SDK do Python azureml v1
Você tem mais de uma dessas opções do Docker especificadas na definição do ambiente
base_image
base_dockerfile
build_context
- Confira DockerSection
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Você tem mais de uma dessas opções do Docker especificadas na definição do ambiente
image
build
- Confira azure.ai.ml.entities.Environment
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Escolha qual opção do Docker você gostaria de usar para criar seu ambiente. Em seguida, defina todas as outras opções especificadas como Nenhuma.
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Environment
myenv = Environment(name="myEnv")
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
myenv.docker.base_image = "pytorch/pytorch:latest"
# Having both base dockerfile and base image set will cause failure. Delete the one you won't use.
myenv.docker.base_image = None
Opção do Docker ausente
Possíveis causas:
Você não especificou uma das opções a seguir na definição do ambiente
base_image
base_dockerfile
build_context
- Confira DockerSection
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Você não especificou uma das opções a seguir na definição do ambiente
image
build
- Confira azure.ai.ml.entities.Environment
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Escolha qual opção do Docker você gostaria de usar para criar seu ambiente e, em seguida, preencha essa opção na definição do ambiente.
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Environment
myenv = Environment(name="myEnv")
myenv.docker.base_image = "pytorch/pytorch:latest"
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
env_docker_image = Environment(
image="pytorch/pytorch:latest",
name="docker-image-example",
description="Environment created from a Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)
Recursos
Credenciais de registro de contêiner sem o nome de usuário ou a senha
Possíveis causas:
- Você especificou um nome de usuário ou uma senha para o registro de contêiner em sua definição de ambiente, mas não ambos
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Adicione o nome de usuário ou a senha ausentes à definição de ambiente para corrigir o problema
myEnv.docker.base_image_registry.username = "username"
Como alternativa, forneça a autenticação por meio de conexões de workspace
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
Criar uma conexão de workspace com base em um arquivo de especificação YAML
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
Observação
- Não há mais suporte ao fornecimento de credenciais em sua definição de ambiente. Use conexões de workspace.
Recursos
Várias credenciais para registro de imagem base
Possíveis causas:
- Você especificou mais de um conjunto de credenciais para o registro de imagem base
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Se você estiver usando conexões de workspace, exiba as conexões definidas e exclua as que não deseja usar
from azureml.core import Workspace
ws = Workspace.from_config()
ws.list_connections()
ws.delete_connection("myConnection2")
Se você especificou credenciais em sua definição de ambiente, escolha um conjunto de credenciais a serem usadas e defina todas as outras como nulas
myEnv.docker.base_image_registry.registry_identity = None
Observação
- Não há mais suporte ao fornecimento de credenciais em sua definição de ambiente. Use conexões de workspace.
Recursos
Segredos no registro de imagem base
Possíveis causas:
- Você especificou credenciais em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Não há mais suporte à especificação de credenciais em sua definição de ambiente. Exclua as credenciais da definição de ambiente e use conexões de workspace.
APLICA-SE A: SDK do Python azureml v1
Definir uma conexão de workspace em seu workspace
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
Criar uma conexão de workspace com base em um arquivo de especificação YAML
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
Recursos
Atributo do Docker preterido
Possíveis causas:
- Você especificou atributos do Docker em sua definição de ambiente que agora foram preteridos
- As seguintes propriedades foram preteridas:
enabled
arguments
shared_volumes
gpu_support
- O Azure Machine Learning já detecta e usa automaticamente a extensão NVIDIA Docker quando disponível
smh_size
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Em vez de especificar esses atributos na DockerSection
da definição de ambiente, use DockerConfiguration
Recursos
- Confira
DockerSection
variáveis preteridas
Tamanho do Dockerfile acima do limite
Possíveis causas:
- Seu Dockerfile especificado excedeu o tamanho máximo de 100 KB
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Encurte o Dockerfile para se ajustar ao limite
Recursos
Problemas de contexto de compilação do Docker
Local do contexto de compilação do Docker ausente
Possíveis causas:
- Você não forneceu o caminho do diretório de contexto de build em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Incluir um caminho no build_context
de sua DockerSection
- Confira Classe DockerBuildContext
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Incluir um caminho para o contexto de build
- Confira Classe BuildContext
- Veja este a amostra
Recursos
Caminho do Dockerfile ausente
Este problema pode acontecer quando o Azure Machine Learning falha ao localizar seu Dockerfile. Como padrão, o Azure Machine Learning procura um Dockerfile chamado 'Dockerfile' na raiz do diretório de contexto de build, a menos que você especifique um caminho do Dockerfile.
Possíveis causas:
- Seu Dockerfile não está na raiz do diretório de contexto de build e/ou recebeu nome diferente de 'Dockerfile' e você não forneceu seu caminho
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
No build_context
de sua DockerSection, inclua um dockerfile_path
- Confira Classe DockerBuildContext
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Especificar um caminho do Dockerfile
- Confira Classe BuildContext
- Veja este a amostra
Recursos
Não é permitido especificar o atributo com o contexto de compilação do Docker
Esse problema poderá acontecer quando você tiver especificado propriedades em sua definição de ambiente que não podem ser incluídas com um contexto de build do Docker.
Possíveis causas:
- Você especificou um contexto de build do Docker, com, pelo menos, um dos seguintes na definição de ambiente:
- Variáveis de ambiente
- Dependências do Conda
- R
- Spark
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Se você especificou uma das propriedades listadas acima na definição de ambiente, remova-as
- Se você estiver usando um contexto de build do Docker e quiser especificar dependências do Conda, sua especificação do Conda deverá residir no diretório de contexto de build
Recursos
- Entender o contexto de build
- Classe de ambiente do SDK do Python v1
Tipo de local sem suporte/tipo de local desconhecido
Possíveis causas:
- Você especificou um tipo de local para o contexto de build do Docker que não tem suporte ou é desconhecido
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Veja a seguir os tipos de local aceitos:
- Git
- Você pode fornecer URLs do GIT para o Azure Machine Learning, mas ainda não pode usá-las para criar imagens. Usar uma conta de armazenamento até que as compilações tenham suporte no Git
- Conta de armazenamento
- Confira esta Visão geral da conta de armazenamento
- Saiba como criar uma conta de armazenamento
Recursos
Localização inválida
Possíveis causas:
- O local especificado do contexto de build do Docker é inválido
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Para cenários em que você está armazenando seu contexto de build do Docker em uma conta de armazenamento
Você precisa especificar o caminho do contexto de build como
https://<storage-account>.blob.core.windows.net/<container>/<path>
Verifique se o local fornecido é uma URL válida
Verifique se você especificou um contêiner e um caminho
Recursos
Problemas de imagem base
A imagem base foi preterida
Possíveis causas:
- Você usou uma imagem base preterida
- O Azure Machine Learning não pode fornecer suporte à solução de problemas para builds com falha com imagens preteridas
- O Azure Machine Learning não atualiza nem mantém essas imagens. Portanto, elas estão em risco de vulnerabilidades
As seguintes imagens base foram preteridas:
azureml/base
azureml/base-gpu
azureml/base-lite
azureml/intelmpi2018.3-cuda10.0-cudnn7-ubuntu16.04
azureml/intelmpi2018.3-cuda9.0-cudnn7-ubuntu16.04
azureml/intelmpi2018.3-ubuntu16.04
azureml/o16n-base/python-slim
azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu16.04
azureml/openmpi3.1.2-ubuntu16.04
azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.2-cudnn8-ubuntu18.04
azureml/openmpi3.1.2-ubuntu18.04
azureml/openmpi4.1.0-cuda11.0.3-cudnn8-ubuntu18.04
azureml/openmpi4.1.0-cuda11.1-cudnn8-ubuntu18.04
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Atualizar sua imagem base para uma versão mais recente de imagens com suporte
- Confira as imagens base disponível
Não há marca ou código hash
Possíveis causas:
- Você não incluiu uma marca de versão ou um resumo em sua imagem base especificada
- Sem um desses especificadores, o ambiente não pode ser reproduzido
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Inclua, pelo menos, um dos especificadores a seguir na imagem base
- Marca da versão
- Digest
- Confira Imagem com identificador imutável
Problemas de variável de ambiente
Variáveis de runtime inapropriadas
Possíveis causas:
- Você especificou variáveis de runtime em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Em vez disso, use o atributo environment_variables
no objeto RunConfiguration
Problemas do Python
Seção do Python ausente
Possíveis causas:
- Sua definição de ambiente não tem uma seção Python
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Preencha a seção Python da definição de ambiente
- Confira a classe PythonSection
Versão do Python ausente
Possíveis causas:
- Você não especificou uma versão do Python em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Adicionar o Python como um pacote Conda e especificar a versão
from azureml.core.environment import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
Se você estiver usando YAML para sua especificação do Conda, inclua Python como uma dependência
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
Recursos
Várias versões do Python
Possíveis causas:
- Você especificou mais de uma versão do Python em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Escolha qual versão do Python você deseja usar e remova todas as outras versões
myenv.python.conda_dependencies.remove_conda_package("python=3.8")
Se você estiver usando um YAML para sua especificação do Conda, inclua apenas uma versão do Python como uma dependência
Recursos
Não há suporte para a versão do Python
Possíveis causas:
- Você especificou uma versão do Python que está perto ou no fim de vida útil e não tem mais suporte
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Especifique uma versão do Python que não tenha atingido e não esteja se aproximando do fim da vida útil
Versão do Python não recomendada
Possíveis causas:
- Você especificou uma versão do Python que está perto ou no fim de vida útil
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Especifique uma versão do Python que não tenha atingido e não esteja se aproximando do fim da vida útil
Falha ao validar a versão do Python
Possíveis causas:
- Você especificou uma versão do Python com a sintaxe incorreta ou uma formatação inválida
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Usar a sintaxe correta para especificar uma versão do Python usando o SDK
myenv.python.conda_dependencies.add_conda_package("python=3.8")
Usar a sintaxe correta para especificar uma versão do Python em YAML Conda
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
Recursos
- Confira Fixação de pacote do Conda
Problemas do Conda
Dependências do Conda ausentes
Possíveis causas:
- Você não forneceu uma especificação Conda em sua definição de ambiente e
user_managed_dependencies
está definido comoFalse
(o padrão)
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Caso você não deseje que o Azure Machine Learning crie um ambiente do Python com base em conda_dependencies,
, defina user_managed_dependencies
como True
env.python.user_managed_dependencies = True
- Você será responsável por garantir que todos os pacotes necessários estejam disponíveis no ambiente Python escolhido para executar o script
Caso você deseje que o Azure Machine Learning crie um ambiente do Python com base em uma especificação do Conda, preencha conda_dependencies
na definição de ambiente
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Você deve especificar uma imagem base do Docker para o ambiente e o Azure Machine Learning então compila o ambiente do Conda com base nessa imagem
- Fornecer o caminho relativo para o arquivo do conda
- Confira como Criar um ambiente com base em uma especificação Conda
Recursos
Dependências do Conda inválidas
Possíveis causas:
- Você formatou incorretamente as dependências do Conda especificadas na definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
APLICA-SE A: SDK do Python azureml v1
Verifique se conda_dependencies
é uma versão JSONified da estrutura YAML de dependências do Conda
"condaDependencies": {
"channels": [
"anaconda",
"conda-forge"
],
"dependencies": [
"python=3.8",
{
"pip": [
"azureml-defaults"
]
}
],
"name": "project_environment"
}
Você também pode especificar as dependências do Conda usando o método add_conda_package
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Você deve especificar uma imagem base do Docker para o ambiente e o Azure Machine Learning então compila o ambiente do Conda com base nessa imagem
- Fornecer o caminho relativo para o arquivo do conda
- Confira como Criar um ambiente com base em uma especificação Conda
Recursos
Canais do Conda ausentes
Possíveis causas:
- Você não especificou canais do Conda em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Para reprodutibilidade do ambiente, especifique canais em que as dependências são extraídas. Se você não especificar os canais do Conda, o Conda usará padrões que podem ser alterados.
APLICA-SE A: SDK do Python azureml v1
Adicionar um canal do Conda usando o SDK do Python
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_channel("conda-forge")
env.python.conda_dependencies = conda_dep
Se você estiver usando YAML para sua especificação Conda, inclua os canais Conda que deseja usar
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
- conda-forge
Recursos
Ambiente base do Conda não recomendado
Possíveis causas:
- Você especificou um ambiente do Conda base em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
As atualizações parciais do ambiente podem levar a conflitos de dependência e/ou erros inesperados de runtime. Portanto, o uso de ambientes base do Conda não é recomendado.
APLICA-SE A: SDK do Python azureml v1
Remova seu ambiente Conda de base e especifique todos os pacotes necessários para o ambiente na seção conda_dependencies
da definição de ambiente
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
env.python.base_conda_environment = None
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Definir um ambiente usando um arquivo de configuração YAML Conda padrão
Recursos
Dependências desafixadas
Possíveis causas:
- Você não especificou versões para determinados pacotes em sua especificação Conda
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Se você não especificar uma versão de dependência, o resolvedor de pacote do Conda poderá escolher uma versão diferente do pacote nos builds seguintes do mesmo ambiente. Isso interrompe a reprodutibilidade do ambiente e pode levar a erros inesperados.
APLICA-SE A: SDK do Python azureml v1
Incluir números de versão ao adicionar pacotes à sua especificação Conda
from azureml.core.environment import CondaDependencies
conda_dep = CondaDependencies()
conda_dep.add_conda_package("numpy==1.24.1")
Se você estiver usando YAML para sua especificação Conda, especifique versões para suas dependências
name: project_environment
dependencies:
- python=3.8
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
Recursos
- Confira Fixação de pacote do Conda
Problemas de PIP
PIP não especificado
Possíveis causas:
- Você não especificou pip como uma dependência em sua especificação Conda
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Para reprodutibilidade, você deve especificar e fixar o Pip como uma dependência na especificação do Conda.
APLICA-SE A: SDK do Python azureml v1
Especifique pip como uma dependência, juntamente com sua versão
env.python.conda_dependencies.add_conda_package("pip==22.3.1")
Se você estiver usando YAML para sua especificação do Conda, especifique pip como uma dependência
name: project_environment
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
Recursos
- Confira Fixação de pacote do Conda
PIP não fixado
Possíveis causas:
- Você não especificou uma versão para pip em sua especificação Conda
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Se você não especificar uma versão do Pip, uma versão diferente poderá ser usada em builds seguintes do mesmo ambiente. Esse comportamento poderá causar problemas de reprodutibilidade e outros erros inesperados se versões diferentes do PIP resolverem seus pacotes de maneira distinta.
APLICA-SE A: SDK do Python azureml v1
Especificar uma versão do pip em suas dependências do Conda
env.python.conda_dependencies.add_conda_package("pip==22.3.1")
Se você estiver usando YAML para sua especificação do Conda, especifique uma versão de pip
name: project_environment
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
Recursos
- Confira Fixação de pacote do Conda
Problemas de ambiente diversos
A seção R foi preterida
Possíveis causas:
- Você especificou uma seção do R em sua definição de ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
O SDK do Azure Machine Learning para R foi preterido no final de 2021 para dar lugar a uma experiência de treinamento e implantação aprimoradas do R com a CLI v2 do Azure
Confira o repositório de exemplos para começar a treinar modelos de R usando a CLI do Azure v2
Não existe nenhuma definição para o ambiente
Possíveis causas:
- Você especificou um ambiente que não existe ou não foi registrado
- Erro ortográfico ou sintático na maneira como você especificou o nome do ambiente ou a versão do ambiente
Áreas afetadas (sintomas):
- Falha ao registrar seu ambiente
Etapas para solucionar problemas
Verifique se você está especificando o nome do ambiente corretamente, com a versão correta
path-to-resource:version-number
Você deve especificar a 'última' versão do seu ambiente de uma outra maneira
path-to-resource@latest
Problemas de compilação de imagem
Problemas de ACR
ACR inacessível
Esse problema pode acontecer quando há uma falha ao acessar o recurso do ACR (Registro de Contêiner do Azure) associado a um workspace.
Possíveis causas:
- O ACR do workspace é protegido por uma VNet (rede virtual) (ponto de extremidade privado ou ponto de extremidade de serviço), e nenhum cluster de cálculo é usado para criar as imagens.
- O ACR do workspace é protegido por uma VNet (rede virtual) (ponto de extremidade privado ou ponto de extremidade de serviço), e o cluster de cálculo usado para criar imagens não tem acesso ao ACR do workspace.
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
- Falhas no trabalho de pipeline.
- Falhas de implantação de modelo.
Etapas para solucionar problemas
- Verifique se a VNet do cluster de cálculo tem acesso ao ACR do espaço de trabalho.
- Garanta que o cluster de cálculo seja baseado em CPU.
Observação
- Só há suporte para clusters de cálculo do Azure Machine Learning. Não há suporte para a computação, o AKS (Serviço de Kubernetes do Azure) ou outros tipos de instâncias na computação do build de imagem.
Recursos
Formato Dockerfile inesperado
Esse problema pode acontecer quando o Dockerfile é formatado incorretamente.
Possíveis causas:
- Seu Dockerfile contém sintaxe inválida
- Seu Dockerfile contém caracteres que não são compatíveis com UTF-8
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se o Dockerfile está formatado corretamente e se está codificado em UTF-8
Recursos
Problemas de docker pull
Falha ao efetuar pull da imagem do Docker
Esse problema pode acontecer quando um pull de imagem do Docker falha durante um build de imagem.
Possíveis causas:
- O nome do caminho para o registro de contêiner está incorreto
- Um registro de contêiner por trás de uma rede virtual está usando um ponto de extremidade privado em uma região incompatível
- A imagem que você está tentando referenciar não existe no registro de contêiner especificado
- Você não forneceu as credenciais de um registro privado do qual você está tentando extrair a imagem ou as credenciais fornecidas estão incorretas
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Verifique se o nome do caminho para o registro de contêiner está correto
- Para um registro
my-registry.io
e uma imagemtest/image
com a marca3.2
, um caminho de imagem válido seriamy-registry.io/test/image:3.2
- Confira Documentação do caminho de registro
Se o registro de contêiner estiver por trás de uma rede virtual ou estiver usando um ponto de extremidade privado em uma região incompatível
- Configure o registro de contêiner usando o ponto de extremidade de serviço (acesso público) do portal e tente novamente
- Depois de colocar o registro de contêiner por trás de uma rede virtual, execute o modelo do Azure Resource Manager para que o espaço de trabalho possa se comunicar com a instância do registro de contêiner
Se a imagem que você está tentando referenciar não existe no registro de contêiner especificado
- Verifique se você usou a marca correta e se definiu
user_managed_dependencies
comoTrue
. Definir user_managed_dependencies comoTrue
desabilita o conda e usa os pacotes instalados do usuário
Se você não forneceu as credenciais de um registro privado do qual está tentando extrair ou as credenciais fornecidas estão incorretas
- Definir conexões de workspace para o registro de contêiner, se necessário
Recursos
Erro de E/S
Esse problema pode acontecer quando um pull de imagem do Docker falha devido a um problema de rede.
Possíveis causas:
- Problema de conexão de rede, que pode ser temporário
- O firewall está bloqueando a conexão
- O ACR está inacessível e há isolamento de rede. Para obter mais informações, confira Inacessibilidade dos ACR.
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Adicionar o host às regras de firewall
- Confira Configurar o tráfego de rede de entrada e saída para saber como usar o Firewall do Azure para seu espaço de trabalho e recursos por trás de uma VNet
Avalie a configuração do espaço de trabalho. Você está usando uma rede virtual ou algum dos recursos que está tentando acessar durante a compilação de imagem por trás de uma rede virtual?
- Verifique se você seguiu as etapas neste artigo sobre como proteger um espaço de trabalho com redes virtuais
- O Azure Machine Learning exige o acesso de entrada e de saída à Internet pública. Se houver um problema com a configuração da rede virtual, pode haver um problema com o acesso a determinados repositórios necessários durante a compilação da imagem
Se você não estiver usando uma rede virtual ou se tiver configurado corretamente
- Tente recompilar sua imagem. Se o tempo limite for devido a um problema de rede, o problema poderá ser transitório e uma recompilação poderá corrigir o problema
Problemas do Conda durante a compilação
Especificação incorreta
Esse problema pode acontecer quando um pacote listado na sua especificação do Conda é inválido ou quando você executou um comando do Conda incorretamente.
Possíveis causas:
- A sintaxe usada na especificação do conda está incorreta
- Você está executando um comando do conda incorretamente
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Podem ocorrer erros de especificação do Conda se o comando create do Conda é usado incorretamente
- Leia a documentação e verifique se você está usando opções e sintaxe válidas
- Há uma confusão conhecida em relação a
conda env create
versusconda create
. Você pode ler mais sobre a resposta do conda e as soluções conhecidas de outros usuários aqui
Para garantir um build bem-sucedido, verifique se você está usando a sintaxe adequada e a especificação de pacote válida em seu yaml conda
Erro de comunicação
Esse problema pode acontecer quando há uma falha na comunicação com a entidade da qual você deseja baixar pacotes listados em sua especificação do conda.
Possíveis causas:
- Falha ao se comunicar com um repositório de pacotes ou canal do conda
- Essas falhas podem ser devido a falhas transitórias de rede
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Verifique se os canais/repositórios do conda que você está usando na especificação do conda estão corretos
- Verifique se eles existem e se você escreveu o nome deles corretamente
Se os repositórios/canais do conda estiverem corretos
- Tente recompilar a imagem – há uma chance de que a falha seja transitória e uma recompilação possa corrigir o problema
- Verifique se os pacotes listados em sua especificação do conda existem nos canais/repositórios especificados
Erro de compilação
Esse problema pode acontecer quando há uma falha ao criar um pacote necessário para o ambiente conda devido a um erro do compilador.
Possíveis causas:
- Você escreveu o nome de um pacote incorretamente e, portanto, ele não foi reconhecido
- Há algo errado com o compilador
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Se você estiver usando um compilador
- Verifique se o compilador que você está usando é reconhecido
- Se necessário, adicione uma etapa de instalação ao Dockerfile
- Verifique a versão do compilador e verifique se todos os comandos ou opções que você está usando são compatíveis com a versão do compilador
- Se necessário, atualize a versão do compilador
Verifique se você escreveu o nome de todos os pacotes listados corretamente e se fixou as versões corretamente
Recursos
Comando ausente
Esse problema pode ocorrer quando um comando não é reconhecido durante a criação de uma imagem ou no requisito de pacote Python especificado.
Possíveis causas:
- Você não escreveu o nome do comando corretamente
- O comando não pode ser executado porque um pacote necessário não está instalado
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o comando corretamente
- Verifique se você instalou os pacotes necessários para executar o comando que está tentando executar
- Se necessário, adicione uma etapa de instalação ao Dockerfile
Recursos
Tempo limite do Conda
Esse problema pode acontecer quando a resolução do pacote do conda leva muito tempo para ser concluída.
Possíveis causas:
- Há um grande número de pacotes listados em sua especificação do conda e pacotes desnecessários estão incluídos
- Você não fixou suas dependências (incluiu tensorflow em vez de tensorflow=2.8)
- Você listou pacotes para os quais não há solução (você incluiu o pacote X=1.3 e Y=2.8, mas a versão do X é incompatível com a versão do Y)
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Remova da especificação do conda todos os pacotes desnecessários
- Fixar seus pacotes – A resolução do ambiente é mais rápida
- Se você ainda tiver problemas, examine este artigo para ver detalhadamente a compreensão e a melhoria do desempenho do conda
Memória insuficiente
Esse problema pode acontecer quando a resolução do pacote do conda falha devido ao esgotamento da memória disponível.
Possíveis causas:
- Há um grande número de pacotes listados em sua especificação do conda e pacotes desnecessários estão incluídos
- Você não fixou suas dependências (incluiu tensorflow em vez de tensorflow=2.8)
- Você listou pacotes para os quais não há solução (você incluiu o pacote X=1.3 e Y=2.8, mas a versão do X é incompatível com a versão do Y)
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Remova da especificação do conda todos os pacotes desnecessários
- Fixar seus pacotes – A resolução do ambiente é mais rápida
- Se você ainda tiver problemas, examine este artigo para ver detalhadamente a compreensão e a melhoria do desempenho do conda
Pacote não encontrado
Esse problema pode acontecer quando um ou mais pacotes do conda listados em sua especificação não podem ser encontrados em um canal/repositório.
Possíveis causas:
- Você listou incorretamente o nome ou a versão do pacote na especificação do Conda
- O pacote existe em um canal do conda que você não listou em sua especificação do conda
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o nome do pacote corretamente e se a versão especificada existe
- Verifique se o pacote existe no canal que você está direcionando
- Verifique se você listou o canal/o repositório na especificação do Conda para que o pacote possa ser extraído corretamente durante a resolução do pacote
Especifique canais na especificação do conda:
channels:
- conda-forge
- anaconda
dependencies:
- python=3.8
- tensorflow=2.8
Name: my_environment
Recursos
Módulo Python ausente
Esse problema pode acontecer quando um módulo do Python listado em sua especificação do conda não existe ou não é válido.
Possíveis causas:
- Você escreveu o nome do módulo incorretamente
- O módulo não é reconhecido
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o nome do módulo corretamente e se ele existe
- Verifique se o módulo é compatível com a versão do Python indicada em sua especificação do conda
- Se você ainda não listou uma versão específica do Python em sua especificação do conda, liste uma versão específica compatível com o módulo, caso contrário, um padrão incompatível poderá ser usado
Fixe uma versão do Python compatível com o módulo pip que você está usando:
channels:
- conda-forge
- anaconda
dependencies:
- python=3.8
- pip:
- dataclasses
Name: my_environment
Nenhuma distribuição correspondente
Esse problema pode acontecer quando não há nenhum pacote que corresponda à versão especificada.
Possíveis causas:
- Você escreveu o nome do pacote incorretamente
- O pacote e a versão não podem ser encontrados nos canais ou feeds especificados
- A versão especificada não existe
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o pacote corretamente e se ele existe
- Verifique se a versão especificada para o pacote existe
- Verifique se você especificou o canal do qual o pacote será instalado. Caso você não especifique um canal, os padrões são usados, e esses padrões podem ou não ter o pacote que você está procurando
Como listar canais em uma especificação do conda yaml:
channels:
- conda-forge
- anaconda
dependencies:
- python = 3.8
- tensorflow = 2.8
Name: my_environment
Recursos
Não é possível compilar mpi4py
Esse problema pode acontecer quando as rodas de construção para mpi4py falham.
Possíveis causas:
- Os requisitos para uma instalação mpi4py bem-sucedida não são atendidos
- Há algo errado com o método que você escolheu para instalar o mpi4py
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Verifique se você tem uma instalação de MPI em funcionamento (preferência para suporte ao MPI-3 e para o MPI compilado com bibliotecas compartilhadas/dinâmicas)
- Confira a instalação do mpi4py
- Se necessário, siga estas etapas na criação da MPI
Verifique se você está usando uma versão compatível do Python
- O Python 3.8+ é recomendado devido ao fim da vida útil das versões mais antigas
- Confira a instalação do mpi4py
Recursos
Tentativa de autenticação interativa
Esse problema pode acontecer quando o pip tenta realizar a autenticação interativa durante a instalação do pacote.
Possíveis causas:
- Você listou um pacote que exige a autenticação, mas não forneceu as credenciais
- Durante o build da imagem, o pip tentou solicitar sua autenticação, o que causou uma falha do build, devido ao fato de você não conseguir fornecer a autenticação interativa durante um build
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Forneça a autenticação por meio de conexões de workspace
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "PythonFeed", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
Criar uma conexão de workspace com base em um arquivo de especificação YAML
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
Recursos
Blob proibido
Esse problema pode acontecer quando uma tentativa de acessar um blob em uma conta de armazenamento é rejeitada.
Possíveis causas:
- O método de autorização que você está usando para acessar a conta de armazenamento é inválido
- Você está tentando autorizá-lo por meio da SAS (assinatura de acesso compartilhado), mas o token SAS venceu ou é inválido
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Leia o artigo a seguir para entender como autorizar o acesso a dados de blob no portal do Azure
Leia o artigo a seguir para entender como autorizar o acesso a dados no armazenamento do Azure
Leia o artigo a seguir se estiver interessado em usar a SAS para acessar recursos do armazenamento do Azure
Compilação do horovod
Esse problema pode acontecer quando o ambiente do conda não poder ser criado ou atualizado devido a uma falha de build no horovod.
Possíveis causas:
- A instalação do Horovod exige outros módulos que você não instalou
- A instalação do Horovod exige determinadas bibliotecas que você não incluiu
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Muitos problemas podem causar uma falha no horovod, e há uma lista abrangente deles na documentação do horovod
- Confira o guia de solução de problemas do horovod
- Analise o log de build para ver se há uma mensagem de erro exibida quando ocorreu uma falha de build no horovod
- É possível que o guia de solução de problemas do Horovod explica o problema que você está tendo, acompanhado de uma solução
Recursos
Comando do Conda não encontrado
Esse problema pode acontecer quando o comando conda não é reconhecido durante a criação ou atualização do ambiente conda.
Possíveis causas:
- Você não instalou o Conda na imagem base que está usando
- Você não instalou o Conda por meio do Dockerfile antes de você tentar executar o comando do Conda
- Você não incluiu o Conda no caminho ou não o adicionou ao caminho
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Verifique se você tem uma etapa de instalação do conda em seu Dockerfile antes de tentar executar quaisquer comandos conda
- Examine esta lista de instaladores do conda para determinar o que você precisa para seu cenário
Se você tentou instalar o conda e está com este problema, verifique se adicionou o conda ao seu caminho
- Revise este exemplo para obter diretrizes
- Revise como definir variáveis de ambiente em um Dockerfile
Recursos
- Todas as distribuições conda disponíveis são encontradas no repositório conda
Versão incompatível do Python
Esse problema pode acontecer quando há um pacote especificado em seu ambiente conda que não é compatível com a versão do Python especificada.
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Use uma versão diferente do pacote compatível com a versão do Python especificada
Como alternativa, use uma versão diferente do Python compatível com o pacote que você especificou
- Se você estiver alterando sua versão do Python, use uma versão com suporte e que não esteja próxima ao fim da vida útil
- Consulte as datas de fim da vida útil do Python
Recursos
Redirecionamento básico do Conda
Esse problema pode acontecer quando você especifica um pacote na linha de comando usando "<" ou ">" sem usar aspas. Essa sintaxe pode causar uma falha na criação ou na atualização do ambiente do Conda.
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Adicione as aspas na especificação do pacote
- Por exemplo, altere
conda install -y pip<=20.1.1
paraconda install -y "pip<=20.1.1"
Erro de decodificação UTF-8
Esse problema pode acontecer quando há uma falha na decodificação de um caractere na especificação Conda.
Possíveis causas:
- Seu arquivo YAML Conda contém caracteres que não são compatíveis com UTF-8.
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Problemas do PIP durante a compilação
Falha ao instalar pacotes
Esse problema pode acontecer quando o build da imagem falha durante a instalação do pacote do Python.
Possíveis causas:
- Há muitos problemas que podem causar esse erro
- Essa mensagem é genérica e é exibida quando a análise do Azure Machine Learning ainda não resolve o erro que você está tendo
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Revise seu log de build para obter mais informações sobre a falha de build da imagem
Deixe comentários para a equipe do Azure Machine Learning analisar o erro que você está recebendo
Não é possível desinstalar o pacote
Esse problema pode acontecer quando o Pip não consegue desinstalar um pacote do Python instalado pelo gerenciador de pacotes do sistema operacional.
Possíveis causas:
- Um problema de pip existente ou uma versão de pip problemática
- Um problema decorrente do não uso de um ambiente isolado
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Leia as informações a seguir e determine se a falha é causada por um problema do Pip existente
- Não é possível fazer a desinstalação durante a criação da imagem do Docker
- Problema de desinstalação parcial do pip 10 distutils
- O pip 10 não desinstala mais pacotes distutils
Experimente o seguinte
pip install --ignore-installed [package]
Tente criar um ambiente separado usando o conda
Operador inválido
Esse problema pode ocorrer quando o pip falha ao instalar um pacote Python devido a um operador inválido encontrado no requisito.
Possíveis causas:
- Um operador inválido foi encontrado no requisito do pacote Python
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o nome do pacote corretamente e se a versão especificada existe
- Verifique se o especificador de versão do pacote está formatado corretamente e se você está usando operadores de comparação válidos. Confira Especificadores de versão
- Substitua o operador inválido pelo operador recomendado na mensagem de erro
Nenhuma distribuição correspondente
Esse problema pode acontecer quando não há nenhum pacote que corresponda à versão especificada.
Possíveis causas:
- Você escreveu o nome do pacote incorretamente
- O pacote e a versão não podem ser encontrados nos canais ou feeds especificados
- A versão especificada não existe
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o pacote corretamente e se ele existe
- Verifique se a versão especificada para o pacote existe
- Execute
pip install --upgrade pip
e, em seguida, execute o comando original novamente - Verifique se o pip que você está usando pode instalar pacotes para a versão desejada do Python. Confira Devo usar pip ou pip3?
Recursos
Nome de arquivo wheel inválido
Esse problema pode acontecer quando você tiver especificado um arquivo wheel incorretamente.
Possíveis causas:
- Você escreveu o nome do arquivo wheel incorretamente ou usou a formatação inadequada
- O arquivo wheel especificado não pode ser encontrado
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o nome do arquivo corretamente e se ele existe
- Verifique se você está seguindo o formato para nomes de arquivos wheel
Problemas do Make
Nenhum destino especificado e nenhum makefile encontrado
Esse problema pode acontecer quando você não especificou nenhum destino e nenhum makefile é encontrado quando o make
é executado.
Possíveis causas:
- O makefile não existe no diretório atual
- Nenhum destino especificado
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se você escreveu o nome do makefile corretamente
- Verifique se o makefile existe no diretório atual
- Caso você tenha um makefile personalizado, especifique-o usando
make -f custommakefile
- Especifique os destinos no makefile ou na linha de comando
- Configure o build e gere um makefile
- Verifique se você formatou o makefile corretamente e se usou tabulações para o recuo
Recursos
Problemas de cópia
Arquivo não encontrado
Esse problema pode acontecer quando o Docker não consegue encontrar e copiar um arquivo.
Possíveis causas:
- Arquivo de origem não encontrado no contexto de build do Docker
- Arquivo de origem excluído por
.dockerignore
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se o arquivo de origem existe no contexto de build do Docker
- Verifique se os caminhos de origem e de destino existem e estão escritos corretamente
- Verifique se o arquivo de origem não está listado nos
.dockerignore
diretórios atual e pai - Remover os comentários à direita da mesma linha que o comando
COPY
Recursos
Problemas com o apt-get
Falha ao executar o comando apt-get
Esse problema pode ocorrer quando o apt-get não é executado.
Possíveis causas:
- Problema de conexão de rede, que pode ser temporário
- Dependências quebradas relacionadas ao pacote no qual você está executando o apt-get
- Você não tem as permissões corretas para usar o comando apt-get
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verificar a conexão de rede e as configurações de DNS
- Execute
apt-get check
para verificar dependências quebradas - Execute
apt-get update
e, em seguida, execute o comando original novamente - Execute o comando com o sinalizador
-f
que tentará resolver o problema causado pelas dependências quebradas - Execute o comando com permissões
sudo
, comosudo apt-get install <package-name>
Recursos
- Gerenciamento de pacotes com APT
- Apt-Get do Ubuntu
- O que fazer quando o apt-get falha
- Comando apt-get no Linux com exemplos
Problemas de push do Docker
Falha no armazenamento da imagem do Docker
Esse problema pode acontecer quando há uma falha ao enviar uma imagem do Docker por push para um registro de contêiner.
Possíveis causas:
- Ocorreu um problema transitório com o ACR associado ao workspace
- Um registro de contêiner por trás de uma rede virtual está usando um ponto de extremidade privado em uma região incompatível
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Tente fazer o build de ambiente novamente se suspeitar que a falha é um problema transitório com o ACR (Registro de Contêiner do Azure) do workspace
Se o registro de contêiner estiver por trás de uma rede virtual ou estiver usando um ponto de extremidade privado em uma região incompatível
- Configure o registro de contêiner usando o ponto de extremidade de serviço (acesso público) do portal e tente novamente
- Depois de colocar o registro de contêiner por trás de uma rede virtual, execute o modelo do Azure Resource Manager para que o espaço de trabalho possa se comunicar com a instância do registro de contêiner
Se você não estiver usando uma rede virtual, ou se a tiver configurado corretamente, teste se suas credenciais estão corretas para o ACR ao experimentar um build local simples
- Obter credenciais para o ACR do workspace do portal do Azure
- Faça logon no seu ACR usando
docker login <myregistry.azurecr.io> -u "username" -p "password"
- Para uma imagem "helloworld", teste efetuar push para o ACR executando
docker push helloworld
- Confira Início Rápido: Criar e executar uma imagem de contêiner usando as Tarefas do Registro de Contêiner do Azure
Comando do Docker desconhecido
Instrução desconhecida do Docker
Esse problema pode acontecer quando o Docker não reconhece uma instrução no Dockerfile.
Possíveis causas:
- Instrução desconhecida do Docker sendo usada no Dockerfile
- Seu Dockerfile contém sintaxe inválida
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se o comando do Docker é válido e está escrito corretamente
- Verifique se há um espaço entre o comando do Docker e os argumentos
- Verifique se não há espaço em branco desnecessário no Dockerfile
- Verifique se o Dockerfile está formatado corretamente e se está codificado em UTF-8
Recursos
Comando não encontrado
Comando não reconhecido
Esse problema pode acontecer quando o comando que está sendo executado não é reconhecido.
Possíveis causas:
- Você não instalou o comando por meio do Dockerfile antes de tentar executar o comando
- Você não incluiu o comando no caminho ou não o adicionou a ele
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas de solução de problemas Verifique se você tem uma etapa de instalação para o comando no Dockerfile antes de tentar executar o comando
- Veja este exemplo
Se você tentou instalar o comando e está com este problema, verifique se adicionou o comando ao caminho
- Veja este exemplo
- Revise como definir variáveis de ambiente em um Dockerfile
Problemas de build diversos
Log de build indisponível
Possíveis causas:
- O Azure Machine Learning não está autorizado a armazenar os logs de build na sua conta de armazenamento
- Ocorreu um erro transitório ao salvar os logs de build
- Ocorreu um erro do sistema antes de um build de imagem ser disparado
Áreas afetadas (sintomas):
- Um build bem-sucedido, mas sem logs disponíveis.
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução dos trabalhos porque o Azure Machine Learning compila implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
Uma recompilação poderá corrigir o problema se for transitório
Imagem não encontrada
Esse problema pode acontecer quando a imagem base especificada não pode ser encontrada.
Possíveis causas:
- Você especificou incorretamente a imagem
- A imagem que você especificou não existe no registro que você especificou
Áreas afetadas (sintomas):
- Falha no build de ambientes por meio da interface do usuário, do SDK e da CLI.
- Falha na execução de trabalhos, porque ele compilará implicitamente o ambiente na primeira etapa.
Etapas para solucionar problemas
- Verifique se a imagem base está escrita e formatada corretamente
- Verifique se a imagem base que você está usando existe no Registro que você especificou
Recursos