全部產品
Search
文件中心

Platform For AI:構建與調試模型

更新時間:Dec 31, 2024

Designer提供了豐富的建模組件,可視化地靈活構建和調試模型。本文以構建心臟病預測為例,介紹如何在Desigenr工作流程中進行具體的模型構建與調試。

前提條件

建立工作流程

模型構建

通常一個模型可以拆分為多個細分的節點(即組件)任務,通過節點任務的前後編排形成工作流程來最終實現模型預期效果。在建模前,建議您先拆分模型並規劃好細分的節點任務。通常建議一個節點完成一個最簡單的任務。模型構建總體流程如下:

  1. 在左側組件列表中搜尋或找到目標組件,將目標組件拖入畫布中。

    其中,在組件列表中有紫色標識的為Alink組件(例如下圖中的讀CSV檔案組件),除了具備普通組件的用法外還支援彙總成組,通過對組進行資源配置,提升執行效率和資源使用率,詳情請參見Alink組件

  2. 單擊目標節點,在介面右側進行組件參數配置。

  3. 通過連線將各個節點群組織成具有上下遊關係的工作流程。

    每個節點有一個或多個輸入/輸出端。將滑鼠懸浮至組件的各連接埠上,可以查看連接埠的資料類型,從而根據資料類型進行連線。

後續模型實際運行時,上遊節點會先運行,所有上遊節點均運行完成後,下遊節點才會觸發運行。

image

模型構建通常包含以下任務模組:

讀取資料

在工作流程中通過添加源/目標類型組件實現資料讀取,支援讀取MaxCompute、OSS等資料,詳情可參見組件參考:源/目標下具體組件文檔。本文以讀取MaxCompute資料為例。

  1. 已在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;
  2. 讀資料表組件拖入右側畫布中,用於讀取MaxCompute表資料。

    畫布中會自動產生一個名稱為讀資料表-1(名稱中的數字按畫布中相同組件拖入的先後順序,首次為1,以此類推)的工作流程節點。

  3. 在節點配置頁面配置來源資料表名,更多參數詳情請參見讀資料表

    在畫布中選中讀資料表-1節點,在右側節點配置頁面的表名中填寫對應的MaxCompute表名。本樣本填寫為heartdisease

    說明

    跨MaxCompute專案(Project)讀取表資料時,表名需要使用專案名.表名格式(例如test2.heartdisease),並確認具有專案許可權。

  4. 將右側的節點配置頁面切換到欄位資訊頁簽,查看此公開資料的欄位詳情。

資料預先處理

讀取資料後,通常需要對資料進行預先處理,以滿足訓練或預測模型輸入要求。Designer提供了豐富的資料預先處理大模型資料處理組件。

image

此外,您可以使用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,再運行組件。

image

您也可以同時針對多個模型或相同模型配置不同參數進行訓練。例如,在LLM大語言模型端到端鏈路:資料處理+模型訓練+模型推理案例中您可以並行地對qwen-7b-chat和llama2-7b-chat兩個模型進行微調,然後使用同一批測試資料來比較它們推理後產生的結果。

image

模型預測或推理

模型訓練後,您可以串連預測或推理等組件,測試模型效果。

預測組件為例,預測組件有2個輸入連接埠:

  • 模型結果輸入:將模型訓練部分訓練好的模型作為輸入。

  • 預測結果輸入:將(預先處理後的)測試資料作為輸入。

image

模型評估

部分模型提供了評估組件,您可以使用對應的評估組件通過相關指標對模型效果進行分析。

例如,機器學習提供了如下評估組件,您可以根據需要作為預測組件的下遊。

image

模型調試

調試運行

  • 整個工作流程:單擊畫布左上方的運行(運行)表徵圖,直接運行整個工作流程。當工作流程比較複雜時,建議您分模組運行某個節點或部分節點,以方便進行調試。

  • 單個或局部組件:右鍵目標組件進行單個或局部節點運行,支援多種運行方式。

    image

運行成功後對應組件上會顯示image,失敗會顯示image,您可以按右鍵組件查看日誌及結果

查看日誌及結果

image

  • 查看資料和可視化分析:

    組件運行成功後,您可以按右鍵組件選擇查看資料,查看產出資料。

    對於部分組件,Designer支援將資料轉化為圖形和圖表,以直觀、易懂的方式展示複雜的資料和分析結果,協助您快速擷取關鍵資訊,識別趨勢和模式,從而更高效地進行分析和決策。您還可以單擊可視化分析或畫布上方的可視化表徵圖,進行可視化分析,詳情請參見可視化分析

  • 查看日誌:組件運行失敗時,您可以可按右鍵對應組件選擇查看日誌,排查具體失敗原因。

查看運行任務

單擊畫布右上方全部任務查看,查看所有歷史任務的運行詳情。在建模過程中,您的每次運行都會被記錄為一次歷史任務。每次運行涉及的節點、節點的配置、產出結果均會保留在歷史任務中。

image

image

說明

如果需要進行版本復原,建議在復原之前查看歷史任務的詳情,並確認復原的版本是否正確。同時,復原前建議將最新的任務儲存並運行一次。如果復原後出錯,您可以再次復原至最新的任務狀態。

相關文檔