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

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

Á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

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

Á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

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

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

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

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

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

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:

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

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

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

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

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

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

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

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 como False (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

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

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

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

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

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

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

APLICA-SE A: SDK do Python azureml v1

Remover a seção R da definição de ambiente

env.r = None

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 imagem test/image com a marca 3.2, um caminho de imagem válido seria my-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 como True. Definir user_managed_dependencies como True 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

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

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 versus conda 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)

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

Se você tentou instalar o conda e está com este problema, verifique se adicionou o conda ao seu caminho

Recursos

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 para conda 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

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

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, como sudo apt-get install <package-name>

Recursos

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

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

Se você tentou instalar o comando e está com este problema, verifique se adicionou o comando ao caminho

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