本文來自DataLearner官方部落格:支援超長上下文輸入的大語言模型評測和總結——ChatGLM2-6B表現慘烈,最強的依然是商業模型GPT-3.5與Claude-1.3 | 資料學習者官方網站(Datalearner)
盡管大語言模型發展速度很快,但是大多數模型對于上下文長度的支援都非常有限。長上下文對于很多任務來說都十分重要。如文檔生成、多輪對話、代碼生成等任務都需要較長的上下文輸入才能取得較好的效果。
目前開源領域已經有一些模型宣稱支援了8K甚至是更長的上下文。那麼這些模型在長上下文的支援上表現到底如何?最近LM-SYS釋出了LongChat-7B和LangChat-13B模型,最高支援16K的上下文輸入。為了評估這兩個模型在長上下文的表現,他們對很多模型在長上下文的表現做了評測,讓我們看看這些模型的表現到底怎麼樣。
支援超長上下文對大語言模型(LLM)意味着什麼
所謂LLM的上下文長度其實就是LLM背後模型的輸入長度。大多數大語言模型的輸入長度都在2K以内。以輸入長度是2048為例。這個長度的含義是模型一次性接受輸入的tokens數量為2048個。根據OpenAI官方的介紹,一般tokens換算到單詞的比例是75%左右,這意味着2K模型的輸入一般隻能支援2048*0.75=1500個單詞的輸入(關于為什麼LLM輸入是token而不是單詞可以參考:https://www.datalearner.com/blog/1051671195034710 )。
盡管對于大多數任務來說,1500個單詞的輸入是足夠的,但是如果需要對文檔進行了解、支援多輪對話、代碼了解和生成這些任務來說,更長的輸入是必要的。而目前,超過2K的大模型并不多。
LLM對上下文長度輸入的限制主要原因在于過長的輸入會使模型的資源使用急劇擴大,而過長的訓練資料也可能因為關聯問題帶來品質的下降。是以,對于超長上下文的支援都會限制在一定範圍内。但是,目前業界已經有一些支援超長輸入的LLM,最高的已經達到100K。
支援超長上下文長度的大語言模型(LLM)總結
這裡定義的支援超長上下文長度的LLM是指支援超過2K輸入的LLM。原因是大多數模型都能達到2K輸入,而且開源LLM的領頭羊LLaMA的輸入限制就是2048。是以,我們這裡隻關注超出這個結果的LLM。
下表是DataLearner官方總結的支援超過2k輸入的LLM清單:
模型名稱 | 最高輸入 | 釋出者 | 開源情況 | 模型資訊卡位址 |
MPT-7B-storywriter | 65K | MosaicML | ✅開源且免費商用 | https://www.datalearner.com/ai-models/pretrained-models/MPT-7B-StoryWriter-65k+ |
MPT-30B-chat | 8K | MosaicML | ❌開源但不可商用 | https://www.datalearner.com/ai-models/pretrained-models/MPT-7B-Chat |
ChatGLM2-6B | 32K | THUDM | ❌開源但收費商用 | https://www.datalearner.com/ai-models/pretrained-models/ChatGLM2-6B |
XGen-7B 系列 | 8K | Salesforce | ✅ 部分開源且免費商用 | https://www.datalearner.com/ai-models/foundation-models/XGen-7B |
LongChat-7B-16K | 16K | LM-SYS | ❌開源但不可商用 | |
LongChat-13B-16K | 16K | LM-SYS | ❌開源但不可商用 | |
GPT-3.5-Turbo-16K | 16K | Salesforce | ❌商用 | https://www.datalearner.com/ai-models/pretrained-models/gpt-3-5 |
Claude-1.3-100K | 100K | Salesforce | ❌ 商用 | / |
可以看到,超過2K輸入的模型并不多(如果你知道其它的也歡迎留言)。而這其中開源且可以免費商用的隻有MPT-7B-storywriter和XGen 7B系列中的2個(XGen是Salesforce在6月30日釋出的,目前包含3個,分别是XGen-7B-4K-base、XGen-7B-8K-base和XGen-7B-8K-inst,前兩個免費商用授權,最後一個不可商用:https://www.datalearner.com/blog/1051688055743803 )
各個模型在超長上下文的表現
LM-SYS是著名開源大語言模型Vicuna系列背後的組織,也是前面LongChat模型的釋出者。LM-SYS推出的大語言模型匿名評測(Chatbot Arena Leaderboard)受到了廣泛的關注。
是以,針對此次超長上下文模型的釋出,LM-SYS在官方也公布了他們對這些模型的評測結果。由于XGen 7B釋出比較晚,本次評測沒有包含。
本次評測包含2個任務,結果如下:
下圖是超長主題檢索評測結果總結:
下圖是超長行檢索評測結果總結:
非常直覺且殘酷,2個商業大語言模型GPT-3.5-Turbo-16K與Claude-1.3-100K在超長上下文評測任務中表現十分穩定,完勝所有開源模型。更加悲劇的是國産翹楚ChatGLM2-6B模型,超長話題檢索任務中,在超過6K之後性能急劇下降,準确率在10K、13K、16K上直接降低到了0!在行檢索任務上表現12K以内墊底,12K以上,MPT-30B-Chat降到了0,隻有LongChat表現尚可,可以說,開源模型一片慘淡!
這個評測是基于LM-SYS最新推出的LongEval評測系統做的。超長上下文評測任務與正常的LLM差别很大。因為很多任務可能用不到超長上下文,二者存在很大差距,而模型對超長上下文支援的方向可能也不相同。本次LM-SYS推出的LongEval是專門用以評測超長規模大語言模型性能的測試套件。主要包含以下2類任務:
任務1 - 粗粒度主題檢索:在現實生活中的長對話中,使用者通常會與chatbot交談和切換多個主題。主題檢索任務模拟了這種場景,要求chatbot檢索長對話中包含多個主題的第一個主題。
任務2 - 精細粒度行檢索:為了進一步測試模型從長對話中定位和關聯文本的能力,LongChat引入了一種更精細粒度的行檢索測試。在這項測試中,LLM需要從長文檔中精确檢索出一個編号,而不是從多輪長對話中檢索一個主題。
官方宣稱這兩個任務都是大家在使用LLM遇到的比較多的超長上下文的應用場景,代表了模型在支援現實中超長上下文使用的真實場景。
超長上下文模型評測結果總結
盡管開源模型在長上下文支援中比較慘,但是也有一個亮點,即LongChat在16K以内輸入場景中表現不錯。他們也完全開源了他們的方法,相信開源領域很快會有相應的改進模型。
不過,需要承認的是,LongChat在接近16K輸入附近表現就很差了。官方認為主要是他們微調的時候就是16K作為目标導緻的結果。如果未來改成32K作為輸入微調的目标,相信會有較大的改進。
不過,總的來說,開源領域的LLM在對超長上下文的支援上還是有所欠缺,還需要很多努力~
LM-SYS關于本次超長上下文評測的官方部落格:https://lmsys.org/blog/2023-06-29-longchat/