LLM 合并新思路:進化算法+零訓練->新任務
一、背景
我們之前介紹過一些 LLM 模型融合或堆疊的方案,然而這些方案通常需要人工設(shè)計或者繼續(xù)訓練、微調(diào),這里我們介紹一篇新的工作試圖解決這些問題,其思路很有意思,為后續(xù)的模型生產(chǎn)提供了一條思路,也得到了意想不到的結(jié)果。
需要說明的是,雖然開源了代碼,單開源代碼中并沒有開放如何合并的代碼,導致合并的細節(jié)無法獲知。此外,相應的代價有多高也沒有具體介紹,比如評估成本。
對應的論文為:[2403.13187] Evolutionary Optimization of Model Merging Recipes
對應的代碼庫:?https://github.com/SakanaAI/evolutionary-model-merge??
對應的官網(wǎng):?https://sakana.ai/evolutionary-model-merge/??
二、摘要
論文中,作者將進化算法應用到 LLM 模型融合場景,通過自動發(fā)現(xiàn)各種開源模型的有效組合,充分利用它們已有的知識,在不需要額外訓練的情況下獲得了不錯的效果。具體來說,作者通過參數(shù)空間融合(parameter space,PS)和數(shù)據(jù)流空間融合(data flow space,DFS)相結(jié)合的方式獲得新的融合模型。這種方式甚至可以實現(xiàn)跨領(lǐng)域合并,作者基于日語模型和英語數(shù)學模型生成了日語數(shù)學模型,在各種模型上獲得了 SOTA 性能。此外也在 VLM(Vision Large Model)和圖像生成模型上進行了驗證,獲得不錯的結(jié)果。
三、方法
3.1 參數(shù)空間融合
參數(shù)空間融合在之前的方案中已經(jīng)有比較多介紹,其核心就是將具有相同模型結(jié)構(gòu),但是針對不同任務或場景的模型在同一 Transformer 層按照加權(quán)平均的方式直接合并模型參數(shù)。(混合權(quán)重可以通過進化算法來學習,比如 CMA-ES)
比如,在 [2311.07575] SPHINX: The Joint Mixing of Weights, Tasks, and Visual Embeddings for Multi-modal Large Language Models 中,作者提出了將不同領(lǐng)域微調(diào)模型融合的策略,如下圖所示,作者驗證了直接混合 LLM 的效果(GitHub - Alpha-VLLM/WeMix-LLM):
3.2 數(shù)據(jù)流空間融合
數(shù)據(jù)流空間融合是指將多個模型的 Transformer 層直接堆疊到一起進行融合,但這種方式往往是人工確定融合方案,而且往往需要再次訓練或者微調(diào),以彌補不同模型分布不一致導致的性能下降:
這種方式有點類似 [2312.15166] SOLAR 10.7B: Scaling Large Language Models with Simple yet Effective Depth Up-Scaling 中的堆疊方式,具體來說:
- Step 1-1:將原始 LLM 復制一份,假設(shè)包含 n 層 Transformer Block(n=32)。
- Step 1-2:刪除原始模型的后 m 層,和副本模型的前 m 層(m=8),并將兩個新的模型拼接在一起,新的模型包含 2*(n-m)=48 層 Transformer Block。
- Step 2:在新的模型上繼續(xù)預訓練。?
本文的主要工作是通過引入進化算法來避免龐大的人工組合代價。假設(shè)多個候選模型,總共有 M 個 Transformer 層,需要組合的模型包含 T 個 Transformer 層,則相應的組合空間為 (M+1)T,其中的 1 表示當前已組合的模型,M 表示每次都可以從 M 層中選一個,可以重復。假設(shè)有 2 個 32 層的模型組合為一個 48 層的模型,相應的變種為 (64+1)48,空間非常大,幾乎不現(xiàn)實。
所以核心問題就是如何降低上述的搜索空間。作者發(fā)現(xiàn),部分層組合方式可能對模型產(chǎn)生不利的影響,比如重復/交換模型比較靠前的一些層(PS:這里介紹不多,比較困惑)?;谶@個發(fā)現(xiàn),作者構(gòu)建了一個層索引數(shù)組 L,其大小為 T=Mxr,其中 r 表示重復的次數(shù)。這個數(shù)量 L 表明:將模型的層按照順序排列,一個模型的層順序不變,然后一個模型接一個模型,類似(模型1:第1層,第2層,。。。),(模型2:第1層,第2層,。。。),然后將上述序列重復 r 次。如果 Li > 0,則表示使用對應的層,否則不使用,這樣對應的搜索空間為 2T。(PS:這樣是不是意味著評估的代價也很高,比如 MGSM accuracy 和 VQA ROUGE 等指標都要在相應的模型里面評估一次,無法按照每層評估。)
PS:這兩個地方的 T 含義是否相同,比如是否表示最終要生成模型的層數(shù) T?
- 如果一樣,那 T 可能并不會特別大,比如 2 個 32 層的模型組合為一個 48 層的模型,則對應的 r 為 0.75,此時 L 無法與所有 M 層對應。
- 如果不一樣,T 通常大于 M,比如為 2,則如何保證生成特定層數(shù)的模型?
此外,作者觀察到,如果交換相鄰 Transformer 層的順序,會使性能下降,但是對輸入增加一定的 Scaling 可以緩解這一問題?;诖耍髡邩?gòu)建了一個權(quán)重矩陣 Wi,j,大小為 (M, M),表示任意兩層相連的 Scaling 因子。
綜上,作者確定了兩個優(yōu)化參數(shù),L 和 W,使用進化算法搜索完即可以合并模型。
3.3 參數(shù)空間+數(shù)據(jù)流空間融合
那么如何將上述兩種方案融合呢?作者的思路也很簡單:
- 首先使用參數(shù)空間融合策略獲得一個合并的模型。
- 將候選模型和合并的模型一起作為候選模型。
- 基于以上模型進行數(shù)據(jù)流空間融合。
四、評估
如下圖 Table 1 所示,Shisa Gamma 7B v1 為日語通用模型,WizardMath 7B v1.1 和 Abel 7B 002 都是英語數(shù)學模型,它們都是基于 Mistral 7B v0.1 微調(diào)而來。4 和 5 表明,PS 和 DFS 能有效幫助提升模型的日語數(shù)學能力,將 PS+DFS 結(jié)合可以在 MGSM-JA 指標上進一步改善,但 JP-LMEH 指標相比 PS 略有降低,證明了方案的有效性。
如下圖 Table 2 所示,作者也進一步證明提出的策略不會導致已有能力的衰退:
如下圖 Table 3 所示,作者也在 VLM 上進行了驗證,獲得了不錯的效果:
五、參考鏈接
- ???https://arxiv.org/abs/2403.13187???
- ???https://github.com/SakanaAI/evolutionary-model-merge???
- ???https://sakana.ai/evolutionary-model-merge/????
本文轉(zhuǎn)載自 ??AI閑談??,作者: AI閑談
