機器學習維運與生產
資料版本控制(data version control)
Git 讓程式碼可再現,靠的是給專案的每一個狀態一個可回溯、不可變的雜湊。資料版本控制把這個承諾延伸到模型學習所依據的資料集——那些對 Git 來說太大、卻對再現性同等吃重的資料。目標是任何過往實驗都能被精確重建,因為它的資料快照可依版本定址,於是「這個模型是怎麼訓練的」這個問題,永遠有一個完整且可驗證的答案,而不是一個最佳猜測。
由於原始資料集可達數 TB,常見的設計是把大檔案存在物件儲存中,只把輕量、以內容雜湊定址的指標與中繼資料連同程式碼一起納入版本控制。提交一份資料集會記錄其內容的雜湊;檢出某個版本則精確還原那些位元組。這帶來以內容定址、去重的快照,可廉價分支以比較不同資料變體,以及程式碼提交、資料版本與所得模型三者之間的緊密耦合,共同闔上了單靠程式碼版本控制無法閉合的再現性迴圈。
這份紀律在三個地方獲得回報:幾個月後重現某個結果、對兩個資料集版本做差異比對以解釋指標為何變動,以及滿足要求確切訓練語料的稽核。摩擦在於營運層面——龐大的二進位快照耗費儲存、需要刻意的保留政策——但另一條路,也就是在一份此後已被原地改動的資料集上訓練出的模型,是一個沒有人能重建或信賴的結果。
又稱
另見