OneFlow編譯 翻譯|賈川、徐佳渝、楊婷
大型語(yǔ)言模型(LLM)有一個(gè)眾所周知的“硬傷”——它們經(jīng)常會(huì)一本正經(jīng)編造貌似真實(shí)的內(nèi)容。 ?
OpenAI團(tuán)隊(duì)希望通過(guò)改進(jìn)強(qiáng)化學(xué)習(xí)反饋步驟“原生地”阻止神經(jīng)網(wǎng)絡(luò)產(chǎn)生幻覺(jué),OpenAI首席科學(xué)家Ilya Sutskever對(duì)此胸有成竹。作為ChatGPT項(xiàng)目的主要負(fù)責(zé)人以及OpenAI強(qiáng)化學(xué)習(xí)團(tuán)隊(duì)的領(lǐng)導(dǎo)者,John Schulman在最近的Berkeley EECS會(huì)議上系統(tǒng)性地分享了OpenAI在人類(lèi)反饋的強(qiáng)化學(xué)習(xí)(RLHF)方面所做的工作,以及語(yǔ)言模型的幻覺(jué)等亟待解決的問(wèn)題,同時(shí)也介紹了解決這些挑戰(zhàn)的潛在思路。
(資料圖片僅供參考)
沒(méi)有比Schulman更權(quán)威的RLHF研究者,他也是強(qiáng)化學(xué)習(xí)領(lǐng)域無(wú)可置疑的大牛。 加入OpenAI之前,Schulman在加州大學(xué)伯克利分校攻讀博士學(xué)位,一開(kāi)始主要研究機(jī)器人技術(shù),隨著深度學(xué)習(xí)興起,轉(zhuǎn)而研究強(qiáng)化學(xué)習(xí),其導(dǎo)師正是強(qiáng)化學(xué)習(xí)領(lǐng)域的領(lǐng)軍人物Pieter Abbeel。 Schulman在強(qiáng)化學(xué)習(xí)研究領(lǐng)域作出了許多重大貢獻(xiàn),包括發(fā)明了TRPO算法(信賴(lài)域策略?xún)?yōu)化)、GAE(廣義優(yōu)勢(shì)估計(jì),Generalized Advantage Estimation)以及PPO算法(近端策略?xún)?yōu)化)。
如今,Schulman還在強(qiáng)化學(xué)習(xí)研究的最前線嘗試解決公認(rèn)難題,他的最新思考或許會(huì)為業(yè)內(nèi)其他研究者帶來(lái)啟發(fā)。 ?
(以下內(nèi)容由OneFlow編譯發(fā)布,轉(zhuǎn)載請(qǐng)聯(lián)系OneFlow獲得授權(quán)。來(lái)源:https://www.youtube.com/watch?v=hhiLw5Q_UFg) ?
1語(yǔ)言模型幻覺(jué)溯源
提到語(yǔ)言模型,很多人應(yīng)該聽(tīng)過(guò)“幻覺(jué)”這個(gè)名詞。上圖就是一個(gè)關(guān)于幻覺(jué)的例子,這不是精挑細(xì)選的,而是我做測(cè)試時(shí)的第一個(gè)樣本。 ?
我的問(wèn)題是:請(qǐng)告訴我John Schulman因在家飼養(yǎng)野生動(dòng)物而被捕的相關(guān)情況。GPT-3.5 Instruct是經(jīng)過(guò)強(qiáng)化學(xué)習(xí)訓(xùn)練過(guò)的模型,給出的回答是關(guān)于John Schulman飼養(yǎng)老虎和小型美洲貓之類(lèi)的事情。GPT-3.5 Turbo(Chat)的整體表現(xiàn)與GPT-3.5 Instruct一致,且智能程度相同,只是微調(diào)方式不同,它給出的回答是:抱歉,我沒(méi)有查到任何關(guān)于John Schulman被捕的相關(guān)情況。 ?
然后,我又嘗試對(duì)聊天功能進(jìn)行微調(diào)過(guò)的GPT-4(Chat),它的回答是:很抱歉,我沒(méi)有找到有關(guān)John Schulman因在家中飼養(yǎng)野生動(dòng)物而被捕的任何信息,我的知識(shí)截止于2021年9月。John Schulman是人工智能領(lǐng)域的著名研究人員…… ?
這是“幻覺(jué)”問(wèn)題的一個(gè)很好示例。相比之下,我覺(jué)得GPT-4的表現(xiàn)相當(dāng)不錯(cuò)。 ?
當(dāng)人們說(shuō)幻覺(jué)時(shí),主要指的是兩類(lèi)不同情況。其中一類(lèi)幻覺(jué)是語(yǔ)言模型的模式完成(pattern completion)行為。它們的訓(xùn)練目的是最大化文本可能性,使生成的內(nèi)容看起來(lái)很像互聯(lián)網(wǎng)上的文本。 ?
這主要有三個(gè)原因:1. 它不知道自己可以回答“我不知道”或者表達(dá)不確定性。如果告訴模型可以回答“我不知道”,那么在一定程度上能解決幻覺(jué)問(wèn)題;2. 模型有時(shí)不愿意去質(zhì)疑前提(premise),它認(rèn)為前提是數(shù)據(jù)分布的一部分;3. 模型有時(shí)會(huì)陷入謊言之中。如果模型已經(jīng)犯了一個(gè)錯(cuò)誤,那么它會(huì)認(rèn)為自己應(yīng)該繼續(xù)回答下去,生成一連串響應(yīng),這也意味著它會(huì)繼續(xù)說(shuō)謊。 ?
語(yǔ)言模型的另一類(lèi)幻覺(jué)是“猜錯(cuò)了”。就像人類(lèi)一樣,你可能只遇到過(guò)一次某件事情,自己不能確定,感到很模糊,所以在回答時(shí)必須帶點(diǎn)猜測(cè),有時(shí)可能就會(huì)猜錯(cuò)。 ?
比如很多人喜歡問(wèn)模型關(guān)于自己的問(wèn)題,就像用谷歌搜索自己一樣,所以我也嘗試讓模型寫(xiě)一篇個(gè)人介紹。 ?
InstructGPT回答,“John是一位AI研究科學(xué)家,在OpenAI工作。他曾是卡內(nèi)基梅隆大學(xué)的計(jì)算機(jī)科學(xué)教授等等。”此外還增加了一堆虛構(gòu)的東西。GPT-3.5的回答有點(diǎn)模糊,但基本上正確,它說(shuō)我本科就讀于斯坦福大學(xué),在Pieter Abbeel的指導(dǎo)下做研究,還提到了信賴(lài)域策略?xún)?yōu)化(TRPO)方面的內(nèi)容。GPT-4的回答幾乎完全正確,但也有些許瑕疵,比如它說(shuō)我主修數(shù)學(xué),其實(shí)并沒(méi)有,對(duì)我取得本科學(xué)位的年份描述也有一年的誤差。 ?
這其實(shí)就屬于“猜錯(cuò)了”:模型嘗試給出一個(gè)全面的答案,但結(jié)果卻出現(xiàn)了錯(cuò)誤。這樣的結(jié)果是好是壞在一定程度上取決于這份個(gè)人簡(jiǎn)介的用途:如果想將其放在網(wǎng)上,那么肯定存在問(wèn)題;但如果僅僅是某人想要了解我,那么年份誤差一年也不會(huì)有太大影響。 ?
2幻覺(jué)與行為克隆
到底為什么會(huì)產(chǎn)生“幻覺(jué)”?我將描述一個(gè)概念模型加以解釋。上圖是一個(gè)知識(shí)圖譜,包含一些事實(shí),比如《星球大戰(zhàn)》屬于科幻類(lèi),Han Solo是《星球大戰(zhàn)》中的一個(gè)角色,以三元組形式排列。這盡管是傳統(tǒng)人工智能的知識(shí)儲(chǔ)存方式,仍然很有用。 ?
該概念模型能解釋當(dāng)你對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行微調(diào)以完成某種問(wèn)答任務(wù)時(shí)會(huì)發(fā)生什么。神經(jīng)網(wǎng)絡(luò)中包含信息,可以將其看作類(lèi)似知識(shí)圖譜的東西,以某種非常復(fù)雜的方式存儲(chǔ)在權(quán)重中。每條邊(edge)都有一些置信度,不同的邊置信度不一樣,原因是,某些事實(shí)被看了上百萬(wàn)次,而有些事實(shí)可能只看了一兩次。 ?
當(dāng)你進(jìn)行小規(guī)模微調(diào)時(shí),可以將其看作你正在學(xué)習(xí)某個(gè)小型程序,將知識(shí)圖譜作為輸入,并基于知識(shí)圖譜中的內(nèi)容和語(yǔ)句的置信度輸出概率。比如,你正在學(xué)習(xí)處理知識(shí)圖表的四行Python代碼函數(shù),那么你之所以要進(jìn)行微調(diào),是因?yàn)榭赡苄枰獙W(xué)習(xí)一些關(guān)于問(wèn)題格式的內(nèi)容。 ?
如果只拋給預(yù)訓(xùn)練模型一個(gè)問(wèn)題,如“《星球大戰(zhàn)》屬于什么類(lèi)型?”,那么它就不知道該問(wèn)題的上下文是什么,不清楚這些文本的來(lái)源是哪里,是信息性網(wǎng)站、惡作劇網(wǎng)站還是虛構(gòu)文本。而微調(diào)就是讓模型專(zhuān)門(mén)輸出正確的答案或在微調(diào)數(shù)據(jù)集中的內(nèi)容。 ?
行為克隆(behavior cloning)是強(qiáng)化學(xué)習(xí)領(lǐng)域的一個(gè)術(shù)語(yǔ),意思是監(jiān)督微調(diào)或最大化似然(maximizing likelihood),其目的是完成給定prompt的最大化似然或最大化對(duì)數(shù)概率。 ?
如果用行為克隆來(lái)訓(xùn)練模型,比如使用人類(lèi)編寫(xiě)的正確答案或使用ChatGPT的輸出進(jìn)行訓(xùn)練,那么即使用100個(gè)正確的答案進(jìn)行克隆,由于模型缺乏所有相關(guān)的事實(shí),仍然是在教會(huì)模型產(chǎn)生幻覺(jué)。例如,如果訓(xùn)練模型回答有關(guān)Han Solo的相關(guān)問(wèn)題,但知識(shí)庫(kù)截止日期是5年前,因此模型不知道有一部圍繞Solo的衍生電影。這種情況下,你實(shí)際上不是在訓(xùn)練模型輸出正確答案,而是在訓(xùn)練它在這種問(wèn)題上進(jìn)行猜測(cè)。 ?
如果你使用行為克隆來(lái)訓(xùn)練模型,那么無(wú)法避免出現(xiàn)幻覺(jué)問(wèn)題,同時(shí)也會(huì)出現(xiàn)相反的問(wèn)題,即如果你想訓(xùn)練模型在某些情況下回答“我不知道”,那么它可能會(huì)隱瞞實(shí)際上已經(jīng)知道的信息。例如,如果標(biāo)注者不知道答案,他們可能會(huì)將“我不知道”列為目標(biāo)答案,但實(shí)際上網(wǎng)絡(luò)可能已經(jīng)有了答案,你只是在訓(xùn)練模型隱瞞信息。 ?
因此,行為克隆或監(jiān)督學(xué)習(xí)的問(wèn)題在于:正確的目標(biāo)實(shí)際上取決于神經(jīng)網(wǎng)絡(luò)中包含了哪些知識(shí),而這對(duì)于收集數(shù)據(jù)或進(jìn)行實(shí)驗(yàn)的人來(lái)說(shuō)是未知的。因此,除非你有一種方法來(lái)查看模型中的內(nèi)容,否則無(wú)法使用行為克隆訓(xùn)練出真實(shí)可信的模型。 ?
現(xiàn)在有了一些略微不同但比較聰明的方法,比如在數(shù)據(jù)標(biāo)注時(shí),讓標(biāo)注者詢(xún)問(wèn)模型問(wèn)題并查看答案是否彼此一致。如果一致,則檢查是否正確;如果正確,則作為目標(biāo)答案;如果完全不一致,則回答“我不知道”;如果錯(cuò)誤,則同樣回答“我不知道”。這種做法的結(jié)果稍微好一點(diǎn),但操作過(guò)程更加困難,而且很難實(shí)現(xiàn)自動(dòng)化。總的來(lái)說(shuō),這僅適用于特定模型。
如果嘗試用監(jiān)督學(xué)習(xí)數(shù)據(jù)集來(lái)訓(xùn)練另一個(gè)模型,也會(huì)遇到同樣的問(wèn)題。例如,許多人正在使用ChatGPT的輸出來(lái)微調(diào)開(kāi)源基礎(chǔ)語(yǔ)言模型。微調(diào)后,這些模型的表現(xiàn)很好。但如果仔細(xì)查看事實(shí)準(zhǔn)確性,你會(huì)發(fā)現(xiàn)它們存在一些問(wèn)題,并且經(jīng)常會(huì)編造信息。不過(guò)這只是我預(yù)測(cè)的結(jié)果,還有待實(shí)驗(yàn)證實(shí)。 ?
3語(yǔ)言模型知道自己的不確定性嗎?
我們希望模型在不知道正確答案時(shí)能輸出其知識(shí)的實(shí)際狀態(tài)并表明不確定性,而不是進(jìn)行猜測(cè)。那么模型是否知道自己的不確定性呢?比如給定一個(gè)問(wèn)題,模型清楚自身是否知道答案嗎? ?
這個(gè)問(wèn)題很難回答。什么是“知道”?如果模型知道某些東西,那么是否用一些簡(jiǎn)單的代碼就能實(shí)現(xiàn)這個(gè)功能?例如,如果有代碼能調(diào)用模型正確地執(zhí)行你要做的事情,那么就認(rèn)為模型知道如何做這件事。 ?
問(wèn)題是,模型是否知道自身的不確定性?答案是肯定的。模型知道自己什么時(shí)候知道什么時(shí)候不知道,因?yàn)槟P捅挥?xùn)練為最小化對(duì)數(shù)損失,為此它必須輸出概率。模型的下一個(gè)token預(yù)測(cè)是經(jīng)過(guò)校準(zhǔn)的(calibrated),校準(zhǔn)后的對(duì)數(shù)損失是一個(gè)合適的表示不確定性的指標(biāo)。 ?
預(yù)訓(xùn)練目標(biāo)產(chǎn)生了一個(gè)校準(zhǔn)的模型,它必定輸出合理的概率,這意味著,模型知道自身的不確定性,至少對(duì)于任何可以被轉(zhuǎn)化為預(yù)測(cè)單個(gè)token的短答案的問(wèn)題,它可以為該token給出一個(gè)合理的概率分布。如果模型能夠?yàn)樵搕oken輸出合理的概率分布,但無(wú)法對(duì)其不確定性進(jìn)行內(nèi)省,那反而讓人感到意外。 ?
有幾篇論文已經(jīng)研究了這個(gè)問(wèn)題,我在上圖的底部做了引用。論文研究表明:可以讓模型用語(yǔ)言表達(dá)它們的不確定性,并給出與輸出概率類(lèi)似的結(jié)果。 ?
我的觀點(diǎn)是:模型確實(shí)知道自己的不確定性,行為克隆無(wú)法利用這一點(diǎn)來(lái)避免幻覺(jué),強(qiáng)化學(xué)習(xí)才是解決這個(gè)問(wèn)題正道。
部分幻覺(jué)僅因?yàn)槟P拖萑胂胍敖o出完整答案”的模式或不知道如何表達(dá)不確定性而產(chǎn)生,因此這類(lèi)幻覺(jué)很好解決。比如可在訓(xùn)練模型時(shí)給出一些表明“我不知道”、“我的知識(shí)截止于××日期”的示范,或者給出一些質(zhì)疑用戶(hù)提問(wèn)的范例,這樣模型至少能夠表達(dá)不確定性,只是表達(dá)的時(shí)機(jī)可能不是那么恰當(dāng)。 ?
4如何用強(qiáng)化學(xué)習(xí)解決幻覺(jué)問(wèn)題?
我認(rèn)為,通過(guò)強(qiáng)化學(xué)習(xí)就能把握好這個(gè)界限,即在何時(shí)說(shuō)“我不知道”。當(dāng)模型給出一個(gè)答案,如果是非常自信的正確答案,將得到高額獎(jiǎng)勵(lì);如果是模糊的(hedged)正確答案,將得到稍差的獎(jiǎng)勵(lì);如果是無(wú)信息的答案,例如“我不知道”,將得到一些懲罰;如果是模糊的錯(cuò)誤答案和完全錯(cuò)誤的答案,將得到更多的懲罰。這基本是一個(gè)適當(dāng)?shù)脑u(píng)分規(guī)則,能夠激勵(lì)模型給出自信的答案,如果它對(duì)錯(cuò)誤答案過(guò)于自信,就會(huì)給出相應(yīng)懲罰。 ?
因此,這就是我們想要達(dá)到的效果。但通過(guò)強(qiáng)化學(xué)習(xí)訓(xùn)練語(yǔ)言模型來(lái)實(shí)現(xiàn)這一目標(biāo)并不容易,因?yàn)槟阈枰来鸢甘欠裾_,但答案究竟正確與否我們無(wú)從知道。 ?
接下來(lái)我將討論如何盡可能地接近這一目標(biāo)。 ?
TriviaQA
實(shí)際上,我的同事做了一個(gè)簡(jiǎn)單而有趣的實(shí)驗(yàn),雖然并未將其公開(kāi),但對(duì)我所描述的概念圖提供了有力支持。 ?
這個(gè)實(shí)驗(yàn)被設(shè)置為T(mén)riviaQA模式,TriviaQA是一個(gè)流行的問(wèn)答數(shù)據(jù)集,它包含了一系列常識(shí)問(wèn)題,其風(fēng)格類(lèi)似于Jeopardy(譯者注:Jeopardy是美國(guó)的一檔問(wèn)答游戲節(jié)目,玩家需要根據(jù)問(wèn)題提供的信息推理出正確的答案,或者選擇他們認(rèn)為正確的答案)。 ?
我們使用了一種基本的問(wèn)答格式來(lái)引導(dǎo)模型回答問(wèn)題,如果你只在正確答案上進(jìn)行行為克隆,那么模型對(duì)所有問(wèn)題都會(huì)給一個(gè)回答,但往往會(huì)包含一些錯(cuò)誤答案。因?yàn)槲覀儚奈锤嬖V它輸出“我不知道”這樣的答案,若遇到不知道的問(wèn)題,它只能進(jìn)行猜測(cè)而不會(huì)說(shuō)“我不知道”。 ?
在對(duì)答案進(jìn)行行為克隆時(shí),只需要少量訓(xùn)練后模型就達(dá)到一定的準(zhǔn)確率和對(duì)數(shù)損失,但這種訓(xùn)練只是在教模型它應(yīng)該試圖輸出正確答案,模型實(shí)際上沒(méi)有從這種微調(diào)中學(xué)習(xí)很多新知識(shí),學(xué)到的只是問(wèn)題格式(the formatting of the questions)及其處理方式。 ?
因此,我們定義了一個(gè)強(qiáng)化學(xué)習(xí)問(wèn)題,對(duì)正確回答、錯(cuò)誤回答及拒絕回答給予相應(yīng)獎(jiǎng)勵(lì)。某種程度上,我們可以通過(guò)解析計(jì)算來(lái)得出正確的獎(jiǎng)勵(lì)行為,即錯(cuò)誤答案的懲罰與正確答案的獎(jiǎng)勵(lì)之間的差異。最優(yōu)獎(jiǎng)勵(lì)行為可以簡(jiǎn)單理解成確定某種閾值,譬如當(dāng)列表中排在最前的選項(xiàng)有超過(guò)50%的概率時(shí)就回答,否則就不回答。 ?
如果我們將獎(jiǎng)勵(lì)函數(shù)用于強(qiáng)化學(xué)習(xí),模型就會(huì)學(xué)到最佳閾值行為,就像模型已經(jīng)了解最佳策略(涉及對(duì)數(shù)概率和閾值)。因此,如果使用強(qiáng)化學(xué)習(xí)微調(diào)模型,就可以讓它做同樣的事情,即使它并沒(méi)有真正查看到這些概率。 ?
我們訓(xùn)練了一個(gè)獎(jiǎng)勵(lì)模型來(lái)預(yù)測(cè)該獎(jiǎng)勵(lì)函數(shù),然后使用獎(jiǎng)勵(lì)模型而不是oracle模型進(jìn)行強(qiáng)化學(xué)習(xí)。這種方式的效果很難評(píng)析,因?yàn)楠?jiǎng)勵(lì)模型并不知道答案是否正確,但它實(shí)際上與我們正在微調(diào)的策略模型知道相同的信息。就像我之前所描述的粗略圖一樣,它具有相同的知識(shí)圖譜,知道這個(gè)答案的不確定性有多大。 ?
我們的假設(shè)是,訓(xùn)練獎(jiǎng)勵(lì)模型并進(jìn)行強(qiáng)化學(xué)習(xí),也會(huì)學(xué)習(xí)正確的行為。不過(guò)這種方式的效果還是不如oracle模型。它為我描述的圖景提供了證據(jù)支持,但還需要進(jìn)行進(jìn)一步研究。 ?
長(zhǎng)篇回答設(shè)置
這里不再贅述相對(duì)簡(jiǎn)單的單句回答(one word answers)的設(shè)置。更有趣的設(shè)置是長(zhǎng)篇回答(long-form answer),ChatGPT采取的就是該設(shè)置。對(duì)于事實(shí)性問(wèn)題,我認(rèn)為這與完全正確或錯(cuò)誤無(wú)關(guān),而是各種回答都處于灰色區(qū)域,混合了正確和錯(cuò)誤的信息。單個(gè)事實(shí)(individual fact)無(wú)關(guān)對(duì)錯(cuò),可能存在一定的誤導(dǎo)性,所以我隨機(jī)選擇了這個(gè)長(zhǎng)篇回答。 ?
如果你問(wèn)ChatGPT一個(gè)技術(shù)問(wèn)題,可能會(huì)得到正確、錯(cuò)誤或具有誤導(dǎo)性的答案。上圖的問(wèn)題是“InstructGPT中獎(jiǎng)勵(lì)模型訓(xùn)練的目標(biāo)是什么”?其中它說(shuō),“InstructGPT所依賴(lài)的獎(jiǎng)勵(lì)模型訓(xùn)練都來(lái)自人類(lèi)反饋”,這種說(shuō)法缺乏真實(shí)性,且極具誤導(dǎo)性,我想說(shuō)這是完全錯(cuò)誤的,但它也說(shuō),“通過(guò)收集的對(duì)比數(shù)據(jù)可以構(gòu)建一個(gè)獎(jiǎng)勵(lì)模型來(lái)預(yù)測(cè)回答的質(zhì)量”的說(shuō)法是正確的。不過(guò),讓標(biāo)注者來(lái)判斷答案是否有誤往往行不通。 ?
我們沒(méi)有完美的答案,而是需要讓人們對(duì)回答進(jìn)行排序,并說(shuō)出哪個(gè)更好。人們必須根據(jù)錯(cuò)誤的嚴(yán)重程度來(lái)判斷模型給出的答案,這在很大程度上取決于上下文。舉一個(gè)編程的例子:模型寫(xiě)了100行代碼,只有一個(gè)地方的參數(shù)寫(xiě)錯(cuò)了,這種情況下我寧愿讓它給出這個(gè)答案,也不愿讓它回答“不知道”,因?yàn)槲抑辽倏梢栽谄浠A(chǔ)上運(yùn)行和調(diào)試。但是在其他情況下,這種錯(cuò)誤可能是一個(gè)大問(wèn)題。 ?
ChatGPT的長(zhǎng)篇真實(shí)性評(píng)估
使用RLHF可以提高模型的準(zhǔn)確性。雖然我們沒(méi)有在ChatGPT上進(jìn)行過(guò)嚴(yán)格實(shí)驗(yàn),但GPT-4博客文章中有一些模型評(píng)估指標(biāo)可以衡量準(zhǔn)確性。評(píng)估的方式是為每個(gè)問(wèn)題提供一個(gè)參考答案,并由人類(lèi)檢查,然后比較模型生成的答案與參考答案之間的一致性。 ?
我們還使用了一些自動(dòng)化程序來(lái)評(píng)估長(zhǎng)篇答案并檢查它們是否與參考答案一致。上圖中的柱狀圖表示不同版本的ChatGPT,隨著數(shù)據(jù)越來(lái)越多,相應(yīng)指標(biāo)上都有所改善。GPT-4在這些準(zhǔn)確性指標(biāo)和定性測(cè)試上的表現(xiàn)要好得多。當(dāng)然,雖然在分析這些數(shù)據(jù)時(shí)還需更謹(jǐn)慎一點(diǎn),但我們認(rèn)為,這種方法可以提高模型的準(zhǔn)確性。 ?
出于各種因素,在實(shí)際情況中還存在多種問(wèn)題。模型有時(shí)確實(shí)需要猜測(cè),尤其是在輸出大量詳細(xì)事實(shí)的時(shí)候。無(wú)論你如何訓(xùn)練,模型都有概率在回答某些問(wèn)題時(shí)進(jìn)行猜測(cè),這是不可避免的。 ?
在面臨有些問(wèn)題時(shí),模型會(huì)采取“避險(xiǎn)措施”,不過(guò)這個(gè)度可能把握不好,從而作出錯(cuò)誤的判斷。我們基于排名的獎(jiǎng)勵(lì)模型的訓(xùn)練方式是,預(yù)測(cè)輸出一種類(lèi)似于對(duì)數(shù)概率的值,表明某個(gè)回答比另一個(gè)更好,但它并沒(méi)有真正說(shuō)明哪一個(gè)比另一個(gè)好多少,只是表明它對(duì)哪一個(gè)回答更有信心。 ?
模型并沒(méi)有就事實(shí)錯(cuò)誤的嚴(yán)重程度和錯(cuò)誤的模糊程度施以正確的懲罰,因此我認(rèn)為,基于排名的獎(jiǎng)勵(lì)模型沒(méi)有很好地解決這個(gè)問(wèn)題。 此外,標(biāo)注者的錯(cuò)誤肯定也有很多。有時(shí)標(biāo)注者沒(méi)有足夠的信息來(lái)做出正確的標(biāo)注,人類(lèi)無(wú)法始終正確地進(jìn)行排名,比如有些問(wèn)題可能涉及到用戶(hù)計(jì)算機(jī)上的某些代碼庫(kù),標(biāo)注者就無(wú)法訪問(wèn)。我們嘗試讓標(biāo)注者跳過(guò)他們無(wú)法回答的問(wèn)題,但也還有很多其他錯(cuò)誤。當(dāng)然,在閱讀長(zhǎng)篇答案時(shí),要捕捉到其中的每一個(gè)錯(cuò)誤是不可能的。 ?
索引和引用
接下來(lái)談?wù)剻z索和引用來(lái)源。在語(yǔ)言模型的背景下,檢索通常是指語(yǔ)言模型訪問(wèn)某些外部知識(shí)源(通常是一些文檔集),并提取一些文本來(lái)回答問(wèn)題。 ?
有幾個(gè)原因可能需要檢索,比如想了解世界上正在發(fā)生的最新事件和一些不在預(yù)訓(xùn)練中的信息。不在預(yù)訓(xùn)練中的信息不僅包括最新資料,而且還可能是一些私人信息、計(jì)算機(jī)或代碼庫(kù)中的東西、模型輸出答案和個(gè)人以前的對(duì)話(huà)等等。 ?
檢索和引用來(lái)源最需要關(guān)注的是可驗(yàn)證性,因?yàn)槟P蛯?xiě)的答案是否正確需要人類(lèi)來(lái)檢查,如果不知道信息來(lái)源,需要查找所有信息,檢查其正確性非常困難。如果模型引用了來(lái)源,那檢查起來(lái)更容易。如果將未添加引用的答案看作是未經(jīng)證明的草圖,那么添加引用就好比呈現(xiàn)出了證明過(guò)程。 ?
WebGPT的參考價(jià)值
在ChatGPT之前,我們還做了一個(gè)WebGPT項(xiàng)目。該項(xiàng)目主要聚焦于細(xì)分問(wèn)答,數(shù)據(jù)集基于Reddit下的一個(gè)板塊ELI5(Explained Like I"m Five,用五歲孩子的語(yǔ)言解釋?zhuān)?。?dāng)人們?cè)诠雀枭喜椴坏阶约合胍拇鸢笗r(shí),就會(huì)在ELI5提問(wèn),比如“我用MacBook參加Zoom會(huì)議時(shí)出現(xiàn)了某個(gè)問(wèn)題”,或者“人們?yōu)槭裁赐扑]用蘇打粉和醋來(lái)當(dāng)清潔劑”。 ?
我們想構(gòu)建一個(gè)能回答這類(lèi)細(xì)分問(wèn)題的系統(tǒng),先在網(wǎng)上搜索整理,再給出答案,最終創(chuàng)建出了能給出這類(lèi)答案的WebGPT系統(tǒng)。當(dāng)你問(wèn)“蘇伊士運(yùn)河在2021年3月時(shí)為什么被封鎖”,系統(tǒng)就會(huì)給出答案并列出所有的論據(jù)來(lái)源。
WebGPT是2021年底的一個(gè)項(xiàng)目,相當(dāng)于GPT-3水平的模型。如果把問(wèn)WebGPT的問(wèn)題拿來(lái)問(wèn)GPT-3.5或者GPT-4,無(wú)需進(jìn)行查找就可以完美地回答,但這種技術(shù)對(duì)于GPT-3級(jí)別的模型來(lái)說(shuō)非常有必要,即使對(duì)于GPT-4也很有用,尤其對(duì)于更技術(shù)性的偏門(mén)話(huà)題。 ?
WebGPT的工作方式對(duì)于GPT-4也有參考價(jià)值。我們定義了一個(gè)行動(dòng)空間或者領(lǐng)域特定語(yǔ)言,模型可以用其來(lái)瀏覽來(lái)源。當(dāng)搜索時(shí),模型會(huì)看到一些鏈接列表,就像搜索頁(yè)面一樣,然后可以點(diǎn)擊鏈接并引用內(nèi)容。 ?
不過(guò),由于語(yǔ)言模型的上下文窗口有限,大約為4000個(gè)token(每個(gè)token約為1個(gè)單詞),所以查看的材料也有限,否則就會(huì)內(nèi)存不足。
在這種情況下,引用非常重要,因?yàn)槲覀冎荒芎?jiǎn)要地向模型展示這些頁(yè)面,然后將其從上下文中移除。通過(guò)允許模型進(jìn)行引用,我們使其能夠在其余瀏覽過(guò)程中保留信息。在模型完成任何必要的瀏覽操作后,它可以聲明已經(jīng)完成并開(kāi)始編寫(xiě)答案。 ?
我們定義了一個(gè)強(qiáng)化學(xué)習(xí)環(huán)境,讓模型生成文本來(lái)定義一個(gè)領(lǐng)域特定語(yǔ)言(DSL),而不是發(fā)出特殊操作(action)。強(qiáng)化學(xué)習(xí)任務(wù)的每次episode由模型瀏覽20到100步的,引用某些信息,編寫(xiě)答案,然后使用獎(jiǎng)勵(lì)模型計(jì)算獎(jiǎng)勵(lì)。整個(gè)過(guò)程都是在標(biāo)準(zhǔn)方法下完成。 ?
以上是RLHF的流程圖。首先是行為克隆,這屬于監(jiān)督學(xué)習(xí)部分。我們使用專(zhuān)家演示(expert demonstrations)來(lái)展示如何執(zhí)行任務(wù),在本例中通過(guò)查看瀏覽器來(lái)編寫(xiě)答案,然后模仿這種行為。
其次,通過(guò)比較兩個(gè)完整的答案(A和B)或兩條軌跡來(lái)收集獎(jiǎng)勵(lì)模型,由人類(lèi)決定哪個(gè)更好。之后,我們可以在該獎(jiǎng)勵(lì)模型上執(zhí)行強(qiáng)化學(xué)習(xí),或者通過(guò)獲取多個(gè)樣本并重新排序來(lái)對(duì)其進(jìn)行搜索。
針對(duì)每個(gè)任務(wù),需要為其制作GUI(圖形用戶(hù)界面)。用于收集數(shù)據(jù)的GUI相對(duì)簡(jiǎn)單(如上圖所示),但獎(jiǎng)勵(lì)建模的GUI比較復(fù)雜,需要讓人們仔細(xì)閱讀模型編寫(xiě)的答案,并標(biāo)記其中有強(qiáng)支持和弱支持的語(yǔ)句。我們?cè)敿?xì)定義了這個(gè)標(biāo)記過(guò)程,以計(jì)算答案的事實(shí)準(zhǔn)確性。盡管這個(gè)過(guò)程有些繁瑣,但最終我們只得到一個(gè)二進(jìn)制信息,即一個(gè)比特位的信息。我們嘗試?yán)闷渌畔?,但效果并不理想??
那么WebGPT的效果怎么樣?我們發(fā)現(xiàn),在給定查詢(xún)的情況下,左側(cè)的圖表顯示的是最優(yōu)的n個(gè)結(jié)果。具體來(lái)說(shuō),我們采集n個(gè)樣本,使用獎(jiǎng)勵(lì)模型對(duì)它們進(jìn)行重新排序,并返回排名最高的結(jié)果。與此相比,我們沒(méi)有使用微調(diào)的方法,也沒(méi)有使用強(qiáng)化學(xué)習(xí)進(jìn)行訓(xùn)練,而是采用了監(jiān)督學(xué)習(xí)的策略。 ?
我們發(fā)現(xiàn),對(duì)于175B的GPT-3模型,在64個(gè)樣本的情況下,模型表現(xiàn)得更好。模型的選擇正確的概率達(dá)到55%到40%不等,雖然連貫性稍有欠缺,但事實(shí)準(zhǔn)確性更高。此外,模型給出的答案也比Reddit上的參考答案更受歡迎。 ?
實(shí)際上,我并不完全相信這個(gè)對(duì)比,模型有時(shí)會(huì)給出看起來(lái)十分明確的答案,并且還帶有引用鏈接,但我認(rèn)為標(biāo)注者會(huì)偏向某一種風(fēng)格的答案,這會(huì)讓對(duì)比帶有偏見(jiàn)。因此,我不認(rèn)為上述模型給出的答案能好過(guò)Reddit上票數(shù)最高的答案,但如果用當(dāng)前模型再跑一次,得出的答案可能會(huì)好一些。 ?
ChatGPT瀏覽模式
ChatGPT有一個(gè)用于瀏覽的browsing(alpha)模式。與ChatGPT的操作方法相同,例如我們可以提問(wèn)“今天誰(shuí)會(huì)在伯克利 EECS 座談會(huì)上發(fā)表演講?”,這是我今天早上提出的問(wèn)題,它的問(wèn)答是“今天的演講人是John Schulman…...”調(diào)試窗口顯示模型收到的一系列長(zhǎng)串提示說(shuō)明,比如“你有一個(gè)帶有這些函數(shù)搜索引用的瀏覽工具”,后附函數(shù)說(shuō)明文檔。在生成的對(duì)話(huà)文檔中,我們能看到用戶(hù)消息、演講者信息。
它在執(zhí)行這些操作時(shí)會(huì)進(jìn)行說(shuō)明,相當(dāng)于是它的內(nèi)心獨(dú)白。如上圖所示,它說(shuō)“我將搜索今天在伯克利的獨(dú)家演講者”,然后它發(fā)出了一個(gè)搜索命令(“Berkeley EECS colloquium presenter today” recency, days = 1”),然后它會(huì)告訴我們點(diǎn)擊第一個(gè)鏈接,以訪問(wèn)伯克利座談相關(guān)頁(yè)面,在引用相關(guān)資料之后,它才會(huì)開(kāi)始輸出答案,呈現(xiàn)出最終瀏覽結(jié)果。
此外,現(xiàn)在還有其他內(nèi)容可以瀏覽,且提供類(lèi)似引用的產(chǎn)品。但ChatGPT的特殊之處在于,它只會(huì)在不知道答案的情況下啟用瀏覽模式,這與我前面提到的不確定性自我認(rèn)知(self-knowledge of uncertainty)相似,它允許模型表達(dá)“我不知道”,讓模型在必要的時(shí)候進(jìn)行瀏覽操作。 ?
比如我提出一個(gè)問(wèn)題:什么是dagger算法(一種典型的模仿學(xué)習(xí)算法)?針對(duì)這一問(wèn)題,ChatGPT在完全沒(méi)有啟用瀏覽的情況下給出了詳細(xì)答案,我看到答案中提到了一個(gè)名為Fleet-DAGGER的東西,于是我又問(wèn)“什么是Fleet-DAGGER?”因?yàn)槟P筒恢来鸢?,所以它開(kāi)始進(jìn)行搜索,它查看了子網(wǎng)頁(yè)(里面是完整的檔案文件),然后對(duì)瀏覽內(nèi)容做了總結(jié)和改寫(xiě)(這里并不是簡(jiǎn)單的復(fù)制粘貼),最后在總結(jié)的基礎(chǔ)上給出了答案。
5開(kāi)放式問(wèn)題
表達(dá)不確定性
接下來(lái)我想聊聊在整個(gè)工作過(guò)程中遇到的開(kāi)放式問(wèn)題。第一個(gè)問(wèn)題是:如何激勵(lì)模型真正準(zhǔn)確地用語(yǔ)言表達(dá)不確定性。這意味著我們要使用適量的模糊陳述(hedging),并盡可能地解釋模型的全部知識(shí)狀態(tài)。在我看來(lái),目前的獎(jiǎng)勵(lì)模型并沒(méi)有準(zhǔn)確衡量答案之間的好壞差距,更像是衡量了答案好壞差距的信心(confidence)。
我們以A超過(guò)B的似然最大化的目標(biāo)去訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型,其中A獲勝的概率與獎(jiǎng)勵(lì)分?jǐn)?shù)差的指數(shù)成正比,類(lèi)似于分類(lèi)損失(classification loss),它不會(huì)因過(guò)于自信的錯(cuò)誤(extra confident errors)而懲罰模型,也不會(huì)考慮模糊陳述等方面的問(wèn)題,在我看來(lái),這可能會(huì)對(duì)模型產(chǎn)生影響,模型會(huì)認(rèn)為未模糊陳述的錯(cuò)誤答案比模糊陳述的答案更糟糕。 ?
但是,我不認(rèn)為我們的評(píng)分方式完全正確,如果你想用適當(dāng)?shù)脑u(píng)分函數(shù)來(lái)對(duì)模型進(jìn)行訓(xùn)練,這也會(huì)遇到一些問(wèn)題,我們難以讓模型輸出所有內(nèi)容的概率,因?yàn)樽匀徽Z(yǔ)言并不精確,雖然這正是自然語(yǔ)言強(qiáng)大的原因,但因?yàn)榫渥拥哪:愿怕?,同一個(gè)句子可能會(huì)有不同的理解,會(huì)存在許多可能的解釋?zhuān)械母怕矢?,有些概率低,我們很難對(duì)這一概率進(jìn)行正確判斷。 ?
對(duì)于上述問(wèn)題,也許我們可以在自然語(yǔ)言語(yǔ)句旁添加一些正式的概率聲明,但我還不知道具體應(yīng)該怎么做,或者我們應(yīng)該建立某種目標(biāo)(objective),它可以讓多個(gè)智能體相互協(xié)作,這些智能體能夠正確表達(dá)不確定性,因?yàn)椴淮_定性能在后續(xù)幫助其他智能體或這一智能體本身。 ?
超越標(biāo)注者
另一個(gè)開(kāi)放問(wèn)題是,我們?cè)撊绾纬綐?biāo)注者能夠輕松完成的事情。檢查技術(shù)或小眾主題的長(zhǎng)篇答案其實(shí)非常困難,對(duì)于這個(gè)問(wèn)題,我們有一個(gè)一般研究領(lǐng)域:對(duì)齊方面的可擴(kuò)展監(jiān)督(scalable oversight)。通常,驗(yàn)證某一解決方案是否正確要比生成正確的解決方案容易,這是理論計(jì)算機(jī)科學(xué)的最基本思維之一。 ?
拿P vs NP問(wèn)題來(lái)說(shuō),一種解釋是:讓弱智能體為強(qiáng)智能體提供激勵(lì),通過(guò)這種方式,最優(yōu)行為可以解決弱智能體無(wú)法解決的問(wèn)題。我們可以讓標(biāo)注者訓(xùn)練模型,讓模型完成標(biāo)注者無(wú)法做到的事,理論上這是可行的。 ?
在這個(gè)方向上,我們可做的事情有很多,比如可以嘗試對(duì)任務(wù)進(jìn)行分解并委派,讓瀏覽模型對(duì)每個(gè)句子做事實(shí)核查,然后自動(dòng)聚合所有結(jié)果。我們還可以進(jìn)行類(lèi)似于設(shè)置激勵(lì)機(jī)制的設(shè)計(jì),比如可以設(shè)置一種游戲,在游戲中讓智能體們?nèi)ジ?jìng)爭(zhēng)驗(yàn)證器的批準(zhǔn),并檢查其余選擇的錯(cuò)誤原因,AI safety via Debate是一個(gè)很好的例子。 ?
基本上,這個(gè)方向的研究還處于起步階段,沒(méi)有出現(xiàn)較好的實(shí)際運(yùn)用,但這方面的應(yīng)用已逐漸成為必要,因?yàn)闃?biāo)注者開(kāi)始難以跟上模型的發(fā)展速度。 ?
生成知識(shí)
最后一個(gè)問(wèn)題是:RLHF是純粹基于人類(lèi)認(rèn)可的優(yōu)化,但問(wèn)題是人類(lèi)并不能掌握所有事情的正確答案。很多時(shí)候,我們只是在對(duì)聽(tīng)起來(lái)有說(shuō)服力、聽(tīng)起來(lái)正確的內(nèi)容進(jìn)行優(yōu)化,希望以后能基于客觀事實(shí)進(jìn)行優(yōu)化,增加更多算力,在模型訓(xùn)練上投入更多精力,盡可能地接近事實(shí)真相。 ?
那我們應(yīng)該怎么做?一個(gè)方法是,如果我們了解某種基本真理,那可以?xún)?yōu)化實(shí)際正確性。就預(yù)測(cè)未來(lái)而言,未來(lái)有數(shù)百萬(wàn)種可能,如果我們將這些預(yù)測(cè)用作獎(jiǎng)勵(lì)函數(shù),也許能夠產(chǎn)生真實(shí)的知識(shí),并對(duì)這些知識(shí)進(jìn)行真實(shí)性測(cè)試,這種預(yù)測(cè)是知識(shí)產(chǎn)生的來(lái)源之一。如果我們有形式化系統(tǒng)(formal system)或半形式化推理系統(tǒng),也可以進(jìn)行演繹產(chǎn)生新的知識(shí)。上述做法很有意思,是一個(gè)有趣的挑戰(zhàn)。 ?
6答聽(tīng)眾問(wèn)
問(wèn):如果關(guān)于Dagger算法的知識(shí)在模型內(nèi)部,關(guān)于Fleet-Dagger的知識(shí)在模型外部,那么模型在用概念解釋它們時(shí)是否有差異?
答:在我看來(lái),模型比較擅長(zhǎng)解釋根植于內(nèi)部且經(jīng)常在文本中遇到的概念,對(duì)于首次見(jiàn)到的概念,基于內(nèi)省和推測(cè),模型可能會(huì)給出不太讓人滿(mǎn)意的解釋。 因此,模型在談?wù)搩?nèi)部常見(jiàn)知識(shí)時(shí)會(huì)比較智能,也就是說(shuō),相比Fleet-Dagger,模型更擅長(zhǎng)解釋Dagger,對(duì)于Fleet-Dagger,模型可能只是在某個(gè)文檔的摘要中接觸過(guò),對(duì)于這個(gè)概念,模型不會(huì)有任何深入見(jiàn)解。 ?
問(wèn):你提到模型會(huì)在答案不受歡迎的情況下會(huì)隱藏信息,那么在開(kāi)放域上下文中訓(xùn)練模型如實(shí)告知全部信息,以及在封閉域上下文中訓(xùn)練模型不生成未經(jīng)證實(shí)信息(即使模型實(shí)際上知道該信息)的激勵(lì)之間是否存在沖突?
答:是的,這兩者之間存在著非常強(qiáng)烈的沖突,精準(zhǔn)率和召回率之間,信息性和正確性之間也存在著沖突,這些都是模型訓(xùn)練的常見(jiàn)沖突。面對(duì)這些沖突,不可避免要進(jìn)行一番權(quán)衡,我們會(huì)在權(quán)衡曲線上盡可能合理地做出選擇。 ?
問(wèn):WebGPT的Demo給出的內(nèi)心獨(dú)白非常棒。你是否考慮過(guò)提煉一個(gè)模型,這個(gè)模型沒(méi)有足夠的內(nèi)層思考空間,所以需要設(shè)置內(nèi)心獨(dú)白,以便我們可以理解它的想法。
答:在沒(méi)有完美的解釋性方案或無(wú)法確保模型安全性的情況下,內(nèi)心獨(dú)白是一個(gè)比較好的選擇,它可以解決部分問(wèn)題,我們應(yīng)該盡可能多地采用這種設(shè)置。內(nèi)心獨(dú)白可以有效幫助我們理解模型,但顯然不能完全信任它,模型可能會(huì)產(chǎn)生虛假的內(nèi)心獨(dú)白,這是一個(gè)值得注意的問(wèn)題。
小型模型必須要使用內(nèi)心獨(dú)白才能達(dá)到一定的智力水平,當(dāng)然我們可能會(huì)擔(dān)心模型隱藏信息,但這種擔(dān)憂(yōu)其實(shí)有點(diǎn)牽強(qiáng),總體來(lái)說(shuō),雖然內(nèi)心獨(dú)白存在著一些理論上的擔(dān)憂(yōu),但我很看好它的發(fā)展。 ?
另外,詳細(xì)的、允許使用較短反饋的內(nèi)心獨(dú)白可以幫助我們更好地判斷模型行為是否有意義。例如在瀏覽時(shí),假如沒(méi)有內(nèi)心獨(dú)白,這時(shí)模型進(jìn)行了滾動(dòng)操作,我們就無(wú)法判斷這個(gè)動(dòng)作是否有意義,更不可能對(duì)這個(gè)動(dòng)作提供獎(jiǎng)勵(lì)。但是,如果有內(nèi)心獨(dú)白,模型就可以告訴我們滾動(dòng)操作的原因,我們就可以查看該動(dòng)作并判斷是否有意義。 ?
通過(guò)內(nèi)心獨(dú)白,我們可以對(duì)模型的操作做出反饋,可以在更短的時(shí)間內(nèi)使用RL訓(xùn)練模型,同時(shí)還能讓模型系統(tǒng)更安全,因?yàn)槲覀儧](méi)有優(yōu)化可能導(dǎo)致奇怪結(jié)果的長(zhǎng)期行為。 ?
問(wèn):我一直在用古典文學(xué)和哲學(xué)信息訓(xùn)練模型,在這個(gè)過(guò)程中,我對(duì)“什么是美?”這類(lèi)問(wèn)題很感興趣,美的定義有千千萬(wàn)萬(wàn)種,你如何評(píng)估那些不同答案的相對(duì)矩陣的定量測(cè)量,它們是否優(yōu)先于輸出?
答:模型生成的答案應(yīng)該是客觀,沒(méi)有價(jià)值偏向的,很難處理帶有個(gè)人偏好、價(jià)值選擇的問(wèn)題,對(duì)于這類(lèi)問(wèn)題我們還沒(méi)有找到好的處理方法。 目前為止,我們并不贊同讓模型對(duì)事物擁有自己的看法,相反,我們讓模型去描述人類(lèi)的想法,希望模型將“什么是美”這類(lèi)問(wèn)題重新定向?yàn)楦诱鎸?shí)的問(wèn)題,例如人類(lèi)或?qū)W校對(duì)這個(gè)問(wèn)題的看法是什么。 ?
其他人都在看
向量嵌入:AutoGPT的幻覺(jué)解法
推演語(yǔ)言模型的大小與計(jì)算開(kāi)銷(xiāo)
谷歌科學(xué)家:RLHF的演進(jìn)與局限
John Shulman:ChatGPT成功的秘密武器
比快更快,開(kāi)源Stable Diffusion刷新作圖速度
OneEmbedding:單卡訓(xùn)練TB級(jí)推薦模型不是夢(mèng)
GLM訓(xùn)練加速:性能最高提升3倍,顯存節(jié)省1/3
歡迎Star、試用OneFlow: github.com/Oneflow-Inc/oneflow/http://github.com/Oneflow-Inc/oneflow/
關(guān)鍵詞: