在 Azure Machine Learning 中設定一個搭配 Azure Databricks 和 AutoML 的開發環境

了解如何在 Azure Machine Learning 中設定一個使用 Azure Databricks 和自動化 ML 的開發環境。

Azure Databricks 適合在 Azure 雲端的可調整 Apache Spark 平台上執行大規模密集的機器學習工作流程。 提供以 Notebook 為基礎的共同作業環境,還有以 CPU 或 GPU 為基礎的計算叢集。

如需其他機器學習開發環境的相關資訊,請參閱設定 Python 開發環境

必要條件

Azure Machine Learning 工作區。 若要建立,請使用建立工作區資源一文中的步驟。

Azure Databricks 搭配 Azure Machine Learning 和 AutoML

Azure Databricks 與 Azure Machine Learning 及其 AutoML 功能整合。

Azure Databricks 的用途:

設定 Databricks 叢集

建立 Databricks 叢集。 只有當您在 Databricks 上安裝適用於自動化機器學習的 SDK 時,才會適用某些設定。

建立叢集需要幾分鐘的時間。

使用下列設定:

設定 適用於
叢集名稱 always yourclustername
Databricks Runtime 版本 always 9.1 LTS
Python 版本 always 3
背景工作角色類型
(決定同時反覆運算次數上限)
自動化 ML
建議使用已記憶體最佳化的 VM
背景工作角色 always 2 個以上
啟用自動調整功能 自動化 ML
取消選取

請靜候至叢集運作,再繼續操作。

將 Azure Machine Learning SDK 新增至 Databricks

叢集執行之後,請建立程式庫,以將適當的 Azure Machine Learning SDK 封裝附加至叢集。

若要使用自動化 ML,請跳至將 Azure Machine Learning SDK 搭配 AutoML 新增至 Databricks

  1. 以滑鼠右鍵按一下您要儲存程式庫的目前工作區資料夾。 選取 [建立]>[程式庫]

    提示

    如果您有舊版 SDK,請從叢集已安裝的程式庫中取消選取 SDK,並放到垃圾桶。 安裝新版 SDK,並重新啟動叢集。 如果重新啟動之後發生問題,請中斷連結叢集再重新連結。

  2. 選擇下列選項 (不支援其他 SDK 安裝)

    SDK 封裝額外項目 來源 PyPi 名稱
    適用於 Databricks 上傳 Python Egg 或 PyPI azureml-sdk[databricks]

    警告

    無法安裝其他 SDK 額外項目。 只能選擇 [databricks] 選項。

    • 請勿選取 [自動附加至所有叢集]
    • 選取叢集名稱旁的 [附加]
  3. 監視錯誤,直到狀態變更為已附加為止,可能需要幾分鐘的時間。 如果此步驟失敗:

    執行下列動作來嘗試重新啟動叢集:

    1. 在左窗格中,選取 [叢集]
    2. 請選取表格中您的叢集名稱。
    3. 在 [程式庫] 索引標籤上,選取 [重新啟動]

    成功安裝看起來如下所示:

Azure Machine Learning SDK for Databricks

將 Azure Machine Learning SDK 搭配 AutoML 新增至 Databricks

如果是以 Databricks Runtime 7.3 LTS ( ML) 建立叢集,請在筆記本的第一個儲存格中執行下列命令,以安裝 Azure Machine Learning SDK。

%pip install --upgrade --force-reinstall -r https://aka.ms/automl_linux_requirements.txt

AutoML 組態設定

在 AutoML 組態中,使用 Azure Databricks 時,請新增下列參數:

  • max_concurrent_iterations 以叢集中的背景工作節點數目為基礎。
  • spark_context=sc 以預設 spark 內容為基礎。

適用於 Azure Databricks 的 ML 筆記本

試試看:

疑難排解

  • Databricks 取消自動化機器學習執行:當您在 Azure Databricks 上使用自動化機器學習功能時,若要取消執行並開始新的實驗執行,請重新啟動 Azure Databricks 叢集。

  • Databricks 在自動化機器學習中 >10 次反覆運算:在自動化機器學習設定中,如果您有 10 次以上的反覆運算,請在提交執行時將 show_output 設定為 False

  • 適用於 Azure Machine Learning SDK 和自動化機器學習服務的 Databricks widget:Databricks 筆記本中不支援 Azure Machine Learning SDK widget,因為筆記本無法剖析 HTML widget。 在入口網站中,您可以在 Azure Databricks 筆記本儲存格中使用此 Python 程式碼來檢視 widget:

    displayHTML("<a href={} target='_blank'>Azure Portal: {}</a>".format(local_run.get_portal_url(), local_run.id))
    
  • 安裝封裝時失敗

    在 Azure Databricks 上,Azure Machine Learning SDK 安裝在安裝多個封裝時失敗。 有些套件 (例如 psutil) 會導致發生衝突。 為了避免安裝錯誤,請凍結程式庫版本來安裝封裝。 此問題與 Databricks 有關,與 Azure Machine Learning SDK 無關。 其他程式庫也可能發生此問題。 範例:

    psutil cryptography==1.5 pyopenssl==16.0.0 ipython==2.2.0
    

    或者,如果持續遇到 Python 程式庫的安裝問題,您可以使用 init 指令碼。 未正式支援此方法。 如需詳細資訊,請參閱叢集範圍的 init 指令碼

  • 匯入錯誤:無法從 pandas._libs.tslibs 匯入名稱 Timedelta:如果您在使用自動化機器學習時看到此錯誤,請在筆記本中執行下列兩行:

    %sh rm -rf /databricks/python/lib/python3.7/site-packages/pandas-0.23.4.dist-info /databricks/python/lib/python3.7/site-packages/pandas
    %sh /databricks/python/bin/pip install pandas==0.23.4
    
  • 匯入錯誤:沒有名為 'pandas.core.indexes' 的模組:如果您在使用自動化機器學習時看到此錯誤:

    1. 執行此命令,在 Azure Databricks 叢集安裝兩個封裝:

      scikit-learn==0.19.1
      pandas==0.22.0
      
    2. 中斷連結叢集,再將叢集重新連結至筆記本。

    如果這些步驟無法解決問題,請嘗試重新啟動叢集。

  • FailToSendFeather:如果您在 Azure Databricks 叢集上讀取資料時看到 FailToSendFeather 錯誤,請參閱下列解決方案:

    • azureml-sdk[automl] 封裝更新為最新版本。
    • 新增 azureml-dataprep 1.1.8 版或更新版本。
    • 新增 pyarrow 0.11 版或更新版本。

下一步