更強的Llama 2開源,可直接商用:一夜之間大模型格局變了
已上微軟Azure,即將要上AWS、Hugging Face。一夜之間,大模型格局再次發生巨變。一直以來Llama 可以說是AI 社區內最強大的開源大模型。但因為開源協議問題,一直不可免費商用。今日,Meta 終於發布了大家期待已久的免費可商用版本Llama 2。


此次Meta 發布的Llama 2 模型系列包含70 億、130 億和700 億三種參數變體。此外還訓練了340 億參數變體,但並沒有發布,只在技術報告中提到了。
據介紹,相比於Llama 1,Llama 2 的訓練數據多了40%,上下文長度也翻倍,並採用了分組查詢注意力機制。具體來說,Llama 2 預訓練模型是在2 萬億的token上訓練的,精調Chat 模型是在100 萬人類標記數據上訓練的。

公佈的測評結果顯示,Llama 2 在包括推理、編碼、精通性和知識測試等許多外部基準測試中都優於其他開源語言模型。

接下來,我們就從Meta 公佈的技術報告中,詳細了解下Llama 2。

論文地址:https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/
項目地址:https://github.com/facebookresearch/llama
總的來說,作為一組經過預訓練和微調的大語言模型(LLM),Llama 2 模型系列的參數規模從70 億到700 億不等。其中的Llama 2-Chat 針對對話用例進行了專門優化。

Llama 2-Chat 的訓練pipeline。
Llama 2 模型系列除了在大多數基準測試中優於開源模型之外,根據Meta 對有用性和安全性的人工評估,它或許也是閉源模型的合適替代品。

Llama 2-Chat 與其他開源和閉源模型在安全性人類評估上的結果。
Meta 詳細介紹了Llama 2-Chat 的微調和安全改進方法,使社區可以在其工作基礎上繼續發展,為大語言模型的負責任發展做出貢獻。
預訓練
為了創建全新的Llama 2 模型系列,Meta 以Llama 1 論文中描述的預訓練方法為基礎,使用了優化的自回歸transformer,並做了一些改變以提升性能。
具體而言,Meta 執行了更穩健的數據清理,更新了混合數據,訓練token 總數增加了40%,上下文長度翻倍。下表1 比較了Llama 2 與Llama 1 的詳細數據。

Llama 2 的訓練語料庫包含了來自公開可用資源的混合數據,並且不包括Meta 產品或服務相關的數據。Llama 2 採用了Llama 1 中的大部分預訓練設置和模型架構,包括標準Transformer 架構、使用RMSNorm 的預歸一化、SwiGLU 激活函數和旋轉位置嵌入。
在超參數方面,Meta 使用AdamW 優化器進行訓練,其中β_1 = 0.9,β_2 = 0.95,eps = 10^−5。同時使用餘弦學習率計劃(預熱2000 步),並將最終學習率衰減到了峰值學習率的10%。
下圖5 為這些超參數設置下Llama 2 的訓練損失曲線。

在訓練硬件方面,Meta 在其研究超級集群(Research Super Cluster, RSC)以及內部生產集群上對模型進行了預訓練。兩個集群均使用了NVIDIA A100。
在預訓練的碳足跡方面,Meta 根據以往的研究方法,利用GPU 設備的功耗估算和碳效率,計算了Llama 2 模型預訓練所產生的碳排放量。

預訓練期間Llama 2 各個模型的碳排放量。
Llama 2 預訓練模型評估
Meta 報告了Llama 1、Llama 2 基礎模型、MPT(MosaicML)和Falcon 等開源模型在標準學術基准上的結果。
下表3 總結了這些模型在一系列流行基准上的整體性能,結果表明,Llama 2 優於Llama 1 。

除了開源模型之外,Meta 還將Llama 2 70B 的結果與閉源模型進行了比較,結果如下表4 所示。Llama 2 70B 在MMLU 和GSM8K 上接近GPT-3.5,但在編碼基准上存在顯著差距。
此外,在幾乎所有基准上,Llama 2 70B 的結果均與Google PaLM (540B) 持平或表現更好,不過與GPT-4 和PaLM-2-L 的性能仍存在較大差距。

微調
Llama 2-Chat 是數個月研究和迭代應用對齊技術(包括指令調整和RLHF)的成果,需要大量的計算和註釋資源。
監督微調(SFT)
第三方監督微調數據可從許多不同來源獲得,但Meta 發現其中許多數據的多樣性和質量都不夠高,尤其是在使LLM 與對話式指令保持一致方面。因此,他們首先重點收集了幾千個高質量SFT 數據示例,如下表5 所示。

在微調過程中,每個樣本都包括一個提示和一個回答。為確保模型序列長度得到正確填充,Meta 將訓練集中的所有提示和答案連接起來。他們使用一個特殊的token 來分隔提示和答案片段,利用自回歸目標,將來自用戶提示的token 損失歸零,因此只對答案token 進行反向傳播。最後對模型進行了2 次微調。
RLHF
RLHF 是一種模型訓練程序,適用於經過微調的語言模型,以進一步使模型行為與人類偏好和指令遵循相一致。Meta 收集了代表了人類偏好經驗採樣的數據,人類註釋者可據此選擇他們更喜歡的兩種模型輸出。這種人類反饋隨後被用於訓練獎勵模型,該模型可學習人類註釋者的偏好模式,然後自動做出偏好決定。
下表6 報告了Meta 長期以來收集到的獎勵建模數據的統計結果,並將其與多個開源偏好數據集進行了對比。他們收集了超過100 萬個基於人類應用指定準則的二元比較的大型數據集,也就是元獎賞建模數據。
請注意,提示和答案中的標記數因文本領域而異。摘要和在線論壇數據的提示通常較長,而對話式的提示通常較短。與現有的開源數據集相比,本文的偏好數據具有更多的對話回合,平均長度也更長。

獎勵模型將模型響應及其相應的提示(包括前一輪的上下文)作為輸入,並輸出一個標量分數來表示模型生成的質量(例如有用性和安全性)。利用這種作為獎勵的響應得分,Meta 在RLHF 期間優化了Llama 2-Chat,以更好地與人類偏好保持一致,並提高有用性和安全性。
在每一批用於獎勵建模的人類偏好註釋中,Meta 都拿出1000 個樣本作為測試集來評估模型,並將相應測試集的所有提示的集合分別稱為“元有用性”和“元安全性”。
下表7 中報告了準確率結果。不出所料,Meta 自己的獎勵模型在基於Llama 2-Chat 收集的內部測試集上表現最佳,其中“有用性”獎勵模型在“元有用性”測試集上表現最佳,同樣,“安全性”獎勵模型在“元安全性”測試集上表現最佳。
總體而言,Meta 的獎勵模型優於包括GPT-4 在內的所有基線模型。有趣的是,儘管GPT-4 沒有經過直接訓練,也沒有專門針對這一獎勵建模任務,但它的表現卻優於其他非元獎勵模型。

縮放趨勢。Meta 研究了獎勵模型在數據和模型大小方面的縮放趨勢,在每週收集的獎勵模型數據量不斷增加的情況下,對不同的模型大小進行了微調。下圖6 報告了這些趨勢,顯示了預期的結果,即在類似的數據量下,更大的模型能獲得更高的性能。

隨著收到更多批次的人類偏好數據註釋,能夠訓練出更好的獎勵模型並收集更多的提示。因此,Meta 訓練了連續版本的RLHF 模型,在此稱為RLHF-V1、…… , RLHF-V5。
此處使用兩種主要算法對RLHF 進行了微調:
近端策略優化(PPO);
Rejection 採樣微調。
RLHF 結果
首先是基於模型的評估結果。下圖11 報告了不同SFT 和RLHF 版本在安全性和有用性方面的進展,其中通過Meta 內部的安全性和有用性獎勵模型進行評估。

再來看人類評估結果。如下圖12 所示,Llama 2-Chat 模型在單輪和多輪提示方面均顯著優於開源模型。特別地,Llama 2-Chat 7B 在60% 的提示上優於MPT-7B-chat,Llama 2-Chat 34B 相對於同等大小的Vicuna-33B 和Falcon 40B,表現出了75% 以上的整體勝率。

在這裡,Meta 也指出了人工評估的一些局限性。
雖然結果表明Llama 2-Chat 在人工評估方面與ChatGPT 不相上下,但必須指出的是,人工評估存在一些局限性。
按照學術和研究標準,本文擁有一個4K提示的大型提示集。但是,這並不包括這些模型在現實世界中的使用情況,而現實世界中的使用情況可能要多得多。
提示語的多樣性可能是影響結果的另一個因素,例如本文提示集不包括任何編碼或推理相關的提示。
本文只評估了多輪對話的最終生成。更有趣的評估方法可能是要求模型完成一項任務,並對模型在多輪對話中的整體體驗進行評分。
人類對生成模型的評估本身就具有主觀性和噪聲性。因此,使用不同的提示集或不同的指令進行評估可能會產生不同的結果。
安全性
該研究使用三個常用基準評估了Llama 2 的安全性,針對三個關鍵維度:
真實性,指語言模型是否會產生錯誤信息,採用TruthfulQA 基準;
毒性,指語言模型是否會產生“有毒”、粗魯、有害的內容,採用ToxiGen 基準;
偏見,指語言模型是否會產生存在偏見的內容,採用BOLD 基準。
預訓練的安全性
首先,預訓練數據對模型來說非常重要。Meta 進行實驗評估了預訓練數據的安全性。
該研究使用在ToxiGen 數據集上微調的HateBERT 分類器來測量預訓練語料庫英文數據的“毒性”,具體結果如下圖13 所示:

為了分析偏見方面的問題,該研究統計分析了預訓練語料庫中的代詞和身份相關術語及其占比,如下表9 所示:

此外,在語言分佈方面,Llama 2 語料庫涵蓋的語種及其占比如下表10 所示:

安全微調
具體來說,Meta 在安全微調中使用了以下技術:1、監督安全微調;2、安全RLHF;3、安全上下文蒸餾。
Meta 在Llama 2-Chat 的開發初期就觀察到,它能夠在有監督的微調過程中從安全演示中有所總結。模型很快就學會了撰寫詳細的安全回复、解決安全問題、解釋話題可能敏感的原因並提供更多有用信息。特別是,當模型輸出安全回复時,它們往往比普通註釋者寫得更詳細。因此,在只收集了幾千個有監督的示範後,Meta 就完全改用RLHF 來教模型如何寫出更細緻入微的回复。使用RLHF 進行全面調整的另一個好處是,它可以使模型對越獄嘗試更加魯棒。

Meta 首先通過收集人類對安全性的偏好數據來進行RLHF,其中註釋者編寫他們認為會引發不安全行為的prompt,然後將多個模型響應與prompt 進行比較,並根據一系列指南選擇最安全的響應。接著使用人類偏好數據來訓練安全獎勵模型,並在RLHF 階段重用對抗性prompt 以從模型中進行採樣。
如下圖15 所示,Meta 使用平均獎勵模型得分作為模型在安全性和有用性方面的表現結果。Meta 觀察到,當他們增加安全數據的比例時,模型處理風險和對抗性prompt 的性能顯著提高。

最後,Meta 通過上下文蒸餾完善了RLHF 流程。這涉及到通過在prompt 前加上安全前置prompt 來生成更安全的模型響應,例如“你是一個安全且負責任的助手”,然後在沒有前置prompt 的情況下根據更安全的響應微調模型,這本質上是提取了安全前置prompt(上下文)進入模型。
Meta 使用了有針對性的方法,允許安全獎勵模型選擇是否對每個樣本使用上下文蒸餾。

下圖17 展示了各種LLM 的總體違規百分比和安全評級。

下圖18 展示了單輪和多輪對話的違規百分比。跨模型的一個趨勢是,多輪對話更容易引發不安全的響應。也就是說,與基線相比,Llama 2-Chat 仍然表現良好,尤其是在多輪對話中。

下圖19 顯示了不同LLM 在不同類別中安全違規百分比。


參考鏈接:https://ai.meta.com/llama/