Persoonlijke Python-pakketten gebruiken met Azure Machine Learning

VAN TOEPASSING OP:Python SDK azureml v1

In dit artikel leert u hoe u privé-Python-pakketten veilig kunt gebruiken in Azure Machine Learning. Voorbeelden van gebruiksvoorbeelden voor privé-Python-pakketten zijn:

  • U hebt een privépakket ontwikkeld dat u niet openbaar wilt delen.
  • U wilt een gecureerde opslagplaats met pakketten gebruiken die zijn opgeslagen in een bedrijfsfirewall.

De aanbevolen aanpak is afhankelijk van of u weinig pakketten hebt voor één Azure Machine Learning-werkruimte of een volledige opslagplaats met pakketten voor alle werkruimten binnen een organisatie.

De privépakketten worden gebruikt via de klasse Environment . Binnen een omgeving declareert u welke Python-pakketten u wilt gebruiken, inclusief privépakketten. Zie Omgevingen gebruiken voor meer informatie over de omgeving in Azure Machine Learning in het algemeen.

Vereisten

Een klein aantal pakketten gebruiken voor ontwikkeling en testen

Gebruik de statische Environment.add_private_pip_wheel() methode voor een klein aantal privépakketten voor één werkruimte. Met deze aanpak kunt u snel een privépakket toevoegen aan de werkruimte en is het geschikt voor ontwikkelings- en testdoeleinden.

Wijs het argument bestandspad naar een lokaal wielbestand en voer de add_private_pip_wheel opdracht uit. De opdracht retourneert een URL die wordt gebruikt om de locatie van het pakket in uw werkruimte bij te houden. Leg de opslag-URL vast en geef deze de add_pip_package() methode door.

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

Intern vervangt Azure Machine Learning Service de URL door een beveiligde SAS-URL, zodat uw wheel-bestand privé en veilig blijft.

Een opslagplaats met pakketten uit azure DevOps-feed gebruiken

Als u actief Python-pakketten ontwikkelt voor uw machine learning-toepassing, kunt u deze als artefacten hosten in een Azure DevOps-opslagplaats en deze publiceren als een feed. Met deze benadering kunt u de DevOps-werkstroom voor het bouwen van pakketten integreren met uw Azure Machine Learning-werkruimte. Lees Aan de slag met Python-pakketten in Azure Artifacts voor meer informatie over het instellen van Python-feeds met behulp van Azure DevOps

Deze benadering maakt gebruik van persoonlijk toegangstoken om te verifiëren bij de opslagplaats. Dezelfde aanpak is van toepassing op andere opslagplaatsen met verificatie op basis van tokens, zoals privé-GitHub-opslagplaatsen.

  1. Maak een persoonlijk toegangstoken (PAT) voor uw Azure DevOps-exemplaar. Stel het bereik van het token in op Verpakking > gelezen.

  2. Voeg de Azure DevOps-URL en PAT toe als werkruimte-eigenschappen met behulp van de methode 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. Maak een Azure Machine Learning-omgeving en voeg Python-pakketten toe vanuit de 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
    

De omgeving is nu gereed voor gebruik in trainingsuitvoeringen of implementaties van webservice-eindpunten. Bij het bouwen van de omgeving gebruikt Azure Machine Learning Service de PAT om te verifiëren op basis van de feed met de overeenkomende basis-URL.

Een opslagplaats met pakketten uit privéopslag gebruiken

U kunt pakketten van een Azure-opslagaccount binnen de firewall van uw organisatie gebruiken. Het opslagaccount kan een gecureerde set pakketten of een interne mirror van openbaar beschikbare pakketten bevatten.

Zie Een Azure Machine Learning-werkruimte en de bijbehorende resources beveiligen als u een dergelijke privéopslag wilt instellen. U moet ook de Azure Container Registry (ACR) achter het VNet plaatsen.

Belangrijk

U moet deze stap voltooien om modellen te kunnen trainen of implementeren met behulp van de privépakketopslagplaats.

Nadat u deze configuraties hebt voltooid, kunt u verwijzen naar de pakketten in de definitie van de Azure Machine Learning-omgeving met hun volledige URL in Azure Blob Storage.

Volgende stappen