用cs6怎么做網(wǎng)站微信如何引流推廣精準加人
在自然語言處理(NLP)的快速發(fā)展中,大模型(LLMs)的微調(diào)技術(shù)一直是研究的熱點。最近,一篇名為《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》的論文提出了一種新穎的方法,通過在訓(xùn)練過程中向嵌入向量添加噪聲來提升模型的微調(diào)性能。這一發(fā)現(xiàn)為LLMs的進一步優(yōu)化提供了新的思路。
傳統(tǒng)的LLMs通常在原始網(wǎng)絡(luò)數(shù)據(jù)上進行訓(xùn)練,然后針對較小但經(jīng)過精心策劃的指令數(shù)據(jù)集進行微調(diào)。這種指令微調(diào)對于發(fā)揮LLMs的潛力至關(guān)重要,而模型的實用性很大程度上取決于我們?nèi)绾纬浞掷眠@些小型指令數(shù)據(jù)集。NEFTune的核心思想是在微調(diào)過程中的前向傳播階段向訓(xùn)練數(shù)據(jù)的嵌入向量添加隨機噪聲。這一簡單的技巧可以在沒有額外計算或數(shù)據(jù)開銷的情況下顯著提升指令微調(diào)的結(jié)果。實驗表明,使用噪聲嵌入對原始LLM(如LLaMA-2-7B)進行微調(diào)時,其在AlpacaEval上的性能從29.79%提升至64.69%,顯示出約35個百分點的顯著提升。
NEFTune(Noisy Embedding Instruction Fine Tuning)是一種新穎的微調(diào)技術(shù),它通過在訓(xùn)練過程中向嵌入向量添加噪聲來增強語言模型的性能。這種方法的核心思想是利用隨機噪聲作為一種正則化手段,以減少模型對訓(xùn)練數(shù)據(jù)的過度擬合,并提高其泛化能力。以下是NEFTune方法的詳細說明:
噪聲嵌入的引入
在傳統(tǒng)的語言模型微調(diào)中,模型的嵌入層會將輸入的詞匯映射為固定長度的向量,這些向量隨后會被用來生成模型的輸出。NEFTune方法在這一過程中引入了隨機噪聲,具體做法是在嵌入向量的前向傳播過程中添加一個隨機噪聲向量。
噪聲的生成與縮放
NEFTune生成的噪聲向量是通過獨立同分布(iid)均勻分布采樣得到的,然后通過一個縮放因子
對整個噪聲向量進行縮放。其中,L 是序列長度,d 是嵌入維度,而α 是一個可調(diào)參數(shù)。
這個縮放規(guī)則借鑒了對抗性機器學(xué)習(xí)文獻中的噪聲縮放規(guī)則,它會產(chǎn)生一個期望歐幾里得范數(shù)約為 的隨機向量。
訓(xùn)練過程
NEFTune的訓(xùn)練過程從數(shù)據(jù)集中采樣一個指令,將其標記轉(zhuǎn)換為嵌入向量。然后,與標準訓(xùn)練不同的是,NEFTune會向這些嵌入向量添加一個隨機噪聲向量。具體來說,算法的步驟如下:
- 初始化從預(yù)訓(xùn)練模型中得到的模型參數(shù)?θ。
- 重復(fù)以下步驟直到滿足停止條件或達到最大迭代次數(shù):
- 從數(shù)據(jù)集?D?中采樣一個minibatch的數(shù)據(jù)和標簽(Xi?,Yi?)。
- 將輸入Xi??轉(zhuǎn)換為嵌入向量?
。
- 采樣一個噪聲向量?,并將其縮放后加到嵌入向量上,得到噪聲嵌入
。
- 使用噪聲嵌入
進行預(yù)測
。
- 根據(jù)損失函數(shù)?
更新模型參數(shù)θ。
實驗效果
實驗結(jié)果表明,NEFTune在多個數(shù)據(jù)集上顯著提升了模型的文本質(zhì)量。例如,在7B規(guī)模的模型上,AlpacaEval的平均提升為15.1%。此外,即使是經(jīng)過多輪RLHF調(diào)整的高級聊天模型(如LLaMA-2-Chat),也能通過NEFTune獲得額外的性能提升。
結(jié)論
NEFTune通過在嵌入層引入噪聲,作為一種數(shù)據(jù)增強手段,有效地提高了語言模型在指令微調(diào)任務(wù)上的性能。這種方法簡單易行,且不需要額外的計算或數(shù)據(jù)開銷,為LLMs的微調(diào)提供了一種有效的改進策略。
論文鏈接:http://arxiv.org/pdf/2310.05914