No Fine-Tuning, Only Prefix-Tuning
說起fine-tuning,大家再熟悉不過了,NLP和CV領域基本都是各種預訓練模型了。
使用預訓練模型最重要的一步就是fine-tuning,因為下游任務是多種多樣的,所以每種下游任務都要有個副本,并且finetune會改變所有的參數。這篇論文<Prefix-Tuning:Optimizing Continuous Prompts for Genreration>就提出一個輕量級的替代方式,使得語言模型參數固定,優化一個較小的特定任務的向量(論文叫prefix).該方案是受到最近大火的Prompting的啟發,僅僅用0.1%額外參數,就可以獲得更好的表現。
問題定義
生成式任務就是給個上下文x,然后輸出一個序列的tokens.這篇論文就聚焦兩個任務,一個是table-to-text,x就是一個表格的數據,y就是文本描述.在總結任務中,x就是一篇文章,y就是一小段總結。
假設我們有自回歸模型GPT(transformer的結構,12層),讓z = [x;y],聚合x和y,Xidx是x的索引,Yidx是y的索引,hi(j)是transformer第j步的輸出,hi = [hi(1),...,hi(n)],生成hi的輸入是zi和h<i為下式:
hi用來計算下一個token的概率分布:
p(zi+1 | h <=i) = softmax(Whi(n))
還有一種生成式架構是encoder-decoder,就是BART,大家也很熟不贅述,同GPT比就是BART的encoder是雙向的,decoder是單向的。如下圖所示:
Prefix-Tuning
prefix-tuning在生成式任務中可以替代fine-tuning,方法就是在自回歸模型前加個prefix,z=[PREFIX;x;y]或者再encoder和decoder前都加prefix,z=[PREFIX;x;PREFIX';y],如問題描述中的圖所示。Pidx表示prefix中的索引,hi由下式所示:
這里我們固定GPT的參數,只會訓練prefix中的參數,很明顯,對于非prefix的token,都會依賴prefix的hi。論文中提到,直接更新prefix的參數會導致優化的不穩定,因此會在prefix上加個mlp的映射:
參考文獻:
No Fine-Tuning, Only Prefix-Tuning
總結
以上是生活随笔為你收集整理的No Fine-Tuning, Only Prefix-Tuning的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP中对困惑度感到困惑?
- 下一篇: 搜索算法相似度问题之BM25