使用馬賽克 AutoML UI 定型 ML 模型
本文示範如何使用 AutoML 和 Databricks Mosaic AI UI 訓練機器學習模型。 AutoML UI 會逐步引導您在資料集上訓練分類、迴歸或預測模型。
請參閱 AutoML 實驗的需求。
開啟 AutoML UI
若要存取 AutoML UI,請執行以下操作:
在側邊欄中,選取 [新增] > [AutoML 實驗]。
[設定 AutoML 實驗] 頁面隨即顯示。 在此頁面上,您可以:設定 AutoML 處理序;指定要預測的資料集、問題類型、目標或標籤資料行;設定用來對實驗執行進行評估和評分的計量;設定停止條件。
設定分類或迴歸問題
可以使用 AutoML UI 搭配下列步驟來設定分類或迴歸問題:
在 [計算] 欄位中,選取執行 Databricks Runtime ML 的叢集。
從 [ML 問題類型] 下拉式功能表中,選取 [迴歸] 或 [分類]。 如果嘗試預測每個觀察的連續數值 (例如年度收入),請選取迴歸。 如果嘗試將每個觀察指派到一組離散的類別之一 (例如良好的信用風險或不良信用風險),請選取分類。
在 [資料集] 底下,選取 [瀏覽]。
瀏覽至想要使用的資料表,然後按下 [選取]。 資料表結構描述隨即顯示。
- 在 Databricks Runtime 10.3 ML 和更新版本中,您可以指定 AutoML 應使用哪些資料行進行訓練。 您無法移除選取作為預測目標或作為分割資料的時間資料行的資料行。
- 在 Databricks Runtime 10.4 LTS ML 和更新版本中,您可以從[插補] 下拉式功能表選取一個值,指定如何插補 null 值。 根據預設,AutoML 會根據資料行類型和內容選取插補方法。
注意
如果您指定非預設插補方法,AutoML 不會執行語意類型偵測。
按下 [預測目標] 欄位。 一個下拉式功能表將隨即顯示,並列出結構描述中的資料行。 選取您希望模型預測的資料行。
[實驗名稱] 欄位會顯示預設名稱。 若要變更,在欄位中輸入新名稱。
您也可以:
設定預測問題
可以使用 AutoML UI 搭配下列步驟來設定預測問題:
在 [計算] 欄位中,選取執行 Databricks Runtime 10.0 ML 的叢集。
從 [ML 問題類型] 下拉式功能表中,選取 [預測]。
在 [資料集] 底下,按下 [瀏覽]。 瀏覽至想要使用的資料表,然後按下 [選取]。 資料表結構描述隨即顯示。
按下 [預測目標] 欄位。 一個下拉式功能表將隨即顯示,並列出結構描述中的資料行。 選取您希望模型預測的資料行。
按下 [時間資料行] 欄位。 一個下拉式功能表將隨即顯示,並列出類型為
timestamp
或date
的資料集資料行。 選取包含時間序列時間週期的資料行。針對多序列預測,請從 [時間序列識別碼] 下拉式功能表中選取識別個別時間序列的資料行。 AutoML 會依據這些欄位將資料分類為不同的時間序列,並個別訓練每個序列的模型。 如果將此欄位保留空白,AutoML 假設資料集包含單一時間序列。
在 [預測範圍與頻率] 欄位中,指定 AutoML 應該計算預測值的未來時間週期數。 在左側方塊中,輸入要預測的週期整數。 在右側方塊中,選取單位。
注意
若要使用 Auto-ARIMA,時間序列必須有一般頻率,即任何兩個點之間的間隔在整個時間序列中都必須相同。 頻率必須符合 API 呼叫或 AutoML UI 中指定的頻率單位。 AutoML 會用先前的值填入這些值,以處理遺漏的時間步驟。
在 Databricks Runtime 11.3 LTS ML 和更新版本中,可以儲存預測結果。 若要這樣做,請在 [輸出資料庫] 欄位中指定資料庫。 按下 [瀏覽],然後從對話方塊中選取資料庫。 AutoML 會將預測結果寫入此資料庫中的資料表。
[實驗名稱] 欄位會顯示預設名稱。 若要變更,在欄位中輸入新名稱。
您也可以:
從 Databricks Feature Store 使用現有的功能資料表
使用 Databricks Runtime 11.3 LTS ML 和更新版本時,您可以使用 Databricks Feature Store 中的功能資料表來展開分類和迴歸問題的原始輸入訓練資料集。
使用 Databricks Runtime 12.2 LTS ML 和更新版本時,您可以使用 Databricks Feature Store 中的現有功能資料表來展開您所有 AutoML 問題的原始輸入訓練資料集:分類、迴歸和預測。
若要建立功能資料表,請參閱 在 Unity Catalog 中建立功能資料表或在 Databricks Feature Store 中建立功能資料表。
設定 AutoML 實驗之後,可以使用下列步驟來選取功能資料表:
按下 [聯結功能] (選用)。
在 [聯結其他功能] 頁面上,選取 [功能資料表] 欄位中的功能資料表。
對於每個功能資料表主索引鍵,選取對應的查閱索引鍵。 查閱索引鍵應該是您為 AutoML 實驗提供的訓練資料集中的資料行。
對於時間序列功能資料表,選取對應的時間戳查閱索引鍵。 同樣地,時間戳查閱索引鍵應該是您為 AutoML 實驗提供的訓練資料集中的資料行。
若要新增更多功能資料表,請按下 [新增其他資料表],然後重複上述步驟。
進階組態
開啟 [進階組態](選用) 區段以存取這些參數。
- 評估計量是用來對執行評分的主要計量。
- 在 Databricks Runtime 10.4 LTS ML 和更新版本中,可以將訓練架構排除在考慮之外。 根據預設,AutoML 會使用 AutoML 演算法下所列的架構來訓練模型。
- 您可以編輯停止條件。 預設停止條件為:
- 對於預測實驗,120 分鐘後停止。
- 在 Databricks Runtime 10.4 LTS ML 及以下版本中,對於分類和迴歸實驗,在 60 分鐘後或完成 200 次測試後停止,以先發生者為準。 對於 Databricks Runtime 11.0 ML 及更新版本,試用次數不作為停止條件。
- 在 Databricks Runtime 10.4 ML 和更新版本中,對於分類和迴歸實驗,AutoML 會納入早期停止功能;如果驗證計量不再有所改善,該功能會停止訓練和微調模型。
- 在 Databricks Runtime 10.4 LTS ML 和更新版本中,可以選取時間資料行 ,以時間順序分割資料以進行訓練、驗證和測試 (僅適用於分類和迴歸)。
- Databricks 建議不要填入 [資料目錄] 欄位。 這樣做會觸發將資料集安全地儲存為 MLflow 成品的預設行為。 可以指定 DBFS 路徑,但在此情況下,資料集不會繼承 AutoML 實驗的存取權限。
執行實驗並監視結果
若要啟動 AutoML 實驗,按下 [啟動 AutoML]。 實驗會開始執行,[AutoML 訓練] 頁面將隨即顯示。 若要重新整理執行資料表,按下 。
您可以從這個頁面執行下列動作:
- 隨時停止實驗。
- 開啟資料探索筆記本。
- 監視執行。
- 瀏覽至任何執行的執行頁面。
使用 Databricks Runtime 10.1 ML 和更新版本時,AutoML 會顯示資料集潛在問題的警告,例如不支援的資料行類型或高基數資料行。
注意
Databricks 會盡最大努力指出潛在錯誤或問題。 不過,這可能並不完整,而且可能無法擷取您可能搜尋的問題或錯誤。
若要查看資料集的任何警告,請在實驗完成後,按下訓練頁面或實驗頁面上的 [警告] 索引標籤。
實驗完成時,您可以:
- 使用 MLflow 註冊並部署一個模型。
- 選取 [檢視最佳模型的筆記本] 以檢閱和編輯建立最佳模型的筆記本。
- 選取 [檢視資料探索筆記本] 以開啟資料探索筆記本。
- 搜尋、篩選執行資料表中的執行並進行排序。
- 參閱任意執行的詳細資料:
- 按下進入 MLflow 執行,即可找到產生的包含試執行原始程式碼的筆記本。 筆記本會儲存在執行頁面的 [成品] 區段中。 如果工作區系統管理員已啟用下載成品,您可以下載此筆記本並將其匯入到工作區。
- 若要檢視執行結果,請按下 [模型] 資料行或 [開始時間] 資料行。 執行頁面隨即顯示,其中顯示試用執行的相關資訊 (例如參數、計量和標記),以及執行所建立的成品 (包括模型)。 此頁面也包含您可以使用模型進行預測的程式碼片段。
若要稍後返回此 AutoML 實驗,請在 [實驗] 頁面上的資料表中找到它。 每個 AutoML 實驗的結果 (包括資料探索和訓練筆記本) 都會儲存在執行實驗之使用者的主資料夾的 databricks_automl
資料夾中。
註冊和部署模型
可以使用 AutoML UI 註冊和部署模型:
- 選取 [模型] 資料行中要註冊之模型的連結。 執行完成時,頂端資料列是最佳模型 (根據主要計量)。
- 選取 在模型登錄中註冊模型。
- 選取側邊欄中的 [模型] 瀏覽至模型登錄。
- 在模型資料表中選取模型的名稱。
- 從已註冊的模型頁面,可以透過模型服務提供模型。
沒有名為「pandas.core.indexes.numeric」的模組
透過模型服務為使用 AutoML 建置的模型提供服務時,您可能會收到錯誤:No module named 'pandas.core.indexes.numeric
。
這是由於 AutoML 與模型服務端點環境之間的 pandas
版本不相容。 您可以執行 add-pandas-dependency.py script 來解決此錯誤。 此指令碼會為您記錄的模型編輯 requirements.txt
和 conda.yaml
,以包含適當的 pandas
相依性版本:pandas==1.5.3
- 修改指令碼以包含記錄模型時所在的 MLflow 執行的
run_id
。 - 將模型重新註冊至 MLflow 模型登錄。
- 嘗試為新版 MLflow 模型提供服務。