Udostępnij za pośrednictwem


Uruchamianie obciążeń usługi Azure Machine Learning przy użyciu zautomatyzowanego uczenia maszynowego na platformie Apache Spark w usłudze HDInsight

Usługa Azure Machine Learning upraszcza i przyspiesza tworzenie, trenowanie i wdrażanie modeli uczenia maszynowego. W przypadku zautomatyzowanego uczenia maszynowego (AutoML) rozpoczynasz od danych treningowych, które mają zdefiniowaną funkcję docelową. Iteracja po kombinacjach algorytmów i wyborów funkcji automatycznie wybiera najlepszy model dla danych na podstawie wyników trenowania. Usługa HDInsight umożliwia klientom aprowizację klastrów z setkami węzłów. Rozwiązanie AutoML uruchomione na platformie Spark w klastrze usługi HDInsight umożliwia użytkownikom używanie pojemności obliczeniowej w tych węzłach do uruchamiania zadań szkoleniowych w sposób skalowalny w poziomie oraz równoległego uruchamiania wielu zadań szkoleniowych. Umożliwia to użytkownikom uruchamianie eksperymentów rozwiązania AutoML podczas udostępniania zasobów obliczeniowych innym obciążeniom danych big data.

Instalowanie usługi Azure Machine Learning w klastrze usługi HDInsight

Aby uzyskać ogólne samouczki dotyczące zautomatyzowanego uczenia maszynowego, zobacz Samouczek: używanie zautomatyzowanego uczenia maszynowego do tworzenia modelu regresji. Wszystkie nowe klastry HDInsight-Spark są wstępnie zainstalowane za pomocą zestawu AzureML-AutoML SDK.

Uwaga

Pakiety usługi Azure Machine Learning są instalowane w środowisku python3 conda. Zainstalowany notes Jupyter Notebook powinien być uruchamiany przy użyciu jądra PySpark3.

Notesy Zeppelin można również używać do używania rozwiązania AutoML.

Uwierzytelnianie dla obszaru roboczego

Tworzenie obszaru roboczego i przesyłanie eksperymentów wymaga tokenu uwierzytelniania. Ten token można wygenerować przy użyciu aplikacji Microsoft Entra. Użytkownik firmy Microsoft Entra może również służyć do generowania wymaganego tokenu uwierzytelniania, jeśli uwierzytelnianie wieloskładnikowe nie jest włączone na koncie.

Poniższy fragment kodu tworzy token uwierzytelniania przy użyciu aplikacji Firmy Microsoft Entra.

from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
    tenant_id='<Azure Tenant ID>',
    service_principal_id='<Azure AD Application ID>',
    service_principal_password='<Azure AD Application Key>'
)

Poniższy fragment kodu tworzy token uwierzytelniania przy użyciu użytkownika firmy Microsoft Entra.

from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')

Ładowanie zestawu danych

Zautomatyzowane uczenie maszynowe na platformie Spark korzysta z przepływów danych, które są źle oceniane, niezmienne operacje na danych. Przepływ danych może załadować zestaw danych z obiektu blob z publicznym dostępem do odczytu lub z adresu URL obiektu blob z tokenem SAS.

import azureml.dataprep as dprep

dataflow_public = dprep.read_csv(
    path='https://commonartifacts.blob.core.windows.net/automl/UCI_Adult_train.csv')

dataflow_with_token = dprep.read_csv(
    path='https://dpreptestfiles.blob.core.windows.net/testfiles/read_csv_duplicate_headers.csv?st=2018-06-15T23%3A01%3A42Z&se=2019-06-16T23%3A01%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=ugQQCmeC2eBamm6ynM7wnI%2BI3TTDTM6z9RPKj4a%2FU6g%3D')

Możesz również zarejestrować magazyn danych w obszarze roboczym przy użyciu rejestracji jednorazowej.

Przesyłanie eksperymentów

W konfiguracji zautomatyzowanego uczenia maszynowego właściwość spark_context powinna zostać ustawiona, aby pakiet był uruchamiany w trybie rozproszonym. Właściwość concurrent_iterations, która jest maksymalną liczbą iteracji wykonywanych równolegle, powinna być ustawiona na liczbę mniejszą niż rdzenie funkcji wykonawczej dla aplikacji Spark.

Następne kroki