LLama2詳細解讀 | Meta開源之光LLama2是如何追上ChatGPT的?
一、概述
Title: Llama 2: Open Foundation and Fine-Tuned Chat Models
論文地址:Llama 2: Open Foundation and Fine-Tuned Chat Models
代碼:??https://github.com/facebookresearch/llama??
官網:??https://ai.meta.com/llama/??
1 Motivation
- 開源的LLM chat模型效果還不太好,還沒一個開源大模型能和閉源模型(例如chatgpt)能比的。
- ChatGPT是閉源的,LLM的有用性和安全性如何改進這一類論文還不是特別多。
2 Methods
2.1 整體架構
總結1: 參考InstructGPT[1],主要還是分為三個步驟(預訓練、SFT、RLHF),其中RLHF用了兩個Reward Model(Safety Reward Model、Helpful Reward Model),創新性地引入兩個Reward模型,在保證安全性的同時,保持很好的有用性。
總結2: 在RLHF階段,不斷迭代優化獎勵模型與增強模型能力對于確保獎勵模型保持在分布范圍內至關重要,本文后面的實驗中,看到從最開始與chatgpt對比只有10%的勝率,用了本文提到的SFT和迭代RLHF后,勝率可高達60%。
總結3:Rejection Sampling(拒絕采樣):強化學習方法的一種,每次采樣多個結果,選取最佳的k個結果構建新的訓練數據,更新梯度,同時迭代優化模型效果。
2.2 發布LLAMA2和LLAMA2-CHAT
總結1:本次同時發布了基座模型LLAMA2和Chat模型LLAMA2-CHAT,參數在7B、13B、70B都有。
總結2:在新的公開的混合數據來訓練,語料庫的大小增加了40%,將型的上下文長度增加了一倍,采用了分組查詢注意力機制。
2.3 LLAMA2和LLMA1訓練情況對比
說明:Llama 2系列模型。所有模型都使用4M token進行訓練。其中更大的模型34B和70B模型使用分組查詢注意力(GQA)來提高推理可擴展性,7B和13B還是通用的注意力機制。
總結1: 相對于llama1,llama2的窗口長度翻倍,訓練tokens翻倍。
總結2: 使用分組查詢注意(GQA)來提高推理可擴展性。
Grouped Query Attention:在常規的注意力機制中,我們通常將一個查詢與一組鍵(key)和值(value)進行匹配,以便在執行各種任務(如翻譯、問答等)時聚焦于相關信息。而在 "grouped query attention" 中,將多個查詢作為一個組一起進行處理,從而引入了查詢組之間的交互。這種注意力機制的一個應用場景是在多輪對話理解中,例如問答系統或對話生成模型。在多輪對話中,每一輪對話可以被視為一個查詢組,其中每個查詢表示一個輪次的輸入。通過引入 "grouped query attention",模型可以更好地捕捉到不同輪次之間的信息流動和上下文關聯,從而更準確地理解和生成響應。總之,"grouped query attention" 是一種注意力機制的變種,用于處理多組查詢之間的交互,特別適用于多輪對話理解等場景,有助于提高模型的上下文理解和信息交互能力。
3 Conclusion
3.1 整體情況:遠超開源大模型,除代碼能力外追上了ChatGPT
- 與開源模型對比:發布了7B,13B,34B,70B的模型,在大多數評測基準上,LLaMA2模型優于開源聊天模型,詳情如下圖:
大模型評價維度:一般從代碼,常識推理,世界知識,閱讀理解,數學,比較熱的幾個數據集包括MMLU,BBH,AGI Eval等方面來評估。
- 與閉源模型對比:有用性和安全性都不錯,除了代碼能力,其他能力接近ChatGPT,可能是ChatGPT的合適替代品:
- 詳細描述了我們對Llama 2-Chat進行微調和安全改進的方法,以使社區能夠在我們的工作基礎上再接再厲,并為LLM的負責任的發展做出貢獻。
3.2 LLAMA2的Helpfulness表現
總結1:LLama-2 70b模型與chatgpt-0301的GSB評分為35.9:31.5:32.5,Llama2-70b有用性比ChatGPT-0301還要好點。
總結2: GPT4自動評估,綠色區域表明,LLama-2的模型更好,為了消除平局,使用了贏/(贏+輸)來計算分數。
3.3 LLAMA2的Safety表現
總結:Llama-2 70b-chat違反安全的比例低于5%,比ChatGPT0301高于5%還要好,盡管評測有一定局限性。
二、預訓練和Fine-tuning
1 預訓練訓練loss變化情況
總結1: 對比Llama1,PPL最終是到1.6左右,這里Llama2-70B到1.5了。
總結2: 觀察到進行2T tokens預訓練后,模型仍然沒有任何飽和跡象,還能繼續加數據繼續訓!!!
總結3: tokenizer方法和LLAMA1一樣,包括:BPE編碼,SentencePiece切詞,32K。
2 有監督SFT關鍵是高質量的數據
總結: SFT數據的質量比數量更重要,本文發現開源的一些數據量比較大,但是多樣性和質量都不太好,本文最終收集了27540條高質量的數據來訓練,效果有明顯的改善。
3 人類偏好數據收集(百萬級別)
總結1:收集了現有的開源的和meta收集的數據集,總共290萬,其中Meta整理了141萬。
總結2:人類偏好的標簽包括2種反饋,chosen或者rejected,感覺不是特別細。
總結3:還分析了各種偏好數據的比較的次數、每個對話的平均輪次、每個例子、每個提示和每個回答的平均token數等指標。
4 各種大模型在Meta偏好數據上的表現
總結1: GPT4在人類偏好數據集上效果都比較高。GPT4沒有在Meta數據集上訓練過,但是效果也是比較好的,但是比經過Meta數據訓練的RM的效果還是要差一些。
總結2: 經過人類偏好數據集訓練的Reward model能大幅提升在該領域的偏好效果。在Meta Safety以及Meta Helpful數據集上,經過對應場景數據訓練的RM,Safety RM和Helpfulness RM在各自的領域都是最好的,比GPT4都要好。
5 Reward model效果和模型尺寸的關系
總結:數據越多,模型越大效果越好,70b的Reward模型更好的概率在80%+,13b的Reward模型更高的概率在75%-76%左右。
6 RL迭代訓練(PPO和Rejection sampling fine-tuning)是關鍵的制勝法寶
總結1: 在強化學習階段,不斷迭代優化模型效果,主要探索了兩種不同的RL算法來迭代優化,PPO和Rejection Sampling fine-tuning算法。
總結2: Rejection Sampling fine-tuning是一種從模型生成多個候選輸出,通過獎勵機制選擇最佳輸出,并將選定的輸出用于梯度更新和微調的方法。這個方法在之前的研究基礎上進行了拓展,使得模型可以通過選擇的輸出來進一步優化自身。
總結3: 拒絕采樣和ppo的不同。寬度:在拒絕采樣中,該模型為給定的提示探索K個樣本,而PPO只探索1個樣本。深度:在PPO中,在步驟t的訓練期間,樣本是上一步梯度更新后t-1的更新模型策略的函數。在拒絕采樣微調中,我們在應用類似于SFT的微調之前,根據模型的初始策略對收集新數據集的所有輸出進行采樣。由于應用了迭代模型更新,兩個RL算法之間的基本差異不那么明顯。
結論:拒絕采樣可以從多個樣本中,選擇更好的樣本來訓練迭代模型,采樣的個數越多,效果越好。同時溫度系數越高,多樣性越高效果越越好。
總結1: 只在70B的LLAMA2-CHAT上使用了拒絕采樣,其他小模型都是從大模型蒸餾過去。
總結2: 總共RL迭代了5輪,在RLHF(V4)之前,只使用拒絕采樣微調,之后,我們按順序將兩者結合起來,在再次采樣之前在結果的拒絕采樣checkpoint上應用PPO。
7 利用GAtt方法來提升多輪問答中對系統指令的遵循能力
說明:在多輪問答中,經常會忘記系統指令,如左圖所示忘記用emojis來回答的指令,后面用GAtt技術優化后,右邊有明顯改善。
GAtt方法:感覺是一種新的attention方法,對于第一條指令或者系統指令提供的注意力更強。
8 LLAMA2-CHAT的演變過程(RLHF迭代5輪的變化情況),效果非常強!
總結1: RLHF總共迭代了5次,每次迭代都有提升,其中前4次用的是拒絕采樣來訓練,v5用上了ppo提升更大。
總結2: RLHF帶來的提升是比較明顯的,從對chatgpt10%的勝率提升到了60%+。
9 人工評估有用性
總結: 在helpfulness prompts上,比其他開源模型效果要更好,甚至比閉源的chatgpt都要好一點。
三、Safety
1 在訓練數據中引入更安全的數據
總結1: 安全的數據越多,效果越好,helpfulness保持穩定
總結2: 隨著更多安全訓練數據的添加,較低的安全RM分數(即最不安全的回答)逐漸消失,代表安全分非常低的結果越來越少。
2 利用Context distillation方法提升安全性
Context distillation方法:指在上下文中引入額外限制提升安全性的方法,這里提供了兩種方法如下:
方法1: Generic Preprompt:提升回答中不應該包括任何有害的、不道德、或者有偏見的內容。
方法2: Preprompt with Answer Template:給出答案的模版,指導可能不安全的行為該如何回答。
結論1: 采取通用的預提示方法(Generic Preprompt)會提高安全RM分數,但帶有定制答案模板的預提示(Preprompt with answer Template)會更有幫助。
結論2: 隨著原始安全分的增加,Context Distillation帶來的提升越來越小,甚至對高分數的樣本帶來負面影響,所以本文只在能提升安全分的樣本上使用context distillation技術。
3 Red Teaming
目的1:被動風險識別可能不太夠,這里還提出要主動風險識別來優化,本文把他叫做Red Teaming,主要用于分析哪些情況下可能會造成毒性的結果。
目的2: 安全是一個長尾問題,即使非常不頻繁的case也會導致嚴重的后果。
發現的llm攻擊特點:
? [早期模型]更有可能生成不安全的響應,而沒有注意到它們包含有問題的內容。[稍晚的模型]能夠發現有問題的內容,但是還是無法避免不輸出。[最新模型]能夠解決這些問題。
? 創意寫作請求(歌曲、故事、詩歌等)可能會讓他生成之前會強烈反對的內容(逃避監管機制,生成不安全的內容)。
? 在積極的上下文中嵌入有問題的請求,例如使用積極、進取、富有能量的問題進行掩蓋,是最有效的攻擊方法。
4 Safety Evaluation of Llama 2-Chat
總結:不同尺寸的LLAMA2系列模型中,都有更好的安全性,同時有用性也非常不錯。
總結:多輪問答的有害性比單輪問答的有害性對別,增加比較多,但是LLAMA2系列模型都比其他模型好,34b的模型有點奇怪,本文也沒有開源。
總結:比較了多個角度,包括有害的,非法的,低質量三大類情況下個模型的違反比例,LLAMA2系列表現都不錯,34b的模型表現有點奇怪沒有開源。
四、Discussion
1 SFT模型到RLHF方法給Reward model score分布帶來的變化
總結:最還是的mix數據訓練的SFT,低分數的比較多,隨著利用標注數據,效果有了明顯的提升,同時利用RLHF,獲得高分數的樣本越來越多,說明效果越來越好。
2 RLHF降低模型結果的了多樣性
總結1:溫度越高,多樣性越好,但是做了RLHF后,多樣性有了明顯的下降。
總結2: Creative Prompts還能維持較高的多樣性,同時上文也提到,可能更容易被攻擊,所以感覺多樣性和有毒性確實是一個需要權衡的過程。
五、思考與總結
總結:本文主要從預訓練、Fine-tuning、Safety這幾個角度來介紹了LLAMA2,其中引入高質量的數據,多次迭代優化Reward Model是非常關鍵的一步。
總結1: 訓練數據質量非常重要。相對于多而質量不高的數據,SFT過程中,收集27540條高質量的數據就能有非常大的提升。
總結2: RLHF對對齊人類觀念還是非常重要的。LLAMA2使用RLHF迭代訓練后,對chatgpt的勝率從開始的10%的勝率提升到了60%+。
總結3: 模型越大,數據量越多,Reward Model的效果就越好。
總結4: 提升安全性可以在訓練數據,SFT,RLHF多個方面進行優化。引入更安全的數據,可以降低毒性非常高的結果。引入RLHF,可以進一步提高輸出結果的Reward Model分數。
總結5: 引入Context distillation方法也可以有效的提升安全性。通用的不能輸出毒性結果的指令能夠帶來一定提升,同時對毒性結果進行后處理,能夠更進一步提升安全性。
總結6: 多輪問答比單論問答有更高的出現毒性回答的概率。本文利用GAtt方法來優化多輪問答的安全性。
總結7: 安全性和多樣性是需要權衡的。在看到RLHF對齊人類觀念的同時,也要看到其多樣性犧牲比較大。同時如果多樣性比較高,也使其更有可能產生不安全的內容。
本文轉載自 ??NLP PaperWeekly??,作者: NLP PaperWeekly
