Udostępnij za pośrednictwem


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

DOTYCZY: Zestaw SDK języka Python azureml 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órego nie chcesz udostępniać 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.

Pakiety prywatne są używane za pomocą klasy Environment . W środowisku deklarujesz, które pakiety języka Python mają być używane, w tym prywatne. Aby dowiedzieć się więcej na temat środowiska 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 pakietu prywatnego 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 zintegrowanie 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

Ta metoda 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 ramach przebiegów trenowania lub wdrożeń punktu końcowego usługi internetowej. Podczas kompilowania środowiska usługa Azure Machine Learning service używa tokenu PAT do uwierzytelniania względem kanału informacyjnego przy użyciu zgodnego podstawowego adresu URL.

Korzystanie z 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ć wyselekcjonowane 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ć usługę 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 ukoń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