實驗追蹤(experiment tracking)
/ ek-SPER-uh-ment TRAK-ing /
實驗追蹤,是這樣一種做法:為每一次訓練運行,把你究竟做了什麼、又發生了什麼,原原本本地記下來——你選的設置、用的資料和程式碼、得到的結果。造一個好模型,意味著要嘗試幾十乃至上百種變體:不同的學習率、不同的資料、不同的架構。沒有記錄,這很快就亂成一鍋粥。實驗追蹤,就是機器學習的實驗記錄本,為每一次嘗試忠實地記上一筆日記,好讓你真能從這一大堆裡學到東西。
具體說來,一個追蹤工具會記下每次運行的設置(所謂「超參數」)、它用了哪份資料和哪個版本的程式碼、以及它在每項指標上得了多少分——再讓你把多次運行並排比較。這回答了一個縈繞每個機器學習從業者心頭的問題:「上週二我得了個絕佳的結果——我到底做了啥?」沒有追蹤,那份知識便蒸發掉;最好的結果變得無法復現,你也分不清某個改動到底有沒有幫上忙,因為一下子變動的東西太多了。
為什麼這很重要:追蹤把瞎撲騰變成了科學。它讓結果可復現、讓比較公平、讓進步是真實的,而不是隔著玫瑰色眼鏡回憶出來的。誠實的提醒是:它是一份紀律,而非魔法——它只能捕捉你記得去記的東西,而一次被追蹤的實驗,可信到什麼程度,全看其背後的嚴謹。把一切都記下來、卻從不控制變數,到頭來你不過是為一個雜亂、沒有定論的過程,留了一份整齊的記錄。工具幫得上忙;那份謹慎的實驗思維,仍然得靠你自己。
在 40 次被自動記錄下來的訓練運行中,一張圖把準確度對學習率畫了出來。第 23 次跑高踞頂端;一點之下,它確切的設置、資料版本、程式碼提交一覽無餘——於是團隊能隨時復現它,而不必去猜是什麼讓它與眾不同。
最好的那次運行,唯有當你能復現它時才有用——這正是記錄為你換來的東西。
追蹤記錄的是「發生了什麼」;它並不讓實驗變得嚴謹。要是你一次改了五樣東西,再完美的日誌也告訴不了你究竟是哪一樣起了作用。靠得住的結論,需要的是受控的比較,而不只是詳盡的記錄。