近日,復旦大學邱錫鵬教授在知乎上介紹了一個調參利器——fitlog,fitlog原本是作為fastNLP的一部分開發,後來分為一個單獨項目。此外,他還分享了一篇使用fitlog 輔助 fastNLP 進行科研的文章。
關於fitlog的簡潔版說明如下:
- Tabular顯示實驗結果,方便不同超參數之間的對比。以下一行是一次實驗。
(1.1) 支持group操作,方便查看某種特定數據集或參數的性能
(1.4) 支持針對某條實驗自定義備忘
(1.5) 支持前端加入別人的實驗performance,再也不用一邊看paper一邊check是否已經超過sota結果。
(1.6) 支持計算平均值、標準差,還有比這個更實用的嗎?
(1.7) 實驗結果不理想?我們支持前端操作刪除、隱藏記錄
2、想要復現實驗結果,超參就夠了????No, No, No. 作為一線煉丹師,我們深知調參過程有些神來之筆,例如加入Layer normalization帶來的神奇效果並不能很容易體現在超參數中,所以fitlog支持在後臺為你自動git commit代碼(我們藉助git進行代碼管理,但與開發者自己管理的git不衝突,是並行的),需要回退到某次實驗的代碼,直接前端點擊,回退,搞定。exactly復原結果不是夢(是的,我們甚至可以幫你管理隨機數種子,但pytorch等深度學習框架的本身的隨機性無法解決)。
3、 茫茫的超參,哪個才是重要的?經過一夜的搜索,哪些參數搜索還不夠?你可能需要這樣的可視化。(每條線是一次實驗,最左側是dev上的性能)
4、fitlog是架構無關的,不管tensorflow還是pytorch都可以使用,不管是cv還是nlp也都支持。如果是NLP的任務,配合我們的fastNLP框架,只需要增加三五行代碼便可以實現metric,loss的自動記錄。
當然fitlog也不是十全十美的,對標其它的類似框架,我們為了輕量級,以下的東西目前沒有支持:
- 不支持保存model輸出的圖片,但是支持查看訓練過程中的文本輸出。
- 不支持除了loss與metric以外的曲線的展示。
原文鏈接:
https://www.zhihu.com/question/384519338/answer/1181186086
《使用fitlog 輔助 fastNLP 進行科研》鏈接:
https://fastnlp.readthedocs.io/zh/latest/tutorials/extend_3_fitlog.html
fitlog開源地址:
https://github.com/fastnlp/fitlog