像調(diào)雞尾酒一樣調(diào)制多技能大模型,智源等機(jī)構(gòu)發(fā)布LM-Cocktail模型治理策略
隨著大模型技術(shù)的發(fā)展與落地,「模型治理」已經(jīng)成為了目前受到重點(diǎn)關(guān)注的命題。只不過,在實(shí)踐中,研究者往往感受到多重挑戰(zhàn)。
一方面,為了高其在目標(biāo)任務(wù)的性能表現(xiàn),研究者會收集和構(gòu)建目標(biāo)任務(wù)數(shù)據(jù)集并對大語言模型(LLM)進(jìn)行微調(diào),但這種方式通常會導(dǎo)致除目標(biāo)任務(wù)以外的一般任務(wù)的性能明顯下降,損害 LLM 原本具備的通用能力。
另一方面,開源社區(qū)的模型逐漸增多,大模型開發(fā)者也可能在多次訓(xùn)練中累計(jì)了越來越多的模型,每個模型都具有各自的優(yōu)勢,如何選擇合適的模型執(zhí)行任務(wù)或進(jìn)一步微調(diào)反而成為一個問題。
近日,智源研究院信息檢索與知識計(jì)算組發(fā)布 LM-Cocktail 模型治理策略,旨在為大模型開發(fā)者提供一個低成本持續(xù)提升模型性能的方式:通過少量樣例計(jì)算融合權(quán)重,借助模型融合技術(shù)融合微調(diào)模型和原模型的優(yōu)勢,實(shí)現(xiàn)「模型資源」的高效利用。
- 技術(shù)報(bào)告:https://arxiv.org/abs/2311.13534
- 代碼:https://github.com/FlagOpen/FlagEmbedding/tree/master/LM_Cocktail
模型融合技術(shù)可以通過融合多個模型提高單模型的性能。受此啟發(fā),LM-Cocktail 策略進(jìn)一步通過對目標(biāo)任務(wù)計(jì)算不同模型的重要性,賦予不同模型不同的權(quán)重,在此基礎(chǔ)上進(jìn)行模型融合,在提升目標(biāo)任務(wù)上性能的同時,保持在通用任務(wù)上的強(qiáng)大能力。
LM-Cocktail 策略可以幫助匯總各模型的優(yōu)勢能力,就像制作雞尾酒那樣,通過加入不同的模型進(jìn)行調(diào)制,得到一個具備多種特長的「多才」模型。
方法創(chuàng)新
具體而言,LM-Cocktail 可以通過手動選擇模型配比,或者輸入少量樣例自動計(jì)算加權(quán)權(quán)重,來融合現(xiàn)有模型生成一個新模型,該過程不需要對模型進(jìn)行重新訓(xùn)練并且具備適配多種結(jié)構(gòu)的模型,如大語言模型 Llama,語義向量模型 BGE 等。
此外,如果開發(fā)者缺乏某些目標(biāo)任務(wù)的標(biāo)簽數(shù)據(jù),或者缺少計(jì)算資源進(jìn)行模型微調(diào),那么采用 LM-Cocktail 策略可以省去模型微調(diào)步驟,通過構(gòu)造非常少量的數(shù)據(jù)樣例,融合開源社區(qū)中已有的大語言模型來調(diào)制自己的「LM 雞尾酒」。
如上圖所示,在特定目標(biāo)任務(wù)上微調(diào) Llama,可以顯著提高目標(biāo)任務(wù)上的準(zhǔn)確度,但損害了在其他任務(wù)上的通用能力。采用 LM-Cocktail 可以解決這個問題。
LM-Cocktail 的核心是將微調(diào)后的模型與多個其他模型的參數(shù)進(jìn)行融合,整合多個模型的優(yōu)點(diǎn),在提高目標(biāo)任務(wù)上準(zhǔn)確度的同時,保持在其他任務(wù)上的通用能力。具體形式為,給定目標(biāo)任務(wù)、基礎(chǔ)模型,以及一個在該任務(wù)上微調(diào)基礎(chǔ)模型后得到的模型,同時收集開源社區(qū)或以往訓(xùn)練過的模型組成集合。通過目標(biāo)任務(wù)上少量的樣例計(jì)算每個模型的融合加權(quán)權(quán)重,對這些模型的參數(shù)進(jìn)行加權(quán)求和,得到新的模型(具體的過程請參考論文或開源代碼)。如果開源社區(qū)不存在其他模型,也可以直接融合基礎(chǔ)模型和微調(diào)模型,在不降低通用能力的基礎(chǔ)上提升下游任務(wù)表現(xiàn)。
用戶在實(shí)際應(yīng)用場景中,由于數(shù)據(jù)和資源的限制,可能無法進(jìn)行下游任務(wù)的微調(diào),即沒有在目標(biāo)任務(wù)微調(diào)過后的模型。這種情況下,用戶可以通過構(gòu)造非常少量的數(shù)據(jù)樣例融合社區(qū)中已有的大語言模型,生成一個面向新任務(wù)的模型,提高目標(biāo)任務(wù)的準(zhǔn)確度,而無需對模型進(jìn)行訓(xùn)練。
實(shí)驗(yàn)結(jié)果
1. 彈性微調(diào)保持通用能力
從上圖中可以看到,在某個目標(biāo)任務(wù)上進(jìn)行微調(diào)之后,微調(diào)后的模型大幅提高了在該任務(wù)上的準(zhǔn)確度,但其他通用任務(wù)上的準(zhǔn)確度都有所下降。例如,在 AG News 到訓(xùn)練集上進(jìn)行微調(diào),Llama 在 AG News 測試集上準(zhǔn)確度從 40.80% 漲到 94.42%,但在其他任務(wù)上準(zhǔn)確度從 46.80% 下降到了 38.58%。
然而,通過簡單的融合微調(diào)后模型和原模型的參數(shù),在目標(biāo)任務(wù)上實(shí)現(xiàn)了具有競爭力的性能 94.46%,與微調(diào)模型相當(dāng),同時在其他任務(wù)上準(zhǔn)確度為 47.73%, 甚至稍強(qiáng)于原模型的性能。在某些任務(wù)下,如 Helleswag, 融合后的模型甚至可以在該微調(diào)任務(wù)上超過微調(diào)后的模型,并在其他任務(wù)上超過原通用模型,即在繼承微調(diào)模型和原模型的優(yōu)點(diǎn)的同時,超過了他們。可以看出,通過 LM-Cocktail 計(jì)算融合比例,進(jìn)一步融合其他微調(diào)模型,可以在保證目標(biāo)任務(wù)準(zhǔn)確度的同時,進(jìn)一步提升在其他任務(wù)上的通用性能。
2. 混合已有模型處理新任務(wù)
圖:語言模型目標(biāo)任務(wù) MMLU
圖:向量模型目標(biāo)任務(wù) Rerival(信息檢索)
微調(diào)模型需要大量的數(shù)據(jù),同時需要大量的計(jì)算資源,尤其是微調(diào)大語言模型,這些在實(shí)際情況中不一定可以實(shí)現(xiàn)。在無法對目標(biāo)任務(wù)進(jìn)行微調(diào)的情況下,LM- Cocktail 可以通過混合已有的模型(來自開源社區(qū)或者自己歷史訓(xùn)練積累)來實(shí)現(xiàn)新的能力。
通過只給定 5 條樣例數(shù)據(jù),LM-Cocktail 自動計(jì)算融合加權(quán)權(quán)重,從已有的模型進(jìn)行篩選然后融合得到新的模型,而無需使用大量數(shù)據(jù)進(jìn)行訓(xùn)練。實(shí)驗(yàn)發(fā)現(xiàn),生成的新模型可以在新的任務(wù)上得到更高的準(zhǔn)確度。例如,對于 Llama,通過 LM- Cocktail 融合現(xiàn)有 10 個模型(其訓(xùn)練任務(wù)都與 MMLU 榜單無關(guān)),可以取得明顯的提升,并且要高于使用 5 條樣例數(shù)據(jù)進(jìn)行上下文學(xué)習(xí)的 Llama 模型。
歡迎大家體驗(yàn) LM-Cocktail,并通過 GitHub issue 反饋建議:https://github.com/FlagOpen/FlagEmbedding/tree/master/LM_Cocktail