今天的文章將接續昨天的內容,說明具體來說,如何透過 HPE MLDM 讓資料前處理工作自動化,以及使用內建的版控功能,管理大量資料與前處理程式。
接著我們就實際使用 MLDM,對股票的歷史資料進行前處理,來計算出幾項技術指標,並善用其版控功能來還原不同版本的資料。在範例中我們從證交所下載元大台灣卓越50證券投資信託基金(就是臺灣老字號的 ETF 0050)的日成交資訊,來計算出幾個常用的技術指標,操作以下 6 個步驟:
在操作前請先到 GitHub 下載操作需要的檔案,並且依照 HPE MLDM 的安裝流程進行完整的安裝。
開啟瀏覽器,進入 http://localhost:80 (如果在安裝過程中,有將 httpPort 設定為其他值,請將 80 改成實際使用的值)。畫面中看到的就是 MLDM console UI,也就是其提供的使用者介面(User Interface, UI),如下圖。
圖 1:MLDM console UI。因為還沒加入 Project,這邊只看到預設的「default」,每個 Project 的卡片都顯示其狀態、建立時間以及描述。
MLDM 有三個最重要,同時也是一定會使用的元素:
接著開啟終端機,輸入並執行以下指令:
(mldm) aif@aif % pachctl create project stock-price-preprocess
(mldm) aif@aif % pachctl config update context --project stock-price-preprocess
editing the currently active context "http://localhost:80"
接著回到 MLDM console UI 頁面,就會看到名為「stock-price-preprocess」的專案出現在畫面中,當然也可以透過按下 Console 頁面右上方的「Create Project」,透過圖形化介面來建立。
圖 2:MLDM console UI 的 Projects 頁面。
建立好 Project 之後,我們還需要建立一個名為「raw」,用來存放原始資料的 Repository,建立方式如下:
(mldm) aif@aif % pachctl create repo raw
一樣回到 MLDM console UI,點擊「stock-price-preprocess」卡片右上方的「View Project」,在左側點一下「Repositories」,就能看到目前 Project 底下有哪些 Repository。左側欄位還有許多不同功能,比較常用的有:
圖 3:Project 底下的 Repositories 頁面。
執行以下指令來建立 Pipeline:
(mldm) aif@aif % pachctl create pipeline -f preprocess.yaml
指令執行後不會輸出資訊,所以我們回到 MLDM console UI,在左側點一下「DAG」就會看到名為「preprocess」的 Pipeline。每個 Pipeline 的卡片呈現了目前這個 Pipeline 的任務以及狀態,另外還有一個重要的「Output」,專門用來存放這個 Pipeline 輸出的資料的 Repository,這個 Repository 也可以是其他 Pipeline 的輸入 Repository。
MLDM 的 Pipeline 藉由 JSON 或 YAML 檔來設定,例如指令的後段指定的「preprocess.yaml」。我們看一下這份檔案的內容:
pipeline: # Pipeline 設定
name: preprocess # Pipeline 名稱
input: # 輸入資料的設定
pfs: # Pachyderm File System 的設定
repo: raw # 輸入的 Repository 名稱
glob: "/*" # 檔名的篩選邏輯,同 Python 的 glob 用法
transform: # 要做的前處理
image: yusiangwu/mldm-talib:1.0 # 使用的映像檔
cmd: # 要執行的指令與參數
- python
- /work/preprocess.py
autoscaling: true # 是否允許自動擴展
MLDM 也提供 Pachyderm Pipeline System (PPS) 對 Pipeline 進行版控,關於這方面的說明請見 MLDM 官方文件的「Intro to Pipelines」章節。
明天的文章會再聊聊從 Repository 上傳、下載資料和自動化的細節,如果想要一次看完也可以下方點選完整內容搶先看,今天就先做到這裡!
完整內容 >> https://bit.ly/3Yl8WEx
Line 官方帳號,看最新技術文章:https://user137910.pse.is/aif2024ironman
參考資料
MLOps 工具介紹(一):常見的三種模型實驗管理工具 /mlops-model-management-tools/
Pachyderm Docs/Home/Latest/Get Started/First-Time Setup https://mldm.pachyderm.com/latest/get-started/first-time-setup/
Pachyderm Docs/Home/Latest/Learn/Intro to Pipelines https://docs.pachyderm.com/latest/learn/intro-pipelines/
用 MLDE 平台實作 PyTorch 卷積神經網路模型 /hpe-mlde-unboxing1/
Pachyderm Docs/Home/Latest/Integrate/JupyterLab https://docs.pachyderm.com/latest/integrate/jupyterlab-extension/
Pachyderm Docs/Home/Latest/Integrate/Determined https://docs.pachyderm.com/latest/integrate/determined/