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
- Mer information om hur du använder automatiserade ML-funktioner i Azure Machine Learning finns i Nya automatiserade maskininlärningsfunktioner i Azure Machine Learning
- AutoML-projekt från Microsoft Research