Używanie prywatnych pakietów języka Python z usługą Azure Machine Learning

DOTYCZY:Zestaw SDK języka Python w wersji 1

Z tego artykułu dowiesz się, jak bezpiecznie używać prywatnych pakietów języka Python w usłudze Azure Machine Learning. Przypadki użycia prywatnych pakietów języka Python obejmują:

  • Utworzono pakiet prywatny, który nie ma być udostępniany publicznie.
  • Chcesz użyć nadzorowanego repozytorium pakietów przechowywanych w zaporze przedsiębiorstwa.

Zalecane podejście zależy od tego, czy masz kilka pakietów dla jednego obszaru roboczego usługi Azure Machine Learning, czy całe repozytorium pakietów dla wszystkich obszarów roboczych w organizacji.

Prywatne pakiety są używane za pośrednictwem klasy Environment . W środowisku deklarujesz, które pakiety języka Python mają być używane, w tym prywatne. Aby dowiedzieć się więcej o środowisku w usłudze Azure Machine Learning, zobacz How to use environments (Jak używać środowisk).

Wymagania wstępne

Używanie niewielkiej liczby pakietów na potrzeby programowania i testowania

W przypadku niewielkiej liczby pakietów prywatnych dla jednego obszaru roboczego użyj metody statycznej Environment.add_private_pip_wheel() . Takie podejście umożliwia szybkie dodawanie prywatnego pakietu do obszaru roboczego i jest odpowiednie do celów programistycznych i testowych.

Wskaż argument ścieżki pliku do pliku koła lokalnego i uruchom add_private_pip_wheel polecenie . Polecenie zwraca adres URL używany do śledzenia lokalizacji pakietu w obszarze roboczym. Przechwyć adres URL magazynu i przekazać go do add_pip_package() metody .

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

Wewnętrznie usługa Azure Machine Learning zastępuje adres URL bezpiecznym adresem URL sygnatury dostępu współdzielonego, dzięki czemu plik wheel jest przechowywany jako prywatny i bezpieczny.

Używanie repozytorium pakietów ze źródła danych usługi Azure DevOps

Jeśli aktywnie opracowujesz pakiety języka Python dla aplikacji uczenia maszynowego, możesz hostować je w repozytorium usługi Azure DevOps jako artefakty i publikować je jako źródło danych. Takie podejście umożliwia integrację przepływu pracy DevOps na potrzeby tworzenia pakietów z obszarem roboczym usługi Azure Machine Learning. Aby dowiedzieć się, jak skonfigurować kanały informacyjne języka Python przy użyciu usługi Azure DevOps, przeczytaj artykuł Rozpoczynanie pracy z pakietami języka Python w usłudze Azure Artifacts

To podejście używa osobistego tokenu dostępu do uwierzytelniania w repozytorium. To samo podejście ma zastosowanie do innych repozytoriów z uwierzytelnianiem opartym na tokenach, takimi jak prywatne repozytoria GitHub.

  1. Utwórz osobisty token dostępu dla wystąpienia usługi Azure DevOps. Ustaw zakres tokenu na Pakuj > odczyt.

  2. Dodaj adres URL usługi Azure DevOps i identyfikator pat jako właściwości obszaru roboczego przy użyciu metody 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. Utwórz środowisko usługi Azure Machine Learning i dodaj pakiety języka Python z kanału informacyjnego.

    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
    

Środowisko jest teraz gotowe do użycia w przebiegach trenowania lub wdrożeniach punktów końcowych usługi internetowej. Podczas tworzenia środowiska usługa Azure Machine Learning service używa tokenu dostępu do uwierzytelniania w kanale informacyjnym przy użyciu pasującego podstawowego adresu URL.

Używanie repozytorium pakietów z magazynu prywatnego

Pakiety można używać z konta usługi Azure Storage w zaporze organizacji. Konto magazynu może przechowywać nadzorowany zestaw pakietów lub wewnętrzne dublowanie publicznie dostępnych pakietów.

Aby skonfigurować taki magazyn prywatny, zobacz Zabezpieczanie obszaru roboczego usługi Azure Machine Learning i skojarzonych zasobów. Należy również umieścić Azure Container Registry (ACR) za siecią wirtualną.

Ważne

Ten krok należy wykonać, aby móc trenować lub wdrażać modele przy użyciu repozytorium pakietów prywatnych.

Po zakończeniu tych konfiguracji można odwoływać się do pakietów w definicji środowiska usługi Azure Machine Learning przy użyciu pełnego adresu URL w usłudze Azure Blob Storage.

Następne kroki