深度學習刷SOTA的trick大盤點

MLNLP

(

機器學習演算法與自然語言處理

)社群是國內外知名自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。


社群的願景是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。

轉載自 | 極市平臺


作者 | 李國躉
來源 | https://www.zhihu.com/question/540433389
  1. R-Drop:兩次前向+KL loss約束
  2. MLM: 在領域語料上用mlm進一步預訓練 (Post-training)
  3. EFL: 少樣本下,把分類問題轉為匹配問題,把輸入構造為NSP任務形式.
  4. 混合精度fp16: 加快訓練速度,提高訓練精度
  5. 多卡ddp訓練的時候,用到梯度累積時,可以使用no_sync減少不必要的梯度同步,加快速度
  6. 對於驗證集或者測試集特別大的情況,可以嘗試多卡inference,需要用的就是dist.all_gather,對於非張量的話也可以用all_gather_object
  7. PET: 少樣本下,把分類轉為mask位置預測,並構造verbalizer,參考EACL2021. PET
  8. ArcFaceLoss:雙塔句子匹配的loss把NT-Xent loss改成arccos的形式,參考ACL2022. ArcCSE
  9. 資料增強在zero shot x-lingual transfer:code switch,machine translation..記得最後加一致性loss,參考consistency regularization for cross lingual finetuning
  10. SimCSE:繼續在領域語料上做simcse的預訓練
  11. Focal loss: 不平衡的處理
  12. 雙塔遲互動:maxsim操作:query和doc的每個token表徵算相似度,取最大相似度再求和。速度和精度都有一個很好的平衡,參考colbert
  13. 持續學習減輕遺忘:EWC方法+一個很強的預訓練模型效果很不錯。就是加一個正則讓重要引數遺忘不太多,重要性用fisher資訊度量。
  14. 對抗訓練:FGM,PGD,能提點,就是訓練慢,
  15. memory bank增大bsz,雖然我感覺有時候有點雞肋
  16. PolyLoss: -logpt + eps * (1-pt) 效果存疑,反正我試了沒啥效果,有人試過效果不錯
技術交流群邀請函
△長按新增小助手
掃描二維碼新增小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/Pytorch等技術交流群

關於我們

MLNLP社群 是由國內外自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名自然語言處理社群,旗下包括  萬人頂會交流群、AI臻選匯、MLNLP英才匯  以及  AI學術匯  等知名品牌,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。

相關文章