Condividi tramite


Usare pacchetti Python privati con Azure Machine Learning

SI APPLICA A: Python SDK azureml v1

Questo articolo illustra come usare i pacchetti Python privati in modo sicuro all'interno di Azure Machine Learning. I casi d'uso per i pacchetti Python privati includono:

  • È stato sviluppato un pacchetto privato che non si vuole condividere pubblicamente.
  • Si vuole usare un repository curato di pacchetti archiviati all'interno di un firewall aziendale.

L'approccio consigliato dipende dal fatto che siano presenti pochi pacchetti per una singola area di lavoro di Azure Machine Learning o un intero repository di pacchetti per tutte le aree di lavoro all'interno di un'organizzazione.

I pacchetti privati vengono usati tramite la classe Ambiente. All'interno di un ambiente si dichiarano i pacchetti Python da usare, inclusi quelli privati. Per altre informazioni sull'ambiente in Azure Machine Learning in generale, vedere Come usare gli ambienti.

Prerequisiti

Usare un numero ridotto di pacchetti per lo sviluppo e il test

Per un numero ridotto di pacchetti privati per una singola area di lavoro, usare il metodo Environment.add_private_pip_wheel() statico. Questo approccio consente di aggiungere rapidamente un pacchetto privato all'area di lavoro ed è ideale per scopi di sviluppo e test.

Puntare l'argomento percorso file a un file wheel locale ed eseguire il comando add_private_pip_wheel. Il comando restituisce un URL usato per tenere traccia del percorso del pacchetto all'interno dell'area di lavoro. Acquisire l'URL di archiviazione e passarlo al metodo 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, il servizio Azure Machine Learning sostituisce l'URL con l'URL di firma di accesso condiviso sicuro, in modo che il file wheel venga mantenuto privato e protetto.

Usare un repository di pacchetti dal feed di Azure DevOps

Quando si sviluppano attivamente pacchetti Python per l'applicazione di apprendimento automatico, è possibile ospitarli in un repository di Azure DevOps come artefatti e pubblicarli come feed. Questo approccio consente di integrare il flusso di lavoro di DevOps per compilare i pacchetti con l'area di lavoro di Azure Machine Learning. Per informazioni su come configurare i feed Python con Azure DevOps, leggere Introduzione ai pacchetti Python in Azure Artifacts

Questo approccio usa il token di accesso personale per eseguire l'autenticazione nel repository. Lo stesso approccio è applicabile ad altri repository con autenticazione basata su token, ad esempio i repository GitHub privati.

  1. Creare un token di accesso personale per l'istanza di Azure DevOps. Impostare l'ambito del token su Creazione pacchetti > Lettura.

  2. Aggiungere l'URL e il token di accesso personale di Azure DevOps come proprietà dell'area di lavoro usando il metodo 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. Creare un ambiente di Azure Machine Learning e aggiungere pacchetti Python dal 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
    

L'ambiente è ora pronto per essere usato nelle esecuzioni di training o nelle distribuzioni di endpoint servizio Web. Quando si compila l'ambiente, il servizio Azure Machine Learning usa il token di accesso personale per eseguire l'autenticazione nel feed con l'URL di base corrispondente.

Usare un repository di pacchetti dall'archiviazione privata

È possibile utilizzare i pacchetti di un account di archiviazione di Azure all'interno del firewall dell'organizzazione. L'account di archiviazione può contenere un set curato di pacchetti o un mirror interno di pacchetti disponibili pubblicamente.

Per configurare tale archiviazione privata, vedere Proteggere un'area di lavoro di Azure Machine Learning e le risorse associate. È anche necessario posizionare il Registro Azure Container dietro la rete virtuale.

Importante

È necessario completare questo passaggio per poter eseguire il training o la distribuzione di modelli usando il repository di pacchetti privati.

Dopo aver completato queste configurazioni, è possibile fare riferimento ai pacchetti nella definizione dell'ambiente di Azure Machine Learning in base all'URL completo nell'archiviazione BLOB di Azure.

Passaggi successivi