「Meta版ChatGPT」背後的技術:想讓基礎LLM更好地處理長上下文,只需持續預訓練

在處理長上下文方面,LLaMA 一直力有不足,而通過持續預訓練和其它一些方法改進,Meta 的這項研究成功讓 LLM 具備了有效理解上下文的能力。

大型語言模型(LLM)所使用的資料量和計算量都是前所未見的,這也使其有望從根本上改變我們與數字世界的互動方式。隨著 LLM 被不斷快速部署到生產環境中並不斷擴展進化,可以預見這些模型將能在更多複雜精細的用例中提供服務,比如分析具備豐富知識的密集型文件、提供更加真實和有參與感的聊天機器人體驗、在程式設計和設計等互動式創造過程中輔助人類使用者等。

為了支持這種演進發展,模型需要的一大關鍵能力就是:高效處理長上下文輸入。

到目前為止,具有穩健長上下文功能的 LLM 主要來自專有 LLM API,如 Anthropic 和 OpenAI 提供的 LLM 服務。現有的開源長上下文模型往往評估研究不足,而是主要通過語言建模損失和合成任務來衡量其長上下文能力,這樣的評估無法全面展示模型在各種真實世界場景中的有效性。

不僅如此,這些模型往往還會忽視在標準短上下文任務中保持強大性能的必要性,要麼就直接不評估,要麼報告出現了性能下降情況。

近日,Meta 團隊提出了一種新方法,宣稱可以有效地擴展基礎模型的上下文能力,並且用該方法構建的長上下文 LLM 的性能表現優於所有現有的開源 LLM。

論文:https://arxiv.org/abs/2309.16039

他們是通過對 LLaMA 2 檢查點進行持續預訓練來構建模型,這其中用到了另外 4000 億個 token 構成的長訓練序列。在訓練的系列模型中,較小的 7B/13B 變體模型的訓練使用了 32,768 token 長的序列,而 34B/70B 變體則使用了 16,384 token 長的序列。

評估方面,不同於之前已有模型的有限評估,Meta 的這個團隊進行了更為全面的評估研究,涵蓋語言建模、合成任務以及許多涉及長或短上下文任務真實世界基準任務。

在語言建模任務上,新方法訓練的模型在上下文長度方面表現出了明顯的冪律縮放行為。如圖 1 所示,這種縮放行為不僅表明新模型能夠持續受益於更多上下文,也表明上下文長度是 LLM 擴展方面的一大重要軸線。

通過對比新模型與基準 LLaMA 2 在研究基準上的表現,研究者觀察到新模型在長上下文任務上有明顯優勢,在短上下文任務上也有適度提升,尤其是在程式設計、數學和知識類任務基準上。

他們還探索了一種簡單且有成本效益的指令微調方法,可在沒有任何人工標註資料的情況下對經過持續預訓練的長模型進行微調。他們基於此方法得到的聊天模型在一系列長上下文基準任務(包括問答、摘要和多文件聚合)上的整體表現勝過 gpt-3.5-turbo-16k。

方法

持續預訓練

由於注意力計算會隨序列長度增大呈二次增長,因此當使用更長的序列進行訓練時,計算開銷也會顯著增大。解決這一難題正是本研究的主要目標。

研究者假設:對短上下文模型進行持續預訓練可讓該模型具備上下文能力。然後他們通過實驗驗證了這一猜測。

在實驗中,他們保持原始 LLaMA 2 的架構基本不變,僅對位置編碼進行了必要的修改,以便其能將注意力覆蓋更長的序列。此外,他們還選擇不使用稀疏注意力,因為 LLaMA 2 70B 模型的維度為 h=8192,而只有當序列長度超過 49,152 (6h) 個 token 時,注意力矩陣計算和值聚合的成本才會成為計算瓶頸。

位置編碼。通過 7B 模型的早期實驗,研究者發現了 LLaMA 2 的位置編碼(PE)的一大關鍵侷限 —— 其有礙注意力模組聚合相聚較遠的 token 的資訊。為了解決這個問題,使模型能處理長上下文建模,研究者對 RoPE 位置編碼方法進行了少量但必要的修改,即減小旋轉角度(由基頻 b 這個超參數控制),其作用是降低 RoPE 對遠距離 token 的衰減效應。研究者通過實驗展現了這種簡單方法在擴展 LLaMA 上下文長度方面的有效性,並還給出了理論解釋。

資料混合。基於使用修改版位置編碼的模型,研究者還進一步探索了不同資料混合方法對提升長上下文能力的作用,其中涉及的方法包括調整 LLaMA 2 的預訓練資料的比例和添加新的長文字資料。研究者發現:對於長文字的持續預訓練而言,資料的質量往往比文字的長度更重要。

最佳化細節。那麼他們究竟是如何實現持續預訓練的呢?據介紹,他們在對 LLaMA 2 檢查點模型進行持續預訓練時,會在保證 LLaMA 2 中每批資料同等 token 量時不斷增大序列長度。所有模型都使用總計 4000 億個 token 訓練了 10 萬步。使用 Dao et al. (2022) 提出的 FlashAttention,當增大序列長度時,GPU 記憶體開銷幾乎可以忽略不計;研究者觀察到,對於 70B 模型,當序列長度從 4096 增至 16384 時,速度下降了大約 17%。對於 7B/13B 模型,他們使用的學習率為 2e^−5,並使用了餘弦學習率計劃,預熱步驟為 2000 步。對於更大的 34B/70B 模型,該團隊發現設置更小的學習率(1e^-5 )很重要,這樣才能讓驗證損失單調遞減。

指令微調

為 LLM 對齊任務收集人類演示和偏好標籤是一個繁瑣而昂貴的過程。對於長上下文任務,這一挑戰和成本更為突出,因為這些任務通常涉及複雜的資訊流和專業知識,例如處理資訊密集的法律 / 科學文件 —— 即使對於熟練的標註者來說,這些標註任務也不簡單。事實上,大多數現有的開源指令資料集都主要由短樣本組成。

針對這一問題,Meta 的這個研究團隊發現了一種簡單且低成本的方法,其能利用已經構建好的大規模和多樣化的短 prompt 資料集,並使其很好地適用於長上下文基準任務。

具體來說,他們取用了 LLaMA 2 Chat 使用的 RLHF 資料集,並使用 LLaMA 2 Chat 自身合成的自指示(self-instruct)長資料對其進行了增強。研究者表示,他們希望模型可以藉此通過大量 RLHF 資料學習多樣化的技能組合並通過自指示資料將所學知識遷移至長上下文場景。

這個資料生成過程重點關注的是問答格式的任務:先從預訓練預料庫的一個長文件開始,從中隨機選出一塊文字,然後通過 prompt 讓 LLaMA 2 Chat 基於該文字塊中的資訊寫出成對的問答。研究者收集了不同 prompt 的長形式和短形式答案。

之後還有一個自批判(self-critique)步驟,即通過 prompt 讓 LLaMA 2 Chat 驗證模型生成的答案。給定生成的問答對,研究者使用原始長文件(已截斷以適應模型的最大上下文長度)作為上下文來構建一個訓練實例。

對於短指令資料,研究者會將它們連接成 16,384 token 長的序列。對於長指令資料,他們會在右側添加填充 token,以便模型可以單獨處理每個長實例,而無需截斷。

雖然標準的指令微調只在輸出 token 上計算損失,但該團隊發現,如果也在長輸入 prompt 上計算語言建模損失,也能獲得特別的好處,因為這能為下游任務帶來穩定持續的提升。

主要結果

評估預訓練後的模型

表 1 聚合給出了在標準的短上下文基準任務上的性能表現。

在短上下文任務上,如表 2 所示,使用新方法得到的模型在 MMLU 和 GSM8k 上優於 GPT-3.5。

在長上下文任務上,如表 3 所示,新模型整體上表現更優。在 7B 規模的模型上,只有 Together-7B-32k 取得了與新模型相當的表現。

有效利用上下文。為了驗證新模型確實能有效使用增大的上下文窗口,從圖 2 可以看到,在每個長任務上的結果都會隨上下文長度的增長而單調提升。研究者還發現,新模型的語言建模損失與上下文長度之間存在一種冪律加常數的縮放關係(見圖 1),這說明:

  • 在語言建模任務上,隨著上下文長度增長,一直到 32,768 token 長的文字,新模型的性能都會持續提升,儘管後面的提升幅度會不斷變小。
  • 更大的模型能更有效地利用上下文,這從那些曲線的 β 值可以看出。
指令微調結果

指令微調結果

如表 4 所示,在不使用任何人類標註的長上下文資料的情況下,新訓練的 70B 規模的聊天模型在 10 項任務中的 7 項上都優於 gpt-3.5-turbo-16k。

人類評估

人類評估

通過計算每個相比較的示例結果的平均值,可以看出實驗中新模型的標準勝率優於其它每個模型;圖 3 給出了最終得分以及 95% 的置信區間。

在指令資料很少的情況下,新方法所得模型的表現可與 MPT-30B-chat、GPT-3.5-turbo-16k 和 Claude-2 媲美。

分析

圖 4 展示了基頻(base frequency)變化的影響。

基於這些評估,整體上看,新提出的 RoPE ABF(基頻調整版 RoPE)優於相比較的所有其它方法。

表 7 則通過 7B 模型實驗展示了所使用的資料混合方法對長上下文任務帶來的提升。

研究者還發現新的資料混合方法在很多情況下還能帶來很大的提升,尤其是對於 MMLU 等知識密集型任務,如表 8 所示。

這些結果表明,即使使用非常有限的長資料,也可以有效地訓練長上下文 LLM。而且研究者表示,相比於 LLaMA 2 所使用的預訓練資料,該團隊所使用的資料的優勢在於資料本身的質量,而不是長度分佈上的差異。

而表 9 表明,通過指令微調這種簡單技巧,可讓模型更加穩定地應對輸入和輸出長度不平衡的情況,從而在大多數測試任務中取得顯著改進。

表 10 和 11 則表明對短上下文模型持續預訓練可在幾乎無損於性能表現的同時輕鬆節省約 40% 的 FLOPs。

AI 安全

AI 安全

在 AI 安全方面,研究者觀察到,與 LLaMA 2 Chat 相比,經過指令微調的模型整體上能維持相近的安全性能;而且與 Falcon-instruct 和 MPT-instruct 等其它開源 LLM 相比,經過指令微調的模型會更安全且偏見也更少。

華人作者介紹

華人作者介紹

Wenhan Xiong

Wenhan Xiong 現為 Meta Generative AI 研究科學家,他本科畢業於中國科技大學,博士畢業於加州大學聖巴巴拉分校。他的研究致力於打造能完成複雜、專業的長文字大語言模型,參與了包括 Code Llama 在內的多個研究項目,博士期間他專注構建開放問答系統和檢索增強的自然語言處理。

個人主頁:https://xwhan.github.io/

Jingyu Liu

Jingyu Liu 現為蘇黎世聯邦理工學院碩士研究生,本科畢業於紐約大學計算機系,此前在 Meta Generative AI 做大語言模型的研究,他參與了包括 Code Llama 在內的多個研究項目。

Google學術:https://scholar.google.com/citations?user=jidrykQAAAAJ&hl=en

Hejia Zhang

Hejia Zhang 現為 Meta Generative AI 組高級研究科學家,主要研究 Meta 基礎大模型、AI Agent,及其在 Meta 產品線中的應用,此前曾在 Meta 推薦系統和人工智慧組進行自然語言處理相關研究。她本科畢業於萊斯大學(電子工程和應用數學雙學位),博士畢業於普林斯頓大學(電子工程和神經科學聯合學位)。

Google學術:https://scholar.google.com/citations?user=bI0cfykAAAAJ&hl=en

Rui Hou

Rui Hou 現為 Meta GenAI 研究科學家,主要研究生成式 AI 技術以及相關的生產應用。他於 2020 年 4 月入職 Meta,此前曾在TOYOTA(豐田)研究院等機構實習。

他本科畢業於同濟大學,碩士(智慧系統和電腦科學雙學位)和博士(智慧系統)均畢業於密歇根大學。

Google學術:https://scholar.google.com/citations?user=PKHKqX0AAAAJ&hl=en

Angela Fan

Angela Fan 是 Meta AI Research Paris 的研究科學家,主要研究機器翻譯。此前她曾在南錫 INRIA 和巴黎 FAIR 攻讀博士學位,主要研究文字生成。在此之前,她是一名研究工程師,並在哈佛大學獲得了統計學學士學位。

個人主頁:https://ai.meta.com/people/angela-fan/

Han Fang

Han Fang 現為 Meta Generative AI 組高級經理,負責 AI agent 以及 LLAMA 在 meta 的應用開發,此前曾在 meta 推薦系統和人工智慧組任職。他本科畢業於中山大學,博士畢業於紐約州立大學石溪分校應用數學與統計專業。

個人主頁:https://ai.meta.com/people/han-fang/

Sinong Wang

Sinong Wang 現為 Meta 高級主任科學家,Meta Generative AI 組技術負責人。目前領導 Meta 基礎大模型和 AI agent 開發,以及在 meta 產品線中的應用。此前他在 Meta AI 致力於自然語言處理、transformer 架構、(語言 / 圖像)多模態研究。他博士畢業於俄亥俄州立大學電氣與計算機工程專業,並多次獲得 ACM/IEEE 最佳論文獎。

個人主頁:https://sites.google.com/site/snongwang/

Hao Ma

Hao Ma 現為 Meta Generative AI 組總監,負責大模型和語音基礎模型研究和在產品當中的應用,曾在 Meta discovery 組負責開發下一代 AI 推薦系統和 AI 安全系統。此前曾在微軟研究院擔任研究經理,負責知識圖譜在 bing 當中的開發。他博士畢業於香港中文大學計算機專業,並多次獲得 ACM test-of-time award.

個人主頁:https://www.haoma.io/

相關文章

ChatGPT 背後的經濟賬

ChatGPT 背後的經濟賬

拿投資和賺錢之前,要先去了解下成本。 ChatGPT 能否取代 Google、百度這樣的傳統搜尋引擎?為什麼中國不能很快做出 ChatGPT...