Compartilhar via


Usar pacotes privados do Python com o Azure Machine Learning

APLICA-SE A: SDK do Python do AzureML v1

Neste artigo, saiba como usar pacotes privados do Python com segurança no Azure Machine Learning. Os casos de uso para pacotes privados do Python incluem:

  • Você desenvolveu um pacote privado que não deseja compartilhar publicamente.
  • Você quer usar um repositório coletado de pacotes armazenados em um firewall corporativo.

A abordagem recomendada depende se você tem poucos pacotes para um único espaço de trabalho do Azure Machine Learning ou um repositório inteiro de pacotes para todos os espaços de trabalho em uma organização.

Os pacotes privados são usados por meio da classe de Ambiente. Em um ambiente, você declara quais pacotes do Python usar, incluindo os privados. Para saber mais sobre o ambiente no Azure Machine Learning em geral, consulte Como usar ambientes.

Pré-requisitos

Usar um pequeno número de pacotes para desenvolvimento e testes

Para alguns pacotes privados para um único workspace, use o método Environment.add_private_pip_wheel() estático. Essa abordagem permite que você adicione rapidamente um pacote privado ao espaço de trabalho e seja adequado para fins de desenvolvimento e teste.

Aponte o argumento do caminho do arquivo para um arquivo de roda local e execute o comando add_private_pip_wheel. O comando retorna uma URL usada para controlar o local do pacote em seu Workspace. Capture a URL de armazenamento e passe-a para o método add_pip_package().

whl_url = Environment.add_private_pip_wheel(workspace=ws,file_path = "my-custom.whl")
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_pip_package(whl_url)
myenv.python.conda_dependencies=conda_dep

Internamente, o Serviço do Azure Machine Learning substitui a URL pela URL SAS segura, para que o arquivo wheel seja mantido privado e seguro.

Usar um repositório de pacotes de feed do Azure DevOps

Se você estiver desenvolvendo ativamente pacotes do Python para seu aplicativo de aprendizado de máquina, poderá hospedá-los em um repositório do Azure DevOps como artefatos e publicá-los como um feed. Essa abordagem permite que você integre o fluxo de trabalho do DevOps para criar pacotes com o Workspace do Azure Machine Learning. Para saber como configurar os feeds do Python usando o Azure DevOps, leia Introdução aos pacotes do Python no Azure Artifacts

Essa abordagem usa o Token de acesso pessoal para autenticação no repositório. A mesma abordagem é aplicável a outros repositórios com autenticação baseada em token, como repositórios privados do GitHub.

  1. Crie um Token de acesso pessoal (PAT) para sua instância do Azure DevOps. Defina o escopo do token para Empacotamento > Leitura.

  2. Adicione a URL e o PAT do Azure DevOps como propriedades de espaço de trabalho, usando o método Workspace.set_connection.

    from azureml.core import Workspace
    
    pat_token = input("Enter secret token")
    ws = Workspace.from_config()
    ws.set_connection(name="connection-1", 
       category = "PythonFeed",
       target = "https://pkgs.dev.azure.com/<MY-ORG>", 
       authType = "PAT", 
       value = pat_token) 
    
  3. Crie um ambiente do Azure Machine Learning e adicione pacotes do Python a partir do feed.

    from azureml.core import Environment
    from azureml.core.conda_dependencies import CondaDependencies
    
    env = Environment(name="my-env")
    cd = CondaDependencies()
    cd.add_pip_package("<my-package>")
    cd.set_pip_option("--extra-index-url https://pkgs.dev.azure.com/<MY-ORG>/_packaging/<MY-FEED>/pypi/simple")")
    env.python.conda_dependencies=cd
    

O ambiente agora está pronto para ser usado em execuções de treinamento ou implantações de ponto de extremidade de serviço Web. Ao criar o ambiente, o serviço do Azure Machine Learning usa o PAT para se autenticar no feed com a URL base correspondente.

Usar um repositório de pacotes do armazenamento privado

Você pode consumir pacotes de uma conta de armazenamento do Azure dentro do firewall da sua organização. A conta de armazenamento pode conter um conjunto coletado de pacotes ou um espelho interno de pacotes disponíveis publicamente.

Para configurar esse armazenamento privado, consulte Proteger um espaço de trabalho do Azure Machine Learning e os recursos associados. Você também deve colocar o Registro de Contêiner do Azure (ACR) atrás da rede virtual.

Importante

Você deve concluir esta etapa para poder treinar ou implantar modelos usando o repositório de pacotes privados.

Depois de concluir essas configurações, você pode referência os pacotes na definição de ambiente do Azure Machine Learning por sua URL completa no Armazenamento de Blobs do Azure.

Próximas etapas