天天看點

LLM-Blender:大語言模型也可以進行內建學習

作者:deephub

最近在看arxiv的時候發現了一個有意思的架構:LLM-Blender,它可以使用Ensemble 的方法來對大語言模型進行內建。

官方介紹如下:LLM-Blender是一個內建架構,可以通過利用多個開源大型語言模型(llm)的不同優勢來獲得始終如一的卓越性能。

LLM內建

我們都知道內建學習是一種機器學習方法,旨在提高預測模型的性能和魯棒性。它通過将多個不同的學習器(如決策樹、神經網絡等)結合成一個整體,來取得比單個學習器更好的預測效果。比如最常見的Kaggle比賽中就廣泛的使用了這種方法。

那麼大語言模型有必要進行內建嗎

LLM-Blender:大語言模型也可以進行內建學習

論文給出了以下觀點:

由于資料、架構和超參數的變化,LLM表現出不同的優勢和劣勢,使它們互補。并且目前不存在一個開源LLM在所有例子中都占主導地位。可以內建LLM的輸出(基于輸入、任務和領域),以便在不同的示例中提供一緻的卓越性能。結合他們獨特的貢獻;可以減輕個别LLM的偏差、誤差和不确定性,進而使産出與人類偏好保持一緻。

LLM-Blender

是以論文就給出了一個架構LLM-Blender

LLM-Blender:大語言模型也可以進行內建學習

LLM-Blender有兩個子產品:PairRanker和GenFuser。PairRanker比較多個模型的輸出,給出排名最高的輸出。然後GenFuser将前幾個排名靠前的輸出融合在一起,生成最終輸出。

1、PairRanker是如何工作的

PairRanker子產品用于有效地識别候選模型輸出之間的細微差異,并根據它們的品質對它們進行排名。

收集N個模型的輸出,并以總共N(N-1)/2種方式進行配對(從總共N個項目中選擇2個項目的組合次數)。

然後根據以下條件對結果進行評估:給定輸入提示,哪個候選人的輸出更好。

在推理過程中,計算一個包含表示兩兩比較結果的對數的矩陣。給定該矩陣确定并選擇排名前k的輸出用于GenFuser子產品。

2、GenFuser是如何工作的

GenFuser子產品使用PairRanker子產品排名靠前的輸出,為最終使用者生成潛在的改進輸出。該子產品融合了排名前n位的結果中的前K位,并産生了改進的輸出,利用他們的優勢和減輕他們的弱點。

基準測試

論文介紹了一個名為mixdirective的新資料集,用于對llm在指令跟随任務中的內建模型進行基準測試。

該資料集擁有來自Alpaca-GPT4、Dolly-15K、GPT4-ALL-LAION和ShareGPT的大規模指令示例集。

有10萬例用于訓練,5萬例用于驗證,5萬例用于測試。

使用N = 11個流行的開源LLM進行測試。候選的輸出使用ChatGPT對所有候選對進行評估。對于每一對,ChatGPT被要求判斷那個是更好的。

LLM-Blender:大語言模型也可以進行內建學習

可以看到各個LLM有不同的優勢和劣勢。頂尖的LLM在測試中并不總是最優的。PairRanker優于其他LLM。LLM-Blender組合比其他任何單個模型更好。

限制

最主要的還是效率,因為對PairRanker中top-K輸出進行排序的過程需要調用模型O(n²)次才能獲得最佳性能。解決這個問題的一種方法是使用多輪氣泡排序方法來減少所需的推斷數量。另一種提高時間效率的方法是并行執行PairRanker的推理,因為它們是獨立的,也就是多個模型同時推理。

目前論文使用的是在ChatGPT幫助下的自動評估。雖然自動評估是一個很好的選擇,但人工評價可以提供更可靠、更全面的評價結果。

繼續閱讀