?? 一直以來,Llama模型被認為是AI社區(qū)最強大的開源模型,國內外眾多的開源模型均是在其基礎上二次訓練/開發(fā)而來,如Alpaca模型、BELLEE模型、Guanaco模型、Vicuna模型。但由于開源協(xié)議問題,Llama模型一直無法被免費商用。上周,Meta AI 團隊開源了最新的大模型Llama2,其能力比肩ChatGPT,并且可免費商用,開源地址見 這里,示例代碼見 這里,為大模型的開源再次推波助瀾。值得一提的是,Meta AI 團隊不僅開源了Llama 2的預訓練模型,同時發(fā)布了Llama 2的論文詳細介紹了Llama 2模型的訓練過程和微調過程,本文將對Llama 2的論文進行解讀,學習Llama 2模型微調中的核心方法。
簡介
??在介紹詳細工作之前,Meta AI 團隊首先將Llama 2 模型的能力進行其他開源模型和比原模型進行了對比,如圖1所示??梢钥闯觯贛eta AI 團隊的測試中,在模型能力方面,Llama 2 模型的能力已經(jīng)比肩ChatGPT;在模型的能力和安全性綜合能力方面,Llama 2則要更勝一籌。
??論文中介紹到,經(jīng)過Meta AI 對大模型的實用性和安全性的測試對比,此次發(fā)布的Llama 2是目前開源模型中效果最好的模型,并且可以免費商業(yè)。本次發(fā)布的開源模型有兩個系列:
- Llama 2 系列模型,作為Llama 1模型的更新版本,此系列模型使用了更多和更新的開源數(shù)據(jù)進行模型的訓練,其中語料庫增加了40%,模型的文本長度擴大至Llama 1 的兩倍,并且在其中采用了grouped-query attention 方法[xxx]。此系列的開源模型包含13B參數(shù)和70B參數(shù)的版本;同時,Meta AI團隊還訓練了一個34B參數(shù)的版本,但是未進行開源。
- Llama 2-Chat系列模型,此系列模型是在Llama 2系列模型的基礎上對模型進行了對話任務的針對性微調,此系列開源的模型包括7B參數(shù)、13B參數(shù)和70B參數(shù)的版本。
??Llama 2模型的訓練工作,主要分為三大部分,分別是Pre-training、Fine-tuning和Human Feedback,整個訓練的過程如圖2所示。其中,Pre-training模塊主要進行模型預訓練;Fine-tuning 模塊聚焦于基于人類反饋的強化學習過程(RLHF,Reinforcement Learning from Human Feedback),其中涉及了兩種算法/策略,一種是曾在GPT系列文章中被采用的Proximal Policy Optimization (PPO)算法,另一種則是Rejection Sampling fine-tuning策略;Human Feedback 模塊主要進行獎勵模型(Reward Model)的訓練,其中針對模型的能力和回答的安全性分別訓練了兩個獎勵模型——Safety Reward Model 和Helpful Reward Model。
模型預訓練
預訓練設置
??Llama 2模型與Llama 1模型在模型的結構和預訓練的設置上大部分保持一致,Llama 2模型中采用了標準的transformer 結構,在其中采用了RMSNorm,同時使用了SwiGLU激活函數(shù)和RoPE的embedding方式。與Llama 1的訓練相比,Llama 2的訓練的特點主要有:
?? 1)完成更多的數(shù)據(jù)清洗工作
?? 2)更新了數(shù)據(jù)混合策略
?? 3)增加了更多的訓練數(shù)據(jù)
?? 4)實現(xiàn)了文本長度的翻倍
?? 5)采用了grouped-query attention (GQA) 方法
??Llama 2模型與Llama 1模型的預訓練設置對比如下表所示,文章的附錄A.2.1還提供了相關的對比試驗:
??在Llama 2模型的預訓練中,Meta AI采用了全新的公開數(shù)據(jù)(其中并不涉及任何meta產品的用戶數(shù)據(jù)),并且對數(shù)據(jù)中的個人信息和隱私數(shù)據(jù)進行了篩選和刪除,共計2萬億token。采用的tokenizer與Llama 1一樣,詞典大小為32K,預訓練過程的主要超參數(shù)設置如下表:
超參數(shù) | 值 |
---|---|
AdamW Optimizer | β_1=0.9, β_2=0.95, eps= 10^(-5) |
Learning rate schedule | cosine |
warmup | 2000 |
Weight decay | 0.1 |
Gradient clipping | 1.0 |
??論文中還提供了Llama 2模型預訓練過程的loss統(tǒng)計,如下圖所示。可以看出,隨著模型參數(shù)的增加,模型的訓練效果更加顯著,這種趨勢在GPT系列工作的論文中也有介紹;同時,還可以看出,隨著預訓練的數(shù)據(jù)量增加,模型的訓練loss也呈下降趨勢,也就是說,如果采用更多的預訓練數(shù)據(jù),模型的預訓練效果可能會更好。
硬件資源與碳排放
??Meta AI 在訓練Llama 2時使用的是Meta 的超級計算機群,其中全部配置的NVIDIA A100顯卡。為了響應低碳計劃,論文還列出了不同模型預訓練所需的GPU計算時間、功率和碳排放,如下圖所示。根據(jù)此統(tǒng)計表,大家也可根據(jù)預訓練時間推測Llama 2模型預訓練所使用的GPU數(shù)量。
模型評估
??Llama 2預訓練完成后,論文對Llama 1、Llama 2(預訓練版本)、MPT和Falcon在內部評測數(shù)據(jù)上對模型的代碼能力、推理能力、閱讀理解能力、數(shù)學能力等進行了對比測試,如下圖所示。從對比圖中可以看出,在同樣的參數(shù)量級下,完成預訓練后的Llama 2模型的各項能力要優(yōu)于Llama 1、MPT和Falcon。
??除了與上述的開源模型進行對比外,論文中還提供了與部分閉源模型的測試對比,如下圖所示。可以看出,預訓練后的Llama 2模型的多項得分雖然低于這些閉源模型的得分,但是差距也是相對較小的。當然,這僅僅是預訓練后的Llama 2模型(即開源的Llama 2系列)的表現(xiàn),還沒進行后面的微調工作呢。
模型微調
??對于Llama 2的微調,Meta AI將經(jīng)過微調后的Llama 2的模型命名為Llama 2-Chat,其中的微調過程包括指令微調和RLHF過程。對于模型的微調工作,論文中將其分為了三個小節(jié),第一小節(jié)主要介紹“有監(jiān)督微調”,第二章節(jié)主要講解“獎勵模型”的訓練和“RLHF”過程,第三個章節(jié)重點介紹了Ghost Attention(GAtt)方法。
有監(jiān)督微調
??作者首先采用了與Llama 1相同的微調方法和微調指令集進行第一步的有監(jiān)督微調;然后使用質量更高的數(shù)據(jù)進行再次微調。在微調過程中,作者發(fā)現(xiàn)高質量的數(shù)據(jù)集能給模型的效果帶來顯著的提升,因此Meta AI團隊做了很多工作來確保數(shù)據(jù)的高質量,此過程中共計收集了27540條高質量數(shù)據(jù)(其中不包含任何Meta產品的用戶數(shù)據(jù))。
微調細節(jié):在有監(jiān)督微調過程中,每個樣本數(shù)據(jù)包括一個prompt和一個answer,為了保證模型的文本長度一致,每條數(shù)據(jù)的prompt和answer用一個特殊的符號進行拼接,然后傳入模型,整個過程僅僅進行了2個epochs。
基于人工反饋的強化學習(RLHF)
??RLHF也是一個訓練過程,此過程是為了讓微調后的模型能夠更加傾向于給出人類/研究人員希望/偏好的回答。作者讓一些標注人員對模型生成的答案進行標注,選出他們最喜歡的答案,然后用這些標注人員更滿意的答案來訓練一個reward 模型。
人類偏好數(shù)據(jù)的收集
??對于RLHF階段的數(shù)據(jù)收集,作者先讓標注人員寫一個prompt/問題,然后根據(jù)指定的評判規(guī)則從兩個模型生成的答案中選擇一個。為了保證生成答案的多樣性,這兩個答案分別是由不同的模型中生成(其中的temperature參數(shù)被改變)。此外,作者還要求注釋者標注他們對所選答案的偏好程度:significantly better, better, slightly better, or negligibly better/ unsure。
??此外,作者還對數(shù)據(jù)集做了可用性和安全性的思考,并且進行了針對性的處理。 其中,人工標注的數(shù)據(jù)會每周進行一次收集,每次用收集完的數(shù)據(jù)訓練完reward模型后,llama 2-Chat模型也會同樣進行一次更新,然后再用新版的llama 2-Chat的新生成的數(shù)據(jù)進行人工標注,再繼續(xù)更新reward 模型,如此迭代,保證新的reward 模型能夠與llama 2-Chat 模型同步更新。
??在下面的表格中,作者將收集的數(shù)據(jù)集與多個開源的人類偏好數(shù)據(jù)集進行了對比,從比較結果可以看出,作者收集的數(shù)據(jù)集包含更多的會話回合,并且平均內容更長。
獎勵模型
??關于RLHF,作者訓練了兩個獎勵模型,其中一個是利用“可用性”偏好的數(shù)據(jù)集針對可用性的優(yōu)化,另一個是利用“安全性”偏好的數(shù)據(jù)集針對安全性的優(yōu)化。對于獎勵模型,作者同樣使用預訓練的Llama 2-Chat模型的checkpoints為基礎進行訓練,這樣就能保證獎勵模型也能理解Llama 2-Chat模型的目標的任務。這種辦法的優(yōu)點是能夠避免一些意外的偏差情況出現(xiàn),比如,這兩個模型出現(xiàn)信息不匹配,這可能導致模型出現(xiàn)偏好幻覺(即模型認為它是按照人類數(shù)據(jù)偏好進行的獎勵學習,但實際上卻不是),reward模型和Llama 2-Chat模型差別就在于模型輸出中的標記預測的分類頭被用于輸出標量獎勵的回歸頭所取代。
??獎勵模型的訓練的目標(loss函數(shù))為:
??其中,yc 表示更傾向人類偏好的答案,yr 表示相對不適合人類偏好的答案;rθ (x,yc ) 表示當模型參數(shù)集合為 θ 的情況下,輸入 x 得到的輸出與 yc 的標量分數(shù),rθ (x,yr ) 同理。前面提到過,訓練reward模型的數(shù)據(jù)需要人工進行標簽(significantly better, better, slightly better, or negligibly better/ unsure.)。為了使loss能夠體現(xiàn)出不同標簽之間的差異,作者在loss函數(shù)中添加了一個 m (r) 離散函數(shù),這個函數(shù)能夠更好地提升獎勵模型的準確率(論文在table 28和附錄A.3.3中進行了解釋)
??對于獎勵模型的訓練參數(shù),論文中進行了簡要的介紹:同樣使用AdamW 優(yōu)化器,70B的Llama 2-Chat模型最大學習率為 5×10-6,其他的模型最大學習率為 1×10-5,learning rate schedule 為cosine, warm up設置為總訓練步數(shù)的 3%,最小值為5,batch size 為512。
??獎勵模型訓練完成后,作者將訓練的獎勵模型與其他公開的獎勵模型進行了測試對比,如下表所示??梢钥闯觯琇lama 2-Chat的獎勵模型在可用性和安全性上的表現(xiàn)都是非常出色的;綜合來看,完全超過了其他模型。
??除了與其他獎勵模型進行對比外,作者還對獎勵模型的訓練過程數(shù)據(jù)進行了統(tǒng)計,如下圖所示。作者發(fā)現(xiàn),隨著模型參數(shù)的增加,獎勵模型的能力呈上升趨勢(這一點和預訓練的過程的數(shù)據(jù)呈現(xiàn)的趨勢一致);同時,隨著訓練數(shù)據(jù)的增加,獎勵模型的能力同樣呈上升趨勢。作者認為,RLHF作為大模型最終能力的最重要步驟之一,提升獎勵模型的效果將直接給大模型的最終能力帶來顯著的提升(在下個版本中,作者可能對獎勵模型進一步優(yōu)化)。
迭代微調過程
??前面我們提到過,獎勵模型的訓練和Llama 2-Chat模型的訓練是同步迭代的,作者在RLHF中訓練了多個版本的大模型,被稱為RLHF-V1, RLHF-V2,…, RLHF-V5,整個過程采用了兩種算法來更新大模型:
- Proximal Policy Optimization(PPO)算法,目前最常見的RLHF算法之一,是由OpenAI的團隊提出,并且在GPT系列的工作中得到應用并表現(xiàn)出非常好的效果。
- Rejection Sampling fine-tuning(拒絕采樣)方法,當輸入prompt后,從之前的模型(本次迭代訓練之前的模型)中抽樣出最好的K個輸出,然后用最新的獎勵模型對這些得到的輸出進行評分,其中選擇評分最高的輸出進行模型參數(shù)更新。
??需要注意的是,作者在RLHF(V4)之前一直在RLHF中采用拒絕采樣的方式;之后就采用拒絕采樣和PPO的方式來完成RLHF過程。另外,作者僅僅在最大的模型70B的 llama-chat的微調過程中使用了拒絕采樣,其他小模型都是用大模型拒絕采樣的數(shù)據(jù)來進行微調,也就是利用能力好的大模型來蒸餾小模型。
多輪對話控制
??在對話任務中,某些instruction可能需要在多輪對話中使用,但是作者在最初的RLHF中發(fā)現(xiàn),模型在多輪對話后會遺忘對話開始的instruction。為了解決這個問題,作者提出了Ghost Attention (GAtt)方法——一種模型訓練的trick,這種方法能夠幫助模型在多輪對話中對知識進行聚焦,效果如圖所示。
??Ghost Attention(GAtt)方法就是在原先的多輪對話中增加一個instruction,將原始的對話變[u1,a1,…,un,an] (u1表示用戶的第一輪輸入,a1表示對應的第一輪回答,u2表示第二輪的用戶輸入,依次類推)變?yōu)閇inst+u1,a1 ’ ,…,inst+un,an’ ]。這種方式的思路就是生成一種更加聚焦的數(shù)據(jù)集來微調模型,比如原始的數(shù)據(jù)集為[u1,a1,…,un,an],作者通過新增instructions 得到新的數(shù)據(jù)集[inst+u1,a1 ’ ,…,inst+un,an’ ],然后用這兩者混合的數(shù)據(jù)[inst+u1,a1 ‘,u2,a2’ ,…,un,an’ ]來微調模型,這樣就能使模型在多輪對話中始終保持對instruction的聚焦。為了避免出現(xiàn)語句不匹配的問題,在訓練過程中,僅僅保留第一輪的提示,并將中間輪數(shù)的損失置為0。需要注意的是,作者并不是在RLHF階段一開始就使用GAtt方法,而是在RLHF V3之后才使用GAtt方法使模型增加對多輪對話的控制。
RLHF 結果
??為了評測RLHF后的模型效果,作者將Llama 2-Chat模型、部分開源模型和閉源模型的進行了效果對比,其中采用人工評測的方式對各個模型的回答進行評分,總體對比結果如下圖所示??梢钥闯觯琇lama 2-Chat模型的整體測試結果要優(yōu)于其他的開源模型,并且基本上與ChatGPT相當。
模型回答的安全性
??為了保證模型回答的安全性,作者也進行了大量的工作,其中主要有:
?? (1) 作者在收集數(shù)據(jù)的時候就按照人類的安全偏好進行了數(shù)據(jù)收集,這就使模型在RLHF之前就會生成偏向遵從人類的安全意識的回答。
??(2) 在RLHF階段,單獨訓練了一個安全性的獎勵模型,以便于對模型的進一步微調時能夠偏向輸出更加安全的回答。
??(3) 在RLHF階段使用上下文蒸餾的方法。其中包括通過增加額外的 prompt “You are a safe and responsible assistant, ” 來生成安全偏好的問題回答;然后用這些不帶額外prompt的問題和對應生成的安全的回答去微調模型。
??另外,作者還進行了一系列的主動安全測試——被稱為 “red teaming”。這些安全測試是通過測試人員與模型進行不同領域的安全問答,并且將問答的結果進行反饋,以進一步優(yōu)化模型的回答的安全性。其中,安全測試人員共計超過350人,其中包括各個領域的專家,如網(wǎng)絡安全、社會輿論、法律、政策、人權、道德等領域;其中涉及的問題同樣豐富,如社會經(jīng)濟、性別和種族等。
??論文在對Llama 2-Chat模型的問答安全性進行了評估,同時與部分開源和閉源模型進行了對比,如下圖所示。可以看出,在模型回答的安全性方面,Llama 2-Chat是遠優(yōu)于其他開源模型的,部分版本的模型優(yōu)于ChatGPT。文章來源:http://www.zghlxwxcb.cn/news/detail-631839.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-631839.html
到了這里,關于最強開源大模型?Llama 2論文解讀的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!