MLOps 一直是我想深入了解的領域,而這次的鐵人賽,成了我實際動手學習與實作的最佳機會。為了更有系統地掌握相關技術,我選擇從一個強大且活躍的開源專案 —— Flyte 開始,並延伸學習了多個在業界中常見的工具與框架,如 Ray、Dask、MLflow 以及 Dolt。
本系列將記錄我從使用者的角度出發,一步步學習、實驗與整合這些工具的過程,並分享在這段旅程中我所踩過的坑與收穫的知識,希望能幫助其他對 MLOps 感興趣的朋友,少走一些彎路。
- Flyte:Kubernetes 原生、可擴展的工作流(workflow)引擎,讓資料與機器學習流程自動化變得簡單
- 透過 Flyte Sandbox 環境,學習其基本功能與核心概念:
- 啟用 Sandbox 環境,介紹 Workflow 與 Task 的使用方式、註冊流程與相互參考。
- 深入探討各類型workflow。
- Launch Plan 的使用與設定。
- Task 的基本概念與實作方式。
- ImageSpec 的用途與配置方式。
- Flyte 支援的資料格式(如:File、Directory、StructuredDataset)。
- Flyte 對機器學習框架資料格式的支援(如:PyTorch、TensorFlow 等)。
- 解析 Flyte Sandbox 所使用的 Helm Chart 設定。
- 使用 Flyte Binary 進行部署實作。
- Ray:彈性強大、易於上手的分散式機器學習訓練平台
- 介紹 Ray 的基本概念與應用場景。
- 建立 KubeRay Operator 並分析 Ray 的 CRD(Custom Resource Definition)。
- 透過 Flyte 建立 Ray Job,實現分散式模型訓練。
- MLflow:一站式的模型追蹤、管理與部署平台
- 介紹 MLflow 的架構與功能模組。
- 架設 MLflow Tracking Server,實作模型管理環境。
- 搭配 Flyte 訓練模型,並將結果回報至 MLflow 進行追蹤與版本管理。