LoRA: 大語言模型個性化的最佳實踐

出品人: Towhee 技術團隊

作者:王翔宇


大型語言模型(LLM)在今年獲得了極大的關注。在以往,預訓練+微調(finetuning)成爲了讓模型適配於特定數據的最佳範式。然而隨着大型模型的出現,這種完全微調(重新訓練所有模型參數)將變得越來越不可行。例如,如果使用GPT-3 175B,部署獨立的經微調的模型實例(每個實例都有175B個參數)成本過高。在2021年,微軟提出了一個方法叫LoRA(低秩適應),在大模型時代越來越受到重視,並且帶來了非常好的效果。該方法凍結預訓練模型的權重,並將可訓練的秩分解矩陣注入到Transformer體系結構的每個層中,從而大大減少了下游任務所需的可訓練參數數量。相對於使用Adam算法微調的GPT-3 175B模型,LoRA可以將可訓練參數數量降低10,000倍,GPU內存需求減少3倍。此外,LoRA在RoBERTa、DeBERTa、GPT-2和GPT-3模型的模型質量方面表現與微調相當或更好,儘管它具有較少的可訓練參數,更高的訓練吞吐量,並且不像適配器(adapters),不會增加推理延遲。


LoRA's reparametrization: only train A and B.


Performance of RoBERTa pretrained with/without LoRA


這個實驗結果很好地說明了這個算法的有效性。作者使用了RoBERTa模型在各個下游任務做finetune。FT就是使用全部參數進行訓練,BitFit是隻訓練bias vector凍結住其他全部的權重。可以看出除了完全finetune,幾種其他適配方法所訓練的參數量都比較小。而LoRA可以訓練較少的參數得到更好的結果。


LoRA不僅在NLP可以證明自己是很有效的辦法,因爲現在越來越多的算法都是基於transformer開發,而這個方法針對transformer非常容易適配。現在很火的stable-diffusion也已經被LoRA所攻陷,讓大部分只擁有有限算力的用戶可以快速finetune出一個針對自己數據所使用的LoRA模型。隨着大模型越來越受到重視,成爲各種任務的基線,相信這個方法會成爲大模型時代的最常規的操作。


相關資料:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章