亚洲男人的天堂2018av,欧美草比,久久久久久免费视频精选,国色天香在线看免费,久久久久亚洲av成人片仓井空

OpenAI 新上線的 ChatGPT 可謂是火爆出圈,這個對話模型可以回答后續問題,承認錯誤,挑戰不正確的前提,還能幫你修改代碼中的 bug……只要和它聊上幾句,一會兒功夫它就能把問題給你解決了。例如用戶要求:「ChatGPT 幫我解釋一下文中正則表達式的含義。」ChatGPT:安排。密密麻麻的解釋了一大段內容,應該是解釋清楚了。

ChatGPT 使用與 InstructGPT 相同的方法——用人類反饋強化學習 (RLHF) 訓練模型,但數據收集設置略有不同。ChatGPT 使用監督微調訓練了一個初始模型:人類 AI 訓練員提供對話,他們在對話中扮演雙方——用戶和 AI 助手,AI 訓練員可以訪問模型編寫的對話回復,以幫助 AI 調整回復內容。

為了創建強化學習的獎勵模型,該研究需要收集比較數據,其中包含兩個或多個按質量排序的模型回復。該研究收集了 AI 訓練員與聊天機器人的對話,并隨機選擇一條模型編寫的消息,抽取幾個備選回復,讓 AI 訓練員對這些回復進行排名。此外,該研究還使用近端策略優化算法(PPO)微調模型,并對整個過程進行了幾次迭代。

ChatGPT 對 GPT-3.5 系列中的某個模型進行了微調,該模型于 2022 年初完成訓練。ChatGPT 和 GPT 3.5 在 Azure AI 超級計算基礎設施上進行了訓練。

臺大李宏毅老師:Chat GPT (可能)是怎么煉成的- GPT社會化的過程

參考鏈接:

付費5元查看完整內容

相關內容

ChatGPT(全名:Chat Generative Pre-trained Transformer),美國OpenAI 研發的聊天機器人程序 [1] ,于2022年11月30日發布 。ChatGPT是人工智能技術驅動的自然語言處理工具,它能夠通過學習和理解人類的語言來進行對話,還能根據聊天的上下文進行互動,真正像人類一樣來聊天交流,甚至能完成撰寫郵件、視頻腳本、文案、翻譯、代碼,寫論文任務。 [1] //openai.com/blog/chatgpt/

原創作者:李佳朋 轉載須標注出處:哈工大SCIR

前言

就在上個月月末OpenAI發布了其最新的研究成果ChatGPT以及其測試接口。在發布后的短短幾天時間內,ChatGPT就火出了圈。根據相關媒體報道,目前ChatGPT全球用戶數已經突破了一百萬。筆者也懷揣著一顆好奇之心去體驗了ChatGPT,整體下來的體驗是其無論是在一些傳統NLP任務包括關系抽取、事件抽取、寫作、對話,還是一些其他任務包括寫代碼、角色扮演等都表現出一種滴水不漏,嚴絲合縫,不給人留下任何把柄的合理性。然而,客觀來講也存在一些不足,包括面對需要復雜邏輯推理問題的時候(比如應用題),會給出一本正經的廢話;面對事實性問題的時候缺乏對于事實性的判斷;面對主觀性問題的時候為保證立場的客觀,存在一定模版。

然而瑕不掩瑜,ChatGPT帶給我們更多的是驚喜與震撼,震撼之余更多的是思考,思考在大模型時代,在現階段我們的研究方向應該是什么,有哪些真正值得做的有意義的、有影響力的工作。 那么ChatGPT究竟是怎樣煉成的呢?OpenAI目前沒有給出相關的論文,但是在官方的摘要中,其生成ChatGPT有一個"孿生兄弟",即InstructGPT,兩者采用了相同的訓練方式。InstructGPT是OpenAI在今年一月末發表的一篇工作,其核心思想是采用人工反饋的方式,利用強化學習的方法去進一步微調大模型,從而使大模型生成更加符合人類預期的回復。本文將詳細介紹InstructGPT的原理,通過InsructGPT向大家揭開ChatGPT的神秘面紗。

ChatGPT展示

還是蠻驚人的,這里給他臨時定義了一個文本分類的任務,ChatGPT可以理解我的意圖,并且正確的對我給出的文本正確的分類

圖1 ChatGPT在自定義的文本分類任務上的效果 這里接下來給了它一個無法進行分類的任務,即讓他定一個會議室。他可以明確知道訂會議室不在我定義的類別之中,并且給出合理的回復。而在添加了這個類別以后,ChatGPT就可以正確的識別對應的類別。

圖2 在添加新的分類類別后ChatGPT的效果 讓其寫一個具有李清照風格的代碼。

圖3 ChatGPT寫代碼 故事創作。

圖4 ChatGPT進行故事生成 知識型問答,但是可以看出一些問題,就是作帶魚并不需要用水焯去血水。這很有可能是因為訓練數據中存在糖醋排骨相關的資源,排骨下鍋前需要水焯,模型記住了這個,并且在生成的時候生成出來了。

圖5 知識型問答[1]

InstructGPT原理解讀

InstructGPT要做什么?

以GPT3為代表的大語言模型,利用提示學習的方法,雖然已經可以進行各種各樣的任務,并且生成流暢的回復,但是在一些情況下仍然會產生不符合人類預期的回復,包括不真實的、有毒害的、致幻性的回復。換句話說,大模型產生的回復與人類真實的回復是有偏置的。InstructGPT的目標就是緩解這種生成回復與真實回復之間的偏置產生更加符合人類預期的回復。

InstructGPT是怎么做的?

在這篇工作里,OpenAI的研究人員從數據層面和方法層面兩方面對模型生成的質量進行了改善。數據層面,聘請標注人員標注一部分訓練數據用于微調GPT3;而方法層面使用基于人工反饋的強化學習方法(RLHF)對模型進一步進行微調,使其生成結果更符合人類預期 數據層面,如下圖所示,標注分為兩個階段:標注人員首先撰寫一些相關的Prompt,這些Prompt描述了要進行的任務;第二階段,從Prompt中采樣,標注人員需要根據被采樣出的Prompt寫出其理想的回復。這樣的一個Prompt與其對應的回復被稱為demonstration。這些人工構造出來的demonstration是高質量的訓練數據,這些訓練數據被用作微調GPT3之中

圖6 InstructGPT 數據標注示意圖[2] 方法層面,如下圖所示,InstructGPT的訓練實際上是分為三個階段的,第一階段就是我們上文所述,利用人工標注的數據微調GPT3;第二階段,需要訓練一個評價模型即Reward Model,該模型需學習人類對于模型回復的評價方式,對于給定的上文與生成回復給出分數;第三階段,利用訓練好的Reward Model作為反饋信號,去指導GPT進一步進行微調,將目標設定為Reward分數最大化,從而使模型產生更加符合人類偏好的回復。

圖7 InstructGPT整體訓練流程[3]

如何訓練一個Reward Model

那么該工作是如何訓練的Reward Model呢?評價模型實際上是利用大模型做一個回歸任務,相信回歸任務大家應該都比較熟悉,即在模型的輸出層[CLS]位置添加一個MLP,最后得到的數值即為Reward Model給出的分數。 接下來我們看一下OpenAI是如何構造數據的,如下圖所示,在訓練Reward Model的時候采用排序任務,即針對同一個上文,利用第一階段訓練好GPT3在多次采樣下可以生成4個( 或9個)不同的回復。標注人員在標注過程中,需要根據這4個不同回復與上文之間的關聯程度,給出一個相關性的偏序關系。

圖8 InstructGPT第二階段的數據標注過程與訓練過程[2]

在訓練階段,這4個回復之間兩兩組合可以形成6個pair,優化目標為每對之中與上文關系大的分數高于與上文關系小的,其損失函數為:

基于人工反饋的微調

在第二階段訓練好一個Reward Model以后,我們就可以利用這個模型作為反饋信號,代替人類去指導大模型進行微調了。在該階段OpenAI采用近端策略優化算法(PPO)這一強化學習方法對模型進行微調。PPO算法是OpenAI之前提出的一個針對策略梯度算法進行改進的算法。這一算法目前已經廣泛應用于各種強化學習模型中,并被證實有良好的性能。但是,將這一算法應用于序列生成任務中的相關工作卻少之又少。 要想理解這部分實現,首先需要明確該任務中的狀態(state)、動作(action)、價值函數(Value Function)、獎勵(Reward)以及策略模型(Policy Model)分別是什么? 為了方便理解,我們這里需要類比一個典型的強化學習場景,即一個游戲場景。在游戲場景中,一場游戲從開始到結束整個過程是一條訓練數據;在自然語言生成場景中,生成的每一個句子類比于一場游戲,是一條訓練數據。在游戲場景中,玩家每一次進行決策就是一個動作;在自然語言生成場景中,生成每一個token,從詞表中采樣即是一個動作。在游戲場景中,環境的信息、角色的狀態、歷史動作的選擇這些共同構成了當前的狀態;在自然語言生成場景中,對話歷史與之前生成的序列構成了當前的狀態。在游戲場景中,玩家所有可選的動作集合構成動作空間;后者詞表即為動作空間。游戲的最終結局,勝利與否作為前者的獎勵;評價模型對于生成回復的分數即為后者的獎勵。負責基于當前狀態學習輸出一個關于動作空間上的概率分布的模型即為策略模型,顯然在本文中GPT3就是這個策略模型。 在PPO算法中,存在一個長期獎勵即Reward,他負責評價整個過程中生成序列的好壞;還存在一個短期獎勵即價值函數,他負責評價生成過程中每一步生成的好壞。而負責輸出長期獎勵的Reward Model就是我們在第二階段訓練的評價模型,而價值函數模型也是使用二階段訓練好的評價模型進行初始化的。兩者的不同在于Reward Model的參數在整個三階段訓練過程中是固定參數的,而Value Function Model的參數是可變的。 那么在搞清楚這些強化學習概念的定義之后,我們就可以正式的聊聊PPO算法了。作為一種策略梯度算法,它也遵循著強化學習的基本框架。整體分為離線數據收集和利用PPO算法對模型梯度進行更新兩個部分。兩部分交替迭代進行,即收集一批新數據以后,立即利用這批數據進行訓練;在利用這部分數據更新完模型參數以后,再利用新模型去收集新一批數據。在整個訓練過程中,需要更新參數的包括策略模型和價值函數模型兩者。 模型整體流程如下圖所示,其中Policy Model就是第三階段進行微調的GPT3, Alignment Model是固定參數不參與微調的GPT3,兩者均由階段一訓練的GPT3進行初始化;Value Function Model是一個可訓練的價值函數,其輸出值代表著GPT3生成的每一個token的質量,是一個短期的獎勵, Reward Model是一個固定參數的模型,其輸出值代表著整個句子的好壞程度,是一個長期獎勵。

圖9 InstructGPT第三階段訓練流程示意圖 首先,對于一個給定的對話上文,通過Policy Model可以得到關于每一步生成的詞表上的概率分布;與此同時通過Alignment Model可以得到一個未經過三階段微調的模型給出的詞表上的概率分布。將兩者傳入Reward Model, 評價模型會根據生成質量給出一個分數,并計算Policy Model與 Alignment Model之間的差異性,將這個分數作為一個額外的懲罰項,若Policy Model生成結果過于天馬行空,導致與未經過訓練前的模型相距甚遠,則會因為過高的懲罰被賦予低分。 這個計算結果即為Reward。同時,將policy model的輸出傳遞給 value function model,其將計算出生成序列中每一個token的分數,即為價值函數分數。重復以上步驟直到收集完成一個mini-batch的所有數據,則在線數據收集完成。 最后我們來聊聊如何利用PPO算法對模型參數進行更新。首先,要明確一件事情,在線數據收集來的數據可能很多,模型在參數更新過程中,需要將這部分數據分成若干個step依次進行利用。因此,隨著參數的更新Policy Model與Value Function Model參數會與收集數據時參數產生異步性,即訓練過程中模型的參數新于采集數據時模型的參數,所以我們不妨約定,把數據采集過程中模型的輸出稱為old xxx, 而訓練過程中產生的輸出稱為new xxx。 整個訓練過程是由三個loss組成的,分別是用于訓練策略模型的PPO loss,用于訓練價值函數模型的Value Function loss以及用于訓練生成序列的Entropy loss。其中,用于訓練生成序列和價值函數模型的loss均是交叉熵損失函數,兩者的lable分別是人工標注的回復和數據采集過程中價值模型輸出的vf_old。而用于訓練策略模型的損失函數則是采用PPO算法進行計算得到的,其計算公式如下圖所示。

圖10 PPO算法計算公式與GAE計算公式 公式中的與分別代表來自訓練過程中與數據收集過程中策略模型在每一步關于詞表概率分布的輸出,叫做策略優勢估計,是PPO算法的核心,其給出一種利用長期獎勵與短期獎勵計算當前步好壞的計算方法,在第t步的分數越高,則代表該位置生成的質量越高。而且PPO算法不會參考第t步之前的狀態信息,相反的,其根據當前位置往后的T步去計算當前狀態的好壞,這是因為其已知整個序列的生成結果與概率分布,因此其可以根據最終結果的好壞來反推當前這一步是否合理。而跟隨在后面計算的KL散度則作為一個懲罰項,約束著每一次梯度更新以后不要產生與原模型相距甚遠的回復。保證了模型訓練的穩定性。

實驗結果

OpenAI采用人工評測,讓標注者從真實性(truthful)、毒害性(toxic)、事實性(make up fact)和合理性(appropriate)四個角度對InstructGPT與GPT3進行評價。標注人員會在不知情的條件下,拿到GPT3和InstructGPT生成的回復,其需要比較兩者之間的好壞關系。如下圖所示人們相較于175B的GPT3略偏好1.3B參數的InstructGPT,而同等參數下的InstructGPT更是有超過六成的勝率。

圖11 InstructGPT與GPT3的勝率對比,其中PPO即為InstructGPT,GPT代表GPT3[3]

InstructGPT小結

InstructGPT為解決大模型生成回復不符合人們預期這一問題,分別從數據和模型兩方面進行了設計,通過改善數據質量與基于人工反饋的微調兩個方面減小了模型生成回復與人類真實回復之間的偏置。并且在實驗中表明,在GPT3 1/100 的參數條件下表現出相近的性能。

ChatGPT現存問題

在測試過程中也發現了ChatGPT存在的一些問題,在這里與大家分享一下。

圖12 ChatGPT在解答應用題時缺乏底層的邏輯推理能力[1] 首先發現第一個問題是ChatGPT不具有復雜問題推理的能力。以這道相遇問題為例,雖然看起來頭頭是道,但是實際上已經是在胡謅了。之所以可以生成這段,我猜測是訓練過程中見過類似的應用題。但是實際上沒有明白應用題背后的原理與解答過程,即這個推理過程。

圖13 ChatGPT在回答主觀性問題時,為保證安全性存在模版[1] 在一些需要主觀評價的問題上,出于安全考慮在訓練過程中采用了一定的模版,導致生成的回復有明顯的模版生成的感覺。

圖14 ChatGPT缺乏事實性檢測 缺乏一些事實性檢測,西游記的作者并不是馬未都,但是模型并未識別出來。

思考與展望

ChatGPT的表現是大家有目共睹的,但是一味的吹捧ChatGPT的強大或者針對其各種目前尚未解決的問題找茬挑刺都是沒有意義,不利于思考的。相信和我一樣,在大模型的時代,很多NLP的研究人員有時會感到迷茫,這種迷茫來源于以GPT為代表的大模型的時代下,我們個體研究人員沒有大公司大資金大機器的情況下,該如何做出有價值有影響力的工作。很多時候,我們專注于一項工作,從開展到設計,再到實驗最后投稿,修改到錄用,這個周期短則半年,長則一年的時間。但是,當一篇工作真正被錄用的時候,已經有更加前沿更加有影響力的工作產生,顯得很多時候我們的工作那么渺小。那么我就在想,究竟應該作什么樣的工作,才能受時間影響小一點,沒那么容易過時呢?

  1. 研究一些更底層的,大小模型都適用的問題比如,如何提高模型的魯棒性與泛化能力;如何提高模型的邏輯推理能力,即使強如ChatGPT,在一些復雜的推理問題中還是很難學會其中的底層邏輯,更多時候只是從已經看見過的數據中進行類比與生成。

  2. 研究一些與特定領域結合的任務與其他領域結合,比如醫療,金融,生物制藥等領域,通過融合相關領域的特異性知識,進行模型結構上的設置,融入一些巧思,做好特定的任務。比如前一陣子看到的scBERT,做的就是一項利用mRNA的表達進行細胞類型判斷的任務,通過結合mRNA的特性與相關知識,設計了特有的類別編碼與基因編碼以及預訓練任務,成功將預訓練模型引入這一領域。

  3. 做以數據為中心的任務OpenAI相關工作人員曾指出,在訓練大模型的時候高質量的數據是至關重要的。吳恩達這兩年也提出Data-centic AI(DCAI),將焦點從模型開發轉移到數據層面,研究如何將有限的數據變得更多更好。

參考資料

[1]圖片來自于文章"作為普通NLP科研人員對ChatGPT的一些思考",原文鏈接://mp.weixin.qq.com/s/yanBgjAYbuUgKdh6spti1Q [2]圖片來自于視頻"深度學習之應用: OpenAI InstructGPT 從人類回饋中學習 ChatGPT 的前身", 視頻鏈接: [3]Ouyang, Long, et al. "Training language models to follow instructions with human feedback." arXiv preprint arXiv:2203.02155 (2022).

作者簡介

李佳朋,就讀于哈爾濱工業大學社會計算與信息檢索研究中心,對話技術(DT)組,2021級碩士研究生,師從張偉男副教授。研究方向為基于基于知識增強的對話生成,曾參與Doc2Dial國際評測比賽并獲得第二名并于ACL-IJCNLP發表學術論文一篇。

本期責任編輯:馮驍騁本期編輯:彭 湃


付費5元查看完整內容
北京阿比特科技有限公司