一句話解鎖100k+上下文大模型真實(shí)力,27分漲到98,GPT-4、Claude2.1適用
各家大模型紛紛卷起上下文窗口,Llama-1時(shí)標(biāo)配還是2k,現(xiàn)在不超過100k的已經(jīng)不好意思出門了。
然鵝一項(xiàng)極限測試卻發(fā)現(xiàn),大部分人用法都不對,沒發(fā)揮出AI應(yīng)有的實(shí)力。
AI真的能從幾十萬字中準(zhǔn)確找到關(guān)鍵事實(shí)嗎?顏色越紅代表AI犯的錯(cuò)越多。
默認(rèn)情況下,GPT-4-128k和最新發(fā)布的Claude2.1-200k成績都不太理想。
但Claude團(tuán)隊(duì)了解情況后,給出超簡單解決辦法,增加一句話,直接把成績從27%提升到98%。
只不過這句話不是加在用戶提問上的,而是讓AI在回復(fù)的開頭先說:
“Here is the most relevant sentence in the context:”
(這就是上下文中最相關(guān)的句子:)
讓大模型大海撈針
為了做這項(xiàng)測試,作者Greg Kamradt自掏腰包花費(fèi)了至少150美元。
好在測試Claude2.1時(shí),Anthropic伸出援手給他提供了免費(fèi)額度,不然還得多花1016美元。
其實(shí)測試方法也不復(fù)雜,都是選用YC創(chuàng)始人Paul Graham的218篇博客文章當(dāng)做測試數(shù)據(jù)。
在文檔中的不同位置添加特定語句:在舊金山最好的事情,就是在陽光明媚的日子坐在多洛雷斯公園吃一個(gè)三明治。
請GPT-4和Claude2.1僅僅使用所提供的上下文來回答問題,在不同上下文長度和添加在不同位置的文檔中反復(fù)測試。
最后使用Langchain Evals庫來評估結(jié)果。
作者把這套測試命名為“干草堆里找針/大海撈針”,并把代碼開源在GitHub上,已獲得200+星,并透露已經(jīng)有公司贊助了對下一個(gè)大模型的測試。
AI公司自己找到解決辦法
幾周后,Claude背后公司Anthropic仔細(xì)分析后卻發(fā)現(xiàn),AI只是不愿意回答基于文檔中單個(gè)句子的問題,特別是這個(gè)句子是后來插入的,和整篇文章關(guān)系不大的時(shí)候。
也就是說,AI判斷這句話和文章主題無關(guān),就偷懶不去一句一句找了。
這時(shí)就需要用點(diǎn)手段晃過AI,要求Claude在回答開頭添加那句“Here is the most relevant sentence in the context:”就能解決。
使用這個(gè)辦法,在尋找不是后來人為添加、本來就在原文章中的句子時(shí),也能提高Claude的表現(xiàn)。
Anthropic公司表示將來會不斷的繼續(xù)訓(xùn)練Claude,讓它能更適應(yīng)此類任務(wù)。
在API調(diào)用時(shí)要求AI以指定開頭回答,還有別的妙用。
創(chuàng)業(yè)者M(jìn)att Shumer看過這個(gè)方案后補(bǔ)充了幾個(gè)小技巧:
如果想讓AI輸出純JSON格式,提示詞的最后以“{”結(jié)尾。同理,如果想讓AI列出羅馬數(shù)字,提示詞以“I:”結(jié)尾就行。
不過事情還沒完……
國內(nèi)大模型公司也注意到了這項(xiàng)測試,開始嘗試自家大模型能不能通過。
同樣擁有超長上下文的月之暗面Kimi大模型團(tuán)隊(duì)也測出了問題,但給出了不同的解決方案,也取得了很好的成績。
這樣一來,修改用戶提問Prompt,又比要求AI在自己的回答添加一句更容易做到,特別是在不是調(diào)用API,而是直接使用聊天機(jī)器人產(chǎn)品的情況下。
月之暗面還用自己的新方法幫GPT-4和Claude2.1測試了一下,結(jié)果GPT-4改善明顯,Claude2.1只是稍微改善。
看來這個(gè)實(shí)驗(yàn)本身有一定局限性,Claude也是有自己的特殊性,可能與他們自己的對齊方式Constituional AI有關(guān),需要用Anthropic自己提供的辦法更好。
后來,月之暗面的工程師還搞了更多輪實(shí)驗(yàn),其中一個(gè)居然是……
壞了,我成測試數(shù)據(jù)了。