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