在 HDInsight 中的 Apache Spark 上以自動化機器學習執行 Azure Machine Learning 工作負載

Azure Machine Learning 會簡化並加速機器學習模型的建置、定型和部署。 在自動化機器學習 (AutoML) 中,您會從具有已定義目標功能的訓練資料開始。 根據訓練分數,逐一查看演算法和特徵選取的組合,自動為您的資料選取最佳模型。 HDInsight 可讓客戶佈建具有數百個節點的叢集。 在 HDInsight 叢集中的 Spark 上執行的 AutoML 可讓使用者跨這些節點使用計算容量,以擴增方式執行定型作業,並以平行方式執行多個定型作業。 這可讓使用者在與其他巨量資料工作負載共用計算時執行 AutoML 實驗。

在 HDInsight 叢集上安裝 Azure Machine Learning

如需自動化機器學習的一般教學課程,請參閱教學課程:使用自動化機器學習建置迴歸模型。 所有新的 HDInsight-Spark 叢集都會隨著 AzureML-AutoML SDK 預先安裝。

注意

Azure Machine Learning 套件會安裝到 Python3 Conda 環境。 安裝的 Jupyter Notebook 應該使用 PySpark3 核心來執行。

您也可以使用 Zeppelin 筆記本來使用 AutoML。

工作區的驗證

建立工作區和提交實驗都需要驗證權杖。 您可以使用 Microsoft Entra 應用程式來產生此權杖。 如果帳戶未啟用多重要素驗證,則 Microsoft Entra 使用者也可用來產生必要的驗證權杖。

下列程式碼片段會使用 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>'
)

下列程式碼片段會使用 Microsoft Entra 使用者來建立驗證權杖。

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

載入資料集

Spark 上的自動化機器學習會使用資料流程,這是延遲評估且不可變動的資料作業。 資料流程可以透過公用讀取從 Blob 載入資料集,或透過 SAS 權杖從 Blob URL 載入資料。

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

您也可以使用單次註冊來註冊具有工作區的資料存放區。

實驗提交

自動化機器學習設定中,應設定 spark_context 屬性,才能讓套件在分散模式下執行。 concurrent_iterations 屬性會決定可平行執行的反覆項目數量上限,其值應設為小於 Spark 應用程式的執行程式核心數目。

下一步