iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

實驗管理

實驗管理顧名思義就是 追蹤、筆記和分享每一次實驗的進度,可以參考下圖

https://ithelp.ithome.com.tw/upload/images/20230912/20161911qVuZCNAdfg.jpg

一個實驗通常包含以下幾項資訊

  • Input Data 是什麼?
  • Data 做了哪些 Preprocess,如語言模型的 tokenizor,甚至一些 Truncate/ Transformed 的額外資訊,通常這一系列的過程或叫做 Data Lineage,記得資料到給 Model Fit 之前做了哪些處理,甚至在 inference 時需要做哪些 Post processing
  • Model Hyperparameter 有哪些
  • 更進階一點會記錄 Tarining 中每次 Epoch 的 Loss 甚至一些額外資訊
  • 訓練完之後模型 Dump 下來的資訊,不管是粗暴的 Pickle 或是 ONNX 等資訊

用 Jupyter Notebook 來做實驗管理以上這些資訊是非常困難的,更難以用"檔案名稱" 來做管理,當然可以透過一個 Folder 來做管理,但這樣會需要做很多額外的功能來解析 Folder 內的資料以及內容,所以一個比較好的方式是去使用一些套件或是 Service 來做到,可以做到這 Service 的方式非常多,有很多都將野心放在整個 MLops 系統的跟蹤,但一開始主要先介紹一款專注於 "實驗管理" 的套件 WandB 全名 Wright & Bias

W and B

Weights & Biases(縮寫為 WandB)是一個機器學習實驗跟踪工具,它可以幫助用戶記錄和視覺化模型訓練過程中的數據。其特色功能如下: 非常推薦直接看他們的介紹影片

  1. 自動記錄: 自動記錄模型的超參數、性能指標、代碼版本等,不需要手動決定把哪些資料寫入
  2. 動態視覺化: Dashboard 直接顯示如 Loss, Accuracy 等的動態變化
  3. 模型版本控制: 留模型的每個版本,讓你可以隨時回溯到先前的模型,並與其他版本進行比較。
  4. 整合性 可以直接整合 TensorFlow、PyTorch 和 Keras 等等模型
  5. 共享筆記本

最後 W&B 還支援在自己的 Cloud 上部署,很適合不希望資料流出的團隊,並且整個專案都包裝成 Containor 很容易部署

其他常見實驗追蹤的工具

其他工具雖然也有提供實驗追蹤,但通常都是更全面的服務,以下我們簡介幾個

AWS SageMaker

Sagemaker Studio 和 Training 是透過 Config 和 Model 兩個模塊把整個訓練過程做紀錄,最近也有嘗試集成更多的 Dashboard 來將線訓練和部署過程,優點是如果你全部照他們的建議流程 (從 Processing 到 Inference),有很多相關的工具可以使用 (Data Wrangler, Databrew, Autopilot 等等) 缺點是功能其實很不穩定,而且要做異質整合 (部分用 AWS Sagemaker 部分用自己架設的環境) 需要花比較多的心力

MLFlow

這算是業界很流行的開源軟體,但是他開源的版本不是非常好控制,通常需要花一定的人力去開發所需功能,原本的 UI 介面也比較陽春,通常選這個選項的公司都會考慮 Databrick 開發的版本,如上提到的如果要跟其他雲服務做異質整合會踩到很多雷,但 MLFlow 本身已經跨出純實驗追蹤的範疇了,比起這裡列的所有選項,開源就是他最大的優勢,可以讓團隊根據自己的公司的架構來實踐需要的功能

TensorBoard

對於 TensorFlow 為基底的模型呈現很強大的視覺呈現,很多人會在訓練時使用,但他缺乏 MLOps 的其他功能,比較偏向個人或是小組取向的實驗,很容易堆積使用後即丟且不好管理的模型,但也是一個實驗追蹤的好工具

Neptune.ai

算是一套新的服務商,我都把他想成是類似 MLFlow 的雲端收費版本,有很多強大的介面也整合很多工具,最大的缺點就是貴 ... 但這可能也不是他的缺點

很多工具並沒有把自己定位在實驗管理,而是在服務整個 Machine Learning Life Cycle 的生態中,把實驗管理這塊做進去,可以依據自己的需求選擇

如何選擇

我會建議從以下幾個面向來做評估

  1. 可重現性與部屬方式: 先知道你的機器要運行在什麼地方,來看所選擇的框架與服務可否幫這你重現某一次的實驗結果並了解你部署的方式是否被框架支援
  2. 團隊合作文化:根據你的團隊型態了解適合你們的合作模式,如果是很小的團隊並且專注在實驗,有其他團隊支援賞線的部分,就不需要選太龐大難以控制的服務
  3. 可視化與觀測性: 最後就是他的追蹤與觀測方式是否可以讓你有效獲得資訊

上一篇
Day 7 Data Version Control
下一篇
Day 9 Data Processing Control
系列文
踏上 MLOps 之路:從 Applied Data Scientist 到 MLOps 的轉變與建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言