Köra Azure Machine Learning-arbetsbelastningar med automatiserad maskininlärning på Apache Spark i HDInsight

Azure Machine Learning förenklar och påskyndar skapandet, träningen och distributionen av maskininlärningsmodeller. I Automatisk maskininlärning (AutoML) börjar du med träningsdata som har en definierad målfunktion. Iterera genom kombinationer av algoritmer och funktionsval väljer automatiskt den bästa modellen för dina data baserat på träningspoängen. MED HDInsight kan kunder etablera kluster med hundratals noder. AutoML som körs på Spark i ett HDInsight-kluster gör det möjligt för användare att använda beräkningskapacitet över dessa noder för att köra träningsjobb på ett skalbar sätt och köra flera träningsjobb parallellt. Det gör att användare kan köra AutoML-experiment samtidigt som de delar beräkningen med sina andra stordataarbetsbelastningar.

Installera Azure Machine Learning på ett HDInsight-kluster

Allmänna självstudier om automatiserad maskininlärning finns i Självstudie: Använda automatiserad maskininlärning för att skapa din regressionsmodell. Alla nya HDInsight-Spark-kluster är förinstallerade med AzureML-AutoML SDK.

Kommentar

Azure Machine Learning-paket installeras i Python3 conda-miljön. Den installerade Jupyter Notebook ska köras med pyspark3-kerneln.

Du kan också använda Zeppelin Notebooks för att använda AutoML.

Autentisering för arbetsyta

Skapande och experimentöverföring av arbetsytor kräver en autentiseringstoken. Den här token kan genereras med hjälp av ett Microsoft Entra-program. En Microsoft Entra-användare kan också användas för att generera den nödvändiga autentiseringstoken om multifaktorautentisering inte är aktiverat för kontot.

Följande kodfragment skapar en autentiseringstoken med hjälp av ett Microsoft Entra-program.

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>'
)

Följande kodfragment skapar en autentiseringstoken med hjälp av en Microsoft Entra-användare.

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

Läsa in datauppsättning

Automatiserad maskininlärning på Spark använder dataflöden, som lätt utvärderas, oföränderliga åtgärder på data. Ett dataflöde kan läsa in en datauppsättning från en blob med offentlig läsåtkomst eller från en blob-URL med en SAS-token.

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')

Du kan också registrera datalagringen med arbetsytan med hjälp av en engångsregistrering.

Experimentöverföring

I den automatiserade maskininlärningskonfigurationen ska egenskapen spark_context anges för att paketet ska köras i distribuerat läge. Egenskapen concurrent_iterations, som är det maximala antalet iterationer som körs parallellt, ska anges till ett tal som är mindre än körskärnorna för Spark-appen.

Nästa steg