Designer提供了豐富的建模組件,可視化地靈活構建和調試模型。本文以構建心臟病預測為例,介紹如何在Desigenr工作流程中進行具體的模型構建與調試。
前提條件
已建立工作流程。
模型構建
通常一個模型可以拆分為多個細分的節點(即組件)任務,通過節點任務的前後編排形成工作流程來最終實現模型預期效果。在建模前,建議您先拆分模型並規劃好細分的節點任務。通常建議一個節點完成一個最簡單的任務。模型構建總體流程如下:
在左側組件列表中搜尋或找到目標組件,將目標組件拖入畫布中。
其中,在組件列表中有紫色標識的為Alink組件(例如下圖中的讀CSV檔案組件),除了具備普通組件的用法外還支援彙總成組,通過對組進行資源配置,提升執行效率和資源使用率,詳情請參見Alink組件。
單擊目標節點,在介面右側進行組件參數配置。
通過連線將各個節點群組織成具有上下遊關係的工作流程。
每個節點有一個或多個輸入/輸出端。將滑鼠懸浮至組件的各連接埠上,可以查看連接埠的資料類型,從而根據資料類型進行連線。
後續模型實際運行時,上遊節點會先運行,所有上遊節點均運行完成後,下遊節點才會觸發運行。
模型構建通常包含以下任務模組:
讀取資料
在工作流程中通過添加源/目標類型組件實現資料讀取,支援讀取MaxCompute、OSS等資料,詳情可參見組件參考:源/目標下具體組件文檔。本文以讀取MaxCompute資料為例。
已在MaxCompute建立表並匯入資料,詳情請參見建立並使用MaxCompute表。
本文以在test專案下建立heartdisease表為例,並匯入測試資料。
--建立表 CREATE TABLE IF NOT EXISTS heartdisease( age STRING COMMENT '對象的年齡。', sex STRING COMMENT '對象的性別,取值為female或male。', cp STRING COMMENT '胸部疼痛類型,痛感由重到輕依次為typical、atypical、non-anginal及asymptomatic。', trestbps STRING COMMENT '血壓。', chol STRING COMMENT '膽固醇。', fbs STRING COMMENT '空腹血糖。如果血糖含量大於120mg/dl,則取值為true,否則取值為false。', restecg STRING COMMENT '心電圖結果是否有T波,由輕到重依次為norm和hyp。', thalach STRING COMMENT '最大心跳數。', exang STRING COMMENT '是否有心絞痛。true表示有心絞痛,false表示沒有心絞痛。', oldpeak STRING COMMENT '運動相對於休息的ST Depression,即ST段壓值。', slop STRING COMMENT '心電圖ST Segment的傾斜度,程度取值包括down、flat及up。', ca STRING COMMENT '透視檢查發現的血管數。', thal STRING COMMENT '病發種類,由輕到重依次為norm、fix及rev。', `status` STRING COMMENT '是否患病。buff表示健康,sick表示患病。', style STRING); --本文僅為展示,直接匯入PAI公開的測試資料 INSERT INTO heartdisease select * from pai_online_project.heart_disease_prediction;
將讀資料表組件拖入右側畫布中,用於讀取MaxCompute表資料。
畫布中會自動產生一個名稱為讀資料表-1(名稱中的數字按畫布中相同組件拖入的先後順序,首次為1,以此類推)的工作流程節點。
在節點配置頁面配置來源資料表名,更多參數詳情請參見讀資料表。
在畫布中選中讀資料表-1節點,在右側節點配置頁面的表名中填寫對應的MaxCompute表名。本樣本填寫為
heartdisease
。說明跨MaxCompute專案(Project)讀取表資料時,表名需要使用
專案名.表名
格式(例如test2.heartdisease),並確認具有專案許可權。將右側的節點配置頁面切換到欄位資訊頁簽,查看此公開資料的欄位詳情。
資料預先處理
讀取資料後,通常需要對資料進行預先處理,以滿足訓練或預測模型輸入要求。Designer提供了豐富的資料預先處理和大模型資料處理組件。
此外,您可以使用SQL指令碼組件自訂待實現功能的SQL指令碼。例如,本文通過SQL指令碼對輸入特徵進行資料類型轉換,指令碼樣本如下:
select age,
(case sex when 'male' then 1 else 0 end) as sex,
(case cp when 'angina' then 0 when 'notang' then 1 else 2 end) as cp,
trestbps,
chol,
(case fbs when 'true' then 1 else 0 end) as fbs,
(case restecg when 'norm' then 0 when 'abn' then 1 else 2 end) as restecg,
thalach,
(case exang when 'true' then 1 else 0 end) as exang,
oldpeak,
(case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop,
ca,
(case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal,
(case status when 'sick' then 1 else 0 end) as ifHealth
from ${t1};
模型訓練
模型組件通常上遊接入預先處理後的資料,下遊接入預測或推理等組件。模型組件可能有一個或多個輸入/輸出端。將滑鼠懸浮至組件的各連接埠上可以查看連接埠類型,從而根據類型進行正確連線。
以羅吉斯迴歸二分類組件為例,其有2個輸出連接埠:
羅吉斯迴歸模型:訓練後的模型輸出連接埠,可作為預測等組件的模型結果輸入。
PMML:模型部署通常依賴PMML模型。例如,如果您需要通過預置的Processor(如PMML Processor)部署產生的模型,則需在支援產生模型的組件參數中選中是否產生PMML,再運行組件。
您也可以同時針對多個模型或相同模型配置不同參數進行訓練。例如,在LLM大語言模型端到端鏈路:資料處理+模型訓練+模型推理案例中您可以並行地對qwen-7b-chat和llama2-7b-chat兩個模型進行微調,然後使用同一批測試資料來比較它們推理後產生的結果。
模型預測或推理
模型訓練後,您可以串連預測或推理等組件,測試模型效果。
以預測組件為例,預測組件有2個輸入連接埠:
模型結果輸入:將模型訓練部分訓練好的模型作為輸入。
預測結果輸入:將(預先處理後的)測試資料作為輸入。
模型評估
部分模型提供了評估組件,您可以使用對應的評估組件通過相關指標對模型效果進行分析。
例如,機器學習提供了如下評估組件,您可以根據需要作為預測組件的下遊。
模型調試
調試運行
整個工作流程:單擊畫布左上方的
(運行)表徵圖,直接運行整個工作流程。當工作流程比較複雜時,建議您分模組運行某個節點或部分節點,以方便進行調試。
單個或局部組件:右鍵目標組件進行單個或局部節點運行,支援多種運行方式。
運行成功後對應組件上會顯示,失敗會顯示
,您可以按右鍵組件查看日誌及結果。
查看日誌及結果
查看資料和可視化分析:
組件運行成功後,您可以按右鍵組件選擇查看資料,查看產出資料。
對於部分組件,Designer支援將資料轉化為圖形和圖表,以直觀、易懂的方式展示複雜的資料和分析結果,協助您快速擷取關鍵資訊,識別趨勢和模式,從而更高效地進行分析和決策。您還可以單擊可視化分析或畫布上方的可視化表徵圖,進行可視化分析,詳情請參見可視化分析。
查看日誌:組件運行失敗時,您可以可按右鍵對應組件選擇查看日誌,排查具體失敗原因。
查看運行任務
單擊畫布右上方全部任務查看,查看所有歷史任務的運行詳情。在建模過程中,您的每次運行都會被記錄為一次歷史任務。每次運行涉及的節點、節點的配置、產出結果均會保留在歷史任務中。
如果需要進行版本復原,建議在復原之前查看歷史任務的詳情,並確認復原的版本是否正確。同時,復原前建議將最新的任務儲存並運行一次。如果復原後出錯,您可以再次復原至最新的任務狀態。
相關文檔
模型調試完成後,您可以將已訓練好的模型註冊為一個新的模型並進行管理,詳情請參見註冊及管理模型。
模型調試完成後,您可以對模型進行部署和線上預測,詳情請參見模型預測及部署。
Designer提供了更新EAS服務(Beta)組件,實現模型服務更新,詳情請參見線上模型服務定時更新。
支援通過DataWorks實現工作流程的離線調度,周期性地更新模型,詳情請參見使用DataWorks離線調度Designer工作流程。
更多組件請參見組件參考。