算法工程師往往在使用算法的過程中要不斷地調整參數去找到最好的效果,俗稱“調參民工”。在不斷的調參過程中,會產生各種各樣的模型,如何記錄好這些參數與模型效果對應的關係,往往另算法工程師很頭疼。所以大家都在呼喚一款實用的模型管理工具,因爲有了版本管理機制才能更好的做效果比對,甚至多人協同開發。
今天就介紹一款開源的模型管理工具-DVC:https://dvc.org/doc/tutorials/get-started/experiments
1 模型版本控制的誤區
在設計模型版本管理功能的時候有一個誤區,就是隻管理模型文件。模型版本管理這件事,要從整個機器學習pipline的角度去思考,要考慮到每次訓練的數據可能不同、算法參數可能不同、評價指標metrics可能不同。
所以模型管理更是一個機器學習全鏈路工程的管理,這一點DVC和MLflow的設計理念都是比較好的。
2 DVC的設計理念
DVC是一個創業團隊維護的開源模型管理SDK,跟客戶的交互基本上是通過命令行的形式,只要“pip install dvc”就可以快速安裝。
DVC可以看做是對git的一種二次封裝,如下圖所示,dvc checkout底層調用的就是git checkout
DVC把數據+算法腳本+Metrics當成一次代碼checkout,這樣就可以天然的利用git的能力進行版本管理。
3 DVC具體使用
(1)創建環境
(2)上傳數據
(3)配置數據,設置訓練和驗證集
(4)設置metrics和生成結果
(5)產出結果
(6)不同版本的模型效果比較
baseline-experiment和bigrams-experiment是不同版本的模型,可以通過checkout不同的版本去控制不同的訓練數據和模型參數版本。