用暫停token重新訓練大模型,AI學會三思而后行
讓ChatGPT給出答案之前多想想步驟,就能提高準確率。
那么能不能省去提示詞,直接把這種能力內化在大模型里呢?
CMU與谷歌團隊的新研究,在訓練大模型時加入暫停token來實現這一點。
實驗中,8項評測成績提升,其中SQuAD的EM得分提高18%,CommonSenseQA提高8%,GSM8k中的推理任務也提高1%。
研究者Jack Hack表示,自己不久前就提出類似假設,很高興看到它被驗證。
英偉達工程師Aaron Erickson表示,是不是和人類說話時加入“嗯嗯啊啊”是一個道理?
預訓練微調都加入暫停token
整個研究基于一個簡單的想法:
在輸入序列后面追加一系列(暫停token),從而延遲模型輸出下一個token。
這可以給模型額外的計算時間來處理更復雜的輸入。
作者不僅在下游任務微調時引入,還在預訓練時就隨機在序列中插入,讓模型在兩階段都學習如何利用這種計算延遲。
預訓練階段,在語料庫中隨機插入一定比例的暫停token到輸入序列,進行標準的自回歸預訓練。但計算損失時會跳過暫停token的預測。
下游任務微調時,輸入中也追加一定數量的暫停 token,然后對目標序列進行自回歸預測,同時微調模型參數。
推理階段也追加相同數量的暫停token,但忽略模型輸出直到最后一個暫停token,然后開始提取答案。
實驗使用了標準的Transformer純Decoder模型,分為130M參數和1B參數兩個版本。
其中暫停token只增加了1024個參數,也就是它本身的embedding大小。
在9個不同任務上的實驗表明,僅在微調階段引入暫停token的效果并不明顯,有些任務不會提升。
但如果在預訓練和finetune階段都使用暫停token,大多數任務上都獲得顯著提升。
論文還探究了暫停token的數量、位置等關鍵超參數。發現對于不同的模型通常存在一個最優的數量。
最后作者也提出,這項工作也有不少局限性。
- 由于暫停token增加了模型計算量,與其他方法對比是否公平還有待討論
- 新方法需要重新預訓練,在實際應用還有一定困難
- 對具體工作機制還缺乏深入理解
- 推理時如果暫停token數量為0,模型表現仍然不佳
搜索引擎You.com的CEO表示,接下來是不是應該把所有提高人類認知表現的技巧都對大模型試一試?
現在已經有了“一步一步地想”和“深呼吸”。
也許下一個爆款論文就是教大模型帶著問題睡一覺或者更離譜的健康飲食、注意鍛煉。
論文地址:https://arxiv.org/abs/2310.02226