Använda privata Python-paket med Azure Machine Learning

GÄLLER FÖR:Python SDK azureml v1

I den här artikeln får du lära dig hur du använder privata Python-paket på ett säkert sätt i Azure Machine Learning. Användningsfall för privata Python-paket är:

  • Du har utvecklat ett privat paket som du inte vill dela offentligt.
  • Du vill använda en kuraterad lagringsplats med paket som lagras i en företagsbrandvägg.

Den rekommenderade metoden beror på om du har några paket för en enda Azure Machine Learning-arbetsyta eller en hel lagringsplats med paket för alla arbetsytor i en organisation.

De privata paketen används via klassen Miljö . I en miljö deklarerar du vilka Python-paket som ska användas, inklusive privata. Mer information om miljön i Azure Machine Learning i allmänhet finns i Så här använder du miljöer.

Förutsättningar

Använd ett litet antal paket för utveckling och testning

Använd den statiska Environment.add_private_pip_wheel() metoden för ett litet antal privata paket för en enda arbetsyta. Med den här metoden kan du snabbt lägga till ett privat paket på arbetsytan och passar bra för utveckling och testning.

Peka filsökvägsargumentet på en lokal hjulfil och kör add_private_pip_wheel kommandot . Kommandot returnerar en URL som används för att spåra platsen för paketet i din arbetsyta. Avbilda lagrings-URL:en och skicka den till add_pip_package() metoden.

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

Internt ersätter Azure Machine Learning-tjänsten URL:en med en säker SAS-URL, så att hjulfilen hålls privat och säker.

Använda en lagringsplats med paket från Azure DevOps-feed

Om du aktivt utvecklar Python-paket för ditt maskininlärningsprogram kan du vara värd för dem på en Azure DevOps-lagringsplats som artefakter och publicera dem som en feed. Med den här metoden kan du integrera DevOps-arbetsflödet för att skapa paket med din Azure Machine Learning-arbetsyta. Information om hur du konfigurerar Python-feeds med Azure DevOps finns i Komma igång med Python-paket i Azure Artifacts

Den här metoden använder personlig åtkomsttoken för att autentisera mot lagringsplatsen. Samma metod gäller för andra lagringsplatser med tokenbaserad autentisering, till exempel privata GitHub-lagringsplatser.

  1. Skapa en personlig åtkomsttoken (PAT) för din Azure DevOps-instans. Ange tokens omfång till Paketeringsläsning>.

  2. Lägg till Azure DevOps URL och PAT som arbetsyteegenskaper med hjälp av metoden 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. Skapa en Azure Machine Learning-miljö och lägg till Python-paket från feeden.

    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
    

Miljön är nu redo att användas i träningskörningar eller webbtjänstslutpunktsdistributioner. När du skapar miljön använder Azure Machine Learning-tjänsten PAT för att autentisera mot flödet med matchande bas-URL.

Använda en lagringsplats med paket från privat lagring

Du kan använda paket från ett Azure Storage-konto i organisationens brandvägg. Lagringskontot kan innehålla en kuraterad uppsättning paket eller en intern spegling av offentligt tillgängliga paket.

Information om hur du konfigurerar sådan privat lagring finns i Skydda en Azure Machine Learning-arbetsyta och associerade resurser. Du måste också placera Azure Container Registry (ACR) bakom det virtuella nätverket.

Viktigt

Du måste slutföra det här steget för att kunna träna eller distribuera modeller med hjälp av den privata paketlagringsplatsen.

När du har slutfört de här konfigurationerna kan du referera till paketen i Azure Machine Learning-miljödefinitionen med deras fullständiga URL i Azure Blob Storage.

Nästa steg