AutoML是PAI提供的機器學習增強型服務,整合了多種演算法和分散式運算資源,無需編寫代碼,通過建立實驗即可實現模型超參數調優,提高機器學習效率和效能。本文為您介紹如何建立實驗。
背景資訊
AutoML的工作機制:
實驗會根據演算法配置自動產生超參數組合。針對每組超參數組合,該實驗會建立一個Trial。同時,每個Trial可能會對應一個DLC任務,也可能對應1個或多個MaxCompute任務。任務的類型取決於實驗的執行配置。後續將通過配置的任務來執行Trial。實驗通過調度運行多個Trial,並比較這些Trial的結果,以找到較優的超參數組合。更詳細的原理介紹,請參見AutoML工作原理。
前提條件
首次使用AutoML功能時,需要完成AutoML相關許可權授權。具體操作,請參見雲產品依賴與授權:AutoML。
已建立工作空間,具體操作,請參見建立工作空間。
如果建立DLC任務,需要完成以下準備工作:
已完成DLC相關許可權授權,授權方法詳情請參見雲產品依賴與授權:DLC。
已準備資源群組。準備通用計算資源公用資源群組和專有資源群組,請參見建立資源群組併購買通用計算資源。準備靈駿智算資源專有資源群組,請參見靈駿智算資源配額。
如果建立MaxCompute任務,則需要準備MaxCompute資源,並關聯到了工作空間。具體操作,請參見MaxCompute資源配額。
操作步驟
進入自動機器學習(AutoML)頁面。
登入PAI控制台。
在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
在左側導覽列,選擇
。
在實驗列表頁面,單擊建立實驗。
在建立實驗頁面,配置如下參數。
基本資料配置。
參數
描述
名稱
參考介面提示資訊配置實驗名稱。
描述
對建立的實驗進行簡單描述,以區分不同的實驗。
可見範圍
實驗的可見度,支援以下取值:
僅自己可見:在工作空間中,僅對您和管理員可見。
工作空間內公開可見:在工作空間中,對所有人可見。
執行配置。
任務類型:是Trial的執行環境,支援選擇DLC和MaxCompute。
DLC:表示通過運行分布式訓練(DLC)任務,進行超參數調優。更多關於DLC任務的介紹,請參見建立訓練任務。
MaxCompute:表示在MaxCompute計算資源上,運行SQL命令或Designer演算法組件的PAI命令,進行超參數調優。更多關於Designer演算法組件以及每個組件支援的PAI命令的詳細資料,請參見組件參考:所有組件匯總。
DLC
任務類型選擇DLC時,參數配置如下表所示:
參數
描述
架構
支援選擇以下兩種架構類型:
Tensorflow
PyTorch
資料集
此處需配置為已準備好的資料集,資料集配置方式請參見建立及管理資料集。
代碼源
指定任務代碼檔案的儲存位置(代碼倉庫資訊)。此處需配置為已準備好的代碼配置,配置方式請參見代碼配置。
說明由於DLC會將代碼下載至指定工作路徑,所以您需要有代碼倉庫的存取權限。
資源群組
選擇公用資源群組或已購買的專有資源群組。如何準備資源群組,請參見建立資源群組併購買通用計算資源和靈駿智算資源配額。
機器規格
選擇任務運行所需的執行個體規格。不同規格的執行個體價格有所不同,關於各個規格的計費詳情,請參見分布式訓練(DLC)計費說明。
節點鏡像
工作節點的鏡像。當前支援選擇使用不同類型的鏡像:
節點數量
在DLC任務中所使用的計算節點的數量。
重要如果選擇配置多個節點,則每個節點都會獨立收取費用,而不是共用同一個機器規格。因此,在節點選擇過程中,您需要明確每個節點的費用,並綜合考慮成本和效能之間的平衡。
CPU(核心數)
當資源群組選擇已購買的專有資源群組時,您可以根據購買的資源規格來配置這些參數。
記憶體(GB)
共用記憶體(GB)
GPU(卡數)
進階配置
支援通過進階配置提高訓練靈活性,或滿足一些特定的訓練情境。當架構選擇Pytorch時,您可以配置進階參數。支援的進階參數列表及取值說明,請參見附錄1:進階參數列表。
節點啟動命令
各個節點的啟動命令。您需要在命令中配置超參數變數
${自訂超參數變數}
,例如:python /mnt/data/examples/search/dlc_mnist/mnist.py --data_dir=/mnt/data/examples/search/data --save_model=/mnt/data/exmaples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr} --metric_filepath=/mnt/data/examples/search/metric/metric_${exp_id}_${trial_id}
其中:
${batch_size}
和${lr}
為定義的超參數變數。超參數
根據啟動命令中配置的超參數變數,自動載入超參數列表。您需要為每個超參數配置約束類型和搜尋空間:
約束類型:為超參數添加的限制條件。您可以將滑鼠移至上方在約束類型後的表徵圖上,以查看支援選擇的約束類型及相關說明。
搜尋空間:用於指定超參數的取值範圍。每種約束類型對應的搜尋空間的配置方式不同,您可以單擊表徵圖並根據介面提示進行添加。
MaxCompute
任務類型選擇MaxCompute時,參數配置如下表所示:
參數
描述
命令
配置為SQL命令或運行Designer演算法組件的PAI命令。您需要在命令中配置超參數變數
${自訂超參數變數}
,例如:pai -name kmeans -project algo_public -DinputTableName=pai_kmeans_test_input -DselectedColNames=f0,f1 -DappendColNames=f0,f1 -DcenterCount=${centerCount} -Dloop=10 -Daccuracy=0.01 -DdistanceType=${distanceType} -DinitCenterMethod=random -Dseed=1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id} -DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id} -DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};
其中:
${centerCount}
和${distanceType}
為定義的超參數變數。更多配置樣本,請參見附錄:參考說明。
超參數
根據命令中配置的超參數變數,自動載入超參數列表。您需要為每個超參數配置約束類型和搜尋空間:
約束類型:為超參數添加的限制條件。您可以將滑鼠移至上方在約束類型後的表徵圖上,以查看支援選擇的約束類型及相關說明。
搜尋空間:用於指定超參數的取值範圍。每種約束類型對應的搜尋空間的配置方式不同,您可以單擊表徵圖並根據介面提示進行添加。
Trial配置。
使用某組超參來運行任務,參數配置如下:
參數
描述
指標類型
用來評估Trial的指標類型,取值如下:
summary:最終指標需要從來自OSS的Tensorflow summary檔案中提取。
table:最終指標需要從MaxCompute表格中提取。
stdout:最終指標需要從運行過程中的stdout中提取。
json:最終指標以JSON格式的檔案儲存體在OSS中。
計算方式
在任務運行過程中,會逐步輸出多個中間指標,需要通過計算方式來確定最終指標。取值如下:
final:以最後一個指標作為整個Trial的最終指標。
best:以在任務運行過程中得到的最優指標作為整個Trial的最終指標。
avg:以在任務運行過程中得到的全部中間指標的均值作為Trial的最終指標。
指標權重
當需要同時考慮多個指標時,您可以通過配置指標名稱和對應權重的方式來實現,系統將使用加權求和值作為最終評估指標來比較優劣。
key:為指標名稱,支援Regex。
value:為對應的權重。
說明權重可以為負值,且權重之和可以不為1,支援自訂。
指標來源
指標的來源:
當指標類型選擇summary或json時,需要配置一個檔案路徑。例如
oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}
。當指標類型選擇table時,需要配置一個能夠擷取具體結果的SQL語句。例如
select GET_JSON_OBJECT(summary, '$.calinhara') as vrc from pai_ft_cluster_evaluation_out_${exp_id}_${trial_id}
。當指標類型選擇stdout時,需要配置一個命令關鍵字。僅支援配置為
cmdx
或cmdx;xxx,such as cmd1;worker
。
最佳化方向
用於評估Trial結果的最佳化方向,取值如下:
越大越好
越小越好
模型儲存路徑
儲存模型的路徑。該路徑必須包含
${exp_id}_${trial_id}
,用來區分不同超參數組合下產生的模型。例如oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}
。搜尋配置。
參數
描述
搜尋演算法
是一種自動化機器學習演算法,它根據超參數搜尋空間以及先前Trial的結果和效能指標,尋找更優的超參數組合,以供下一個Trial運行使用。支援選擇的演算法類型如下:
TPE
Random
GridSearch
Evolution
GP
PBT
演算法詳情說明,請參見支援的搜尋演算法。
最大搜尋次數
該實驗允許啟動並執行最多Trial個數。
最大並發量
該實驗允許並行啟動並執行最多Trial個數。
單擊提交。
您可以在實驗列表中查看已建立的實驗。
後續操作
附錄:參考說明
在使用MaxCompute類型的任務進行超參數調優時,提供了如下配置樣本供您參考:
命令配置如下,其中cmd1和cmd2分別對應兩個組件的命令,按照順序依次排列。具體使用流程,請參見MaxCompute K均值聚類最佳實務。
cmd1
pai -name kmeans -project algo_public -DinputTableName=pai_kmeans_test_input -DselectedColNames=f0,f1 -DappendColNames=f0,f1 -DcenterCount=${centerCount} -Dloop=10 -Daccuracy=0.01 -DdistanceType=${distanceType} -DinitCenterMethod=random -Dseed=1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id} -DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id} -DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};
cmd2
PAI -name cluster_evaluation -project algo_public -DinputTableName=pai_cluster_evaluation_test_input -DselectedColNames=f0,f1 -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id} -DoutputTableName=pai_ft_cluster_evaluation_out_${exp_id}_${trial_id};