更強的Llama 2開源,可直接商用:一夜之間,大模型格局變了
一夜之間,大模型格局再次發生巨變。
圖片
一直以來 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 預訓練模型評估
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 的結果均與谷歌 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 在不同類別中安全違規百分比。