譯者 | 朱先忠
審校 | 重樓
簡介
當涉及到大型語言模型時,微調可能是人們討論最多的技術方面的內容之一。大多數人都知道,訓練這些模型是非常昂貴的,需要大量的資本投資;所以,看到我們可以通過采用現有的模型并用自己的數據對模型進行微調,從而創建一個具有自己特色的模型,這的確是一件令人興奮的事情。
當前,已經存在多種方法可以對模型進行微調,但目前最流行的方法之一是論文《LoRA:大型語言模型的低階適配》(https://arxiv.org/pdf/2106.09685)中討論的LoRA方法(Low Rank Adaptation,即低階適配,縮寫為“LoRA”)。
在我們深入研究LoRA背后的機制之前,我們需要先來了解一些矩陣有關的背景知識和微調機器學習模型的一些基礎內容。
矩陣相關背景術語
實際上,所有的機器學習模型都將其權重存儲為矩陣形式。因此,了解一些線性代數知識有助于獲得對正在發生的事情的直覺認識。
從一些最基礎的內容開始,我們可以創建一個如下圖所示的由行和列組成的矩陣:
當然,行、列或兩者都很多時,矩陣所占用的數據就越多。有時,當行和/或列之間存在某種數學關系時,我們就可以采取一些措施,使得存儲這種矩陣所需的空間進一步減少。類比一下的話,這類似于一個函數所占用的空間比它所代表的所有坐標點要小得多。
請參閱下面的示例,了解可以縮減為僅剩下1行的矩陣。這表明原始的3x3矩陣的秩為1。
因此,當一個矩陣可以像上面那樣被約簡時,我們說它的秩比不能這樣被約簡的矩陣的秩低。任何秩較低的矩陣都可以擴展回較大的矩陣,如下所示:
微調知識
要對模型進行微調,您需要一個高質量的數據集。例如,如果你想微調汽車聊天模型,那么你需要一個包含數千個關于汽車的高質量對話的數據集。
創建數據后,您將獲取這些數據并在模型中運行它們,以獲得每個數據的輸出。然后,將此輸出與數據集中的預期輸出進行比較,并計算兩者之間的差異。通常,使用類似交叉熵的函數(突出顯示2個概率分布之間的差異)來量化這種差異。
現在,我們接受損失值并使用它來修改模型權重。我們可以把這一過程看作是創建一個新的ΔW矩陣,其中包含我們想讓Wo矩陣知道的所有變化。計算出權重后,我們就可以決定如何改變這些權重值,以便其在我們的損失函數中給出一個更好的結果。為此,我們想辦法通過反向傳播來調整權重。
如果有足夠興趣的話,我還會單獨寫一篇關于反向傳播背后的數學邏輯的博客文章,因為這是很有趣的事情。目前,我們可以簡單地說,計算權重變化所需的計算成本非常高昂。
LoRA方法
總體來看,LoRA技術始終圍繞著一個關鍵的假設:雖然機器學習模型的權重矩陣具有較高的秩,但在微調過程中創建的權重更新矩陣具有較低的內在秩。換言之,我們可以用一個比從頭開始訓練所需的矩陣小得多的矩陣來微調模型,而不會看到任何重大的性能損失。
因此,我們可以這樣設置我們的基本方程:
原論文中的方程3
讓我們來分析一下上面方程中的每一個變量的含義。其中,h代表微調后的權重值。Wo和ΔW與以前的含義相同,但在此,作者創造了一種定義ΔW的新方法。為了找到ΔW,作者構造了兩個矩陣:A和B。其中,A是一個與Wo具有相同列維度并開始填充隨機噪聲的矩陣,而B具有與Wo相同的行維度并初始化為所有元素均為0的矩陣。這些維度是很重要的,因為當我們將A和B相乘時,它們將創建一個維度與ΔW完全相同的矩陣。
原論文中的圖1
在微調過程中,矩陣A和B的秩是一個超參數集。這意味著,我們可以選擇秩1來加快最大訓練量(同時仍更改為Wo),或者增加秩大小,從而以更大的成本提高性能。
使用LoRA進行微調
現在,回到我們以前的圖像,讓我們看看當使用LoRA技術時有關計算是如何發生變化的。
請記住,微調意味著創建ΔW矩陣,該矩陣包含我們對Wo矩陣的所有更改。作為一個簡單示例,假設A和B的秩均為1,維度為3。因此,我們得到了如下圖片:
因為矩陣中的每個單元都包含一個可訓練權重;所以,我們立即就可以明白為什么LoRA的功能如此強大:我們已經從根本上減少了需要計算的可訓練權重的數量。因此,雖然尋找單個可訓練權重的計算通常保持不變,但是因為我們計算的次數要少得多,所以我們節省了大量的計算和時間。
結論
當前,LoRA技術已經成為微調大數據模型的行業內的標準方法。即使是擁有巨大資源的公司也認為LoRA是改進其模型的一種具有成本效益的方法。
展望未來,一個有趣的研究領域就是如何找到這些LoRA矩陣的最優秩。現在的計算方案中,它們作為超參數的方式使用,但是如果存在一個理想的超參數的話,就可以節省更多的時間。此外,由于LoRA仍然需要使用高質量的數據;因此,另一個頗有前途的研究領域就是尋找LoRA方法的最佳數據組合。
雖然流入人工智能的資金是巨大的,但是,高支出并不總是意味著總會有高回報。一般來說,公司的錢花得越長遠,就越能為客戶創造更好的產品。因此,作為一種極具成本效益的改進產品的方式,LoRA理所當然地成為了機器學習領域的固定投資的一部分。
因此,現在正是一個激動人心的發展時期……
參考文獻
- 【1】Hu, E.等人,“LoRA: Low-Rank Adaptation of Large Language Models” (2021),arXiv。
- 【2】Hennings, M.等人,“LoRA & QLoRA Fine-tuning Explained In-Depth” (2023),YouTube。
譯者介紹
朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。
原文標題:Understanding Low Rank Adaptation (LoRA) in Fine-Tuning LLMs,作者:Matthew Gunton
鏈接:https://towardsdatascience.com/understanding-low-rank-adaptation-lora-in-fine-tuning-llms-d3dd283f1f0a。