Llama-2+Mistral+MPT=? 融合多個異構大模型顯奇效
隨著 LLaMA、Mistral 等大語言模型的成功,各家大廠和初創公司都紛紛創建自己的大語言模型。但從頭訓練新的大語言模型所需要的成本十分高昂,且新舊模型之間可能存在能力的冗余。
近日,中山大學和騰訊 AI Lab 的研究人員提出了 FuseLLM,用于「融合多個異構大模型」。
不同于以往的模型集成和權重合并,前者需要在推理時同時部署多個大語言模型,后者需要合并模型具備相同的結果,FuseLLM 能夠從多個異構大語言模型中外化知識,將各自的知識和能力通過輕量的持續訓練轉移到一個融合大語言模型中。
該論文剛剛在 arXiv 上發布就引起了網友的大量關注和轉發。
有人認為,「當想要在另一種語言上訓練模型時,使用這種方法是非常有趣的」,「我一直在思考這件事」。
目前該論文已被 ICLR 2024 接受。
- 論文標題:Knowledge Fusion of Large Language Models
- 論文地址:https://arxiv.org/abs/2401.10491
- 論文倉庫:https://github.com/fanqiwan/FuseLLM
方法介紹
FuseLLM 的關鍵在于從概率分布表征的角度來探討大語言模型的融合,對于同樣的輸入文本,作者認為由不同大語言模型生成的表征可以反映出它們在理解這些文本時的內在知識。因此,FuseLLM 首先利用多個源大語言模型生成表征,將它們的集體知識和各自優勢外化,然后將生成的多個表征取長補短進行融合,最后經過輕量級的持續訓練遷移到目標大語言模型。下圖展示了 FuseLLM 方法的概述。
考慮到多個異構大語言模型的 tokenizer 以及詞表存在差異,在融合多個表征時,如何對齊分詞結果是一大關鍵: FuseLLM 在 token 級別的完全匹配之上,額外設計了基于最小編輯距離的詞表級別對齊,最大程度地保留了表征中的可用信息。
為了在結合多個大語言模型的集體知識的同時保持其各自的優勢,需要精心設計用于融合模型生成表征的策略。具體而言,FuseLLM 通過計算生成表征和標簽文本之間交叉熵來評估不同大語言模型對這條文本的理解程度,然后引入了兩種基于交叉熵的融合函數:
- MinCE: 輸入多個大模型為當前文本生成的表征,輸出交叉熵最小的表征;
- AvgCE: 輸入多個大模型為當前文本生成的表征,輸出基于交叉熵獲得的權重加權平均的表征;
在持續訓練階段,FuseLLM 使用融合后的表征作為目標計算融合損失,同時也保留了語言模型損失。最終的損失函數為融合損失和語言模型損失之和。
實驗結果
在實驗部分,作者考慮了一個通用但具有挑戰性的大語言模型融合場景,其中源模型在結構或能力上具備較小的共性。具體來說,其在 7B 規模上進行了實驗,并選擇了三個具有代表性的開源模型:Llama-2、OpenLLaMA,和 MPT 作為待融合的大模型。
作者在通用推理、常識推理、代碼生成、文本生成、指令跟隨等場景評估了 FuseLLM,發現其相較于所有源模型和繼續訓練基線模型取得了顯著的性能提升。
通用推理 & 常識推理
在測試通用推理能力的 Big-Bench Hard Benchmark 上,經過持續訓練后的 Llama-2 CLM 相較于 Llama-2 在 27 個任務上取得了平均 1.86% 的提升,而 FuseLLM 則相較于 Llama-2 取得了 5.16% 的提升,顯著優于 Llama-2 CLM,說明 FuseLLM 能結合多個大語言模型的優勢取得性能提升。
在測試常識推理能力的 Common Sense Benchmark 上,FuseLLM 超過了所有的源模型和基線模型,在所有任務上都取得了最佳的性能。
代碼生成 & 文本生成
在測試代碼生成能力的 MultiPL-E Benchmark 上,FuseLLM 在 10 個任務中,有 9 個超過了 Llama-2,取得了平均 6.36% 的性能提升。而 FuseLLM 沒有超過 MPT 和 OpenLLaMA 的原因可能是由于使用 Llama-2 作為目標大語言模型,其代碼生成能力較弱,且持續訓練語料中的代碼數據比例較低,僅占約 7.59%。
在多個測量知識問答(TrivialQA)、閱讀理解(DROP)、內容分析(LAMBADA)、機器翻譯(IWSLT2017)和定理應用(SciBench)的文本生成 Benchmark 上,FuseLLM 也在所有任務中超過了所有源模型,并在 80% 的任務中超過了 Llama-2 CLM。
指令跟隨
由于 FuseLLM 僅需提取多個源模型的表征進行融合,然后對目標模型持續訓練,因此其也能適用于指令微調大語言模型的融合。在評估指令跟隨能力的 Vicuna Benchmark 上,FuseLLM 同樣取得了出色表現,超過了所有源模型和 CLM。
FuseLLM vs. 知識蒸餾 & 模型集成 & 權重合并
考慮到知識蒸餾也是一種利用表征提升大語言模型性能的方法,作者將 FuseLLM 和用 Llama-2 13B 蒸餾的 Llama-2 KD 進行了比較。結果表明,FuseLLM 通過融合三個具有不同架構的 7B 模型,超過了從單個 13B 模型蒸餾的效果。
為了將 FuseLLM 與現有融合方法進行比較(例如模型集成和權重合并),作者模擬了多個源模型來自相同結構的底座模型,但在不同的語料庫上持續訓練的場景,并測試了各種方法在不同測試基準上的困惑度。可以看到雖然所有的融合技術都可以結合多個源模型的優勢,但 FuseLLM 能達到最低的平均困惑度,表明 FuseLLM 具備能比模型集成和權重合并方法更有效地結合源模型集體知識的潛力。
最后,盡管社區目前已經關注大模型的融合,但目前的做法大多基于權重合并,無法擴展到不同結構、不同規模的模型融合場景。雖然 FuseLLM 只是一項初步的異構模型融合研究,但考慮到目前技術社區存在大量不同的結構和規模的語言、視覺、音頻和多模態大模型,未來這些異構模型的融合會迸發出怎樣驚人地表現呢?讓我們拭目以待!