論文標(biāo)題:Training language models to follow instructions with human feedback
論文鏈接:https://arxiv.org/abs/2203.02155
論文來源:OpenAI
一祭示、概述
大型語言模型(Large language models胀糜,LLMs)可以通過被prompted來執(zhí)行一系列NLP任務(wù)烤镐,這通常以給出一些任務(wù)相關(guān)的樣本的方式來完成酣倾。然而LLMs經(jīng)常會(huì)展現(xiàn)出一些非預(yù)期的行為舀奶。這些行為包括編造事實(shí)、生成有偏見或有毒的文本碌宴,或者簡單地不按照用戶的指令進(jìn)行操作页慷。這是因?yàn)楹芏嘧罱腖LMs使用的語言建模目標(biāo)(預(yù)測來自互聯(lián)網(wǎng)網(wǎng)頁的下一個(gè)token)與“有幫助且安全地按照用戶的指令行事”的目標(biāo)是不同的。因此执庐,我們可以說語言建模目標(biāo)是未對齊的(misaligned)的酪耕。避免這些非預(yù)期行為對于那些部署并用于數(shù)百種應(yīng)用的語言模型來說尤其重要。
我們通過訓(xùn)練這些語言模型以便它們能根據(jù)用戶的意圖進(jìn)行行動(dòng)轨淌,以此來對語言模型進(jìn)行對齊迂烁。這包括顯式的意圖,如按照指令行事递鹉,以及隱式的意圖盟步,如保持真實(shí),不展現(xiàn)偏見躏结、有毒或者其他有害的行為却盘。使用Askell等人(2021)的概念來說就是我們希望語言模型能夠helpful(幫助用戶解決他們的任務(wù))、honest(不應(yīng)該編造信息或誤導(dǎo)用戶)并且harmless(不應(yīng)該對人類或環(huán)境造成物理媳拴、心理或社會(huì)傷害)黄橘。
我們主要關(guān)注對齊LLMs的微調(diào)方法。具體來說屈溉,我們使用人類反饋的強(qiáng)化學(xué)習(xí)(Reinforcement Learning from Human Feedback塞关,簡稱RLHF)來微調(diào)GPT-3,使其遵循一大類的書面指令语婴。這項(xiàng)技術(shù)使用人類的偏好作為獎(jiǎng)勵(lì)信號來微調(diào)我們的模型描孟。我們首先聘請一支由40名承包商組成的標(biāo)注者團(tuán)隊(duì)來對我們的數(shù)據(jù)進(jìn)行標(biāo)注(基于他們在篩選測試中的表現(xiàn))。我們收集了一份由人編寫的砰左,用于描述在OpenAI API提交的(主要是英文)提示以及一些標(biāo)注者編寫的提示上期望的輸出行為的演示數(shù)據(jù)集匿醒,并使用此數(shù)據(jù)集來訓(xùn)練我們的監(jiān)督學(xué)習(xí)baseline。接下來缠导,我們收集了一份包含了我們的模型在更大的API 提示集上的輸出的廉羔,由人類標(biāo)記的比較數(shù)據(jù)集(就是用模型得出每個(gè)提示的多個(gè)響應(yīng),然后由人工為這些響應(yīng)的好壞程度排序)僻造。然后憋他,我們在這個(gè)數(shù)據(jù)集上訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型(Reward Model,RM)髓削,以預(yù)測我們的標(biāo)注者更喜歡哪個(gè)模型輸出竹挡。最后,我們將這個(gè)RM作為獎(jiǎng)勵(lì)函數(shù)立膛,并使用PPO(proximal policy optimization)算法來微調(diào)我們的監(jiān)督學(xué)習(xí)baseline以最大化這個(gè)獎(jiǎng)勵(lì)揪罕。下圖說明了這整個(gè)流程梯码。這個(gè)過程將GPT-3的行為與特定人群(主要是我們的標(biāo)注者和研究員)的明確偏好對齊,而不是任何更廣泛的“人類價(jià)值觀”好啰,我們將在下文進(jìn)一步討論這個(gè)問題轩娶。我們將最終得到的模型稱為InstructGPT。
我們主要通過一些保留標(biāo)注者(沒有參與構(gòu)建訓(xùn)練數(shù)據(jù))來評估模型框往,同時(shí)也在一些自動(dòng)評估的公共NLP數(shù)據(jù)集上進(jìn)行了評估鳄抒。InstructGPT主要包括三種不同的size(1.3B, 6B和175B參數(shù)),所有模型都采用GPT3架構(gòu)椰弊。本文的一些主要結(jié)論如下:
①與GPT-3的輸出相比许溅,標(biāo)注者明顯更喜歡InstructGPT的輸出。
②與GPT-3相比男应,InstructGPT模型的真實(shí)性(truthfulness)有所提高闹司。
③與GPT-3相比娱仔,InstructGPT在毒性方面略有改善沐飘,但在偏見方面并沒有如此。
④我們可以通過修改我們的RLHF微調(diào)過程來最小化公共NLP數(shù)據(jù)集上的性能下降牲迫。
⑤在面對沒有提供訓(xùn)練數(shù)據(jù)的保留標(biāo)注者評估時(shí)耐朴,InstructGPT可以很好地泛化。
⑥公共NLP數(shù)據(jù)集不能反映我們的語言模型是如何被使用的盹憎。
⑦InstructGPT模型對RLHF微調(diào)分布之外的指令顯示出有前景的泛化能力筛峭。
⑧InstructGPT仍然會(huì)犯簡單的錯(cuò)誤。
總的來說陪每,我們的研究結(jié)果表明影晓,使用人類偏好對大型語言模型進(jìn)行微調(diào)可以顯著改善它們在各種任務(wù)上的行為,盡管要提高它們的安全性和可靠性還有很多工作要做檩禾。
二挂签、方法和實(shí)驗(yàn)細(xì)節(jié)
- 概覽
InstructGPT的方法流程事先需要一個(gè)預(yù)訓(xùn)練語言模型、一個(gè)我們希望生成對齊輸出的提示分布以及一個(gè)經(jīng)過培訓(xùn)的人類標(biāo)注者團(tuán)隊(duì)盼产。接著我們采用以下三個(gè)步驟(也就是上面流程圖的步驟):
①收集演示數(shù)據(jù)并訓(xùn)練一個(gè)監(jiān)督策略饵婆。作者的團(tuán)隊(duì)會(huì)為輸入的提示分布提供期望行為的演示。然后戏售,他們使用監(jiān)督學(xué)習(xí)方法在這些數(shù)據(jù)上對預(yù)訓(xùn)練的GPT-3模型進(jìn)行微調(diào)侨核。
②收集比較數(shù)據(jù)并訓(xùn)練獎(jiǎng)勵(lì)模型。作者收集了一組模型輸出之間的比較數(shù)據(jù)灌灾,標(biāo)注者會(huì)指示他們更喜歡給定輸入的哪個(gè)輸出搓译。然后,作者訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型(Reward Model, RM)來預(yù)測人類更喜歡的輸出锋喜。
③使用PPO算法根據(jù)獎(jiǎng)勵(lì)模型優(yōu)化策略些己。作者將獎(jiǎng)勵(lì)模型的輸出作為一個(gè)標(biāo)量獎(jiǎng)勵(lì),并使用PPO算法對監(jiān)督策略進(jìn)行微調(diào)以最大化這個(gè)獎(jiǎng)勵(lì)。
第二步和第三步可以連續(xù)迭代轴总;作者會(huì)在當(dāng)前最佳策略上收集更多的比較數(shù)據(jù)直颅,然后用這些數(shù)據(jù)訓(xùn)練一個(gè)新的獎(jiǎng)勵(lì)模型和策略。在實(shí)踐中怀樟,大部分比較數(shù)據(jù)來自于監(jiān)督策略功偿,但也會(huì)有一些來自于PPO策略。
- 數(shù)據(jù)集
我們的提示數(shù)據(jù)集主要由提交到OpenAI API的文本提示組成往堡,特別是使用較早版本的InstructGPT模型(通過對我們的演示數(shù)據(jù)子集進(jìn)行監(jiān)督學(xué)習(xí)訓(xùn)練)在Playground界面上使用的提示械荷。Playground的用戶被告知他們的數(shù)據(jù)可能會(huì)通過定期通知在使用InstructGPT模型時(shí)用于進(jìn)一步訓(xùn)練其他模型。在本文中虑灰,我們沒有使用來自API生產(chǎn)環(huán)境中的客戶數(shù)據(jù)吨瞎。我們通過檢查具有共同長前綴的提示來啟發(fā)式地去重,并將每個(gè)用戶ID的提示數(shù)量限制為200個(gè)穆咐。我們還根據(jù)用戶ID創(chuàng)建了訓(xùn)練颤诀、驗(yàn)證和測試集,以便驗(yàn)證集和測試集不包含訓(xùn)練集中的用戶數(shù)據(jù)对湃。為了避免模型學(xué)習(xí)到可能包含敏感客戶詳細(xì)信息的內(nèi)容崖叫,我們對訓(xùn)練集中的所有提示進(jìn)行個(gè)人可識別信息(personally identifiable information, PII)的過濾。
為了訓(xùn)練第一批InstructGPT模型拍柒,我們要求標(biāo)注者自己編寫提示心傀。這是因?yàn)槲覀冃枰环N初始的類似指令的提示來源來啟動(dòng)這個(gè)過程,而這類提示通常不會(huì)被提交到API上的常規(guī)GPT-3模型拆讯。我們要求標(biāo)注者編寫三種類型的提示:
①普通提示:我們只是要求標(biāo)注者提出任意的任務(wù)脂男,同時(shí)確保任務(wù)具有足夠的多樣性。
②少樣本提示:我們要求標(biāo)注者提出一條指令种呐,并為該指令提供多個(gè)查詢/響應(yīng)對宰翅。
③用戶相關(guān)提示:我們在OpenAI API的等待列表申請中列出了一些使用案例。我們要求標(biāo)注者提供與這些使用案例相對應(yīng)的提示陕贮。
從這些提示中堕油,我們生成了三個(gè)不同的數(shù)據(jù)集,用于我們的微調(diào)過程:
①SFT數(shù)據(jù)集:其中包含標(biāo)注者演示用來訓(xùn)練SFT模型的示例數(shù)據(jù)肮之。
②RM數(shù)據(jù)集:其中包含標(biāo)注者對模型輸出進(jìn)行排名的數(shù)據(jù)掉缺,用于訓(xùn)練獎(jiǎng)勵(lì)模型(RM)。
③PPO數(shù)據(jù)集:不包含任何人工標(biāo)簽戈擒,僅作為RLHF微調(diào)的輸入眶明。該數(shù)據(jù)集僅來自API。
我們的SFT數(shù)據(jù)集包含約13,000個(gè)訓(xùn)練提示(來自API和標(biāo)注者編寫)筐高,RM數(shù)據(jù)集有33,000個(gè)訓(xùn)練提示(來自API和標(biāo)注者編寫)搜囱,PPO數(shù)據(jù)集有31,000個(gè)訓(xùn)練提示(僅來自API)丑瞧。表6中提供了更多數(shù)據(jù)集大小的詳細(xì)信息。
為了了解我們數(shù)據(jù)集的組成蜀肘,下表顯示了API提示的用例類別分布(特別是RM數(shù)據(jù)集)谱俭。大多數(shù)用例是生成型的煞烫,而不是分類或問答型驮俗。
下表顯示了一些說明性的提示(由研究人員編寫松靡,模仿提交給InstructGPT模型的提示類型):
- 任務(wù)
我們的訓(xùn)練任務(wù)來自兩個(gè)來源:(1)由我們的標(biāo)注者編寫的提示數(shù)據(jù)集,和(2)提交到我們API上早期InstructGPT模型的提示數(shù)據(jù)集(見下表)坛增。這些提示非常多樣化获雕,包括生成、問答收捣、對話届案、摘要、抽取和其他自然語言任務(wù)(見上面表1)罢艾。我們的數(shù)據(jù)集超過96%是英文楣颠,但在實(shí)驗(yàn)中,我們還測試了模型對其他語言指令的響應(yīng)能力以及完成編程任務(wù)的能力昆婿。
對于每個(gè)自然語言提示球碉,任務(wù)通常是通過自然語言指令直接指定的(例如蜓斧,“寫一個(gè)關(guān)于一只聰明的青蛙的故事”)仓蛆,但也可以通過少樣本示例間接指定(例如,給出兩個(gè)青蛙故事的例子挎春,并提示模型生成一個(gè)新的故事),或通過隱含的延續(xù)(例如直奋,提供一個(gè)關(guān)于青蛙的故事的開頭)能庆。在每種情況下,我們要求標(biāo)注者盡力推斷提示的用戶的意圖脚线,并要求他們跳過任務(wù)非常不清楚的輸入搁胆。此外,我們的標(biāo)注者還考慮到隱含的意圖邮绿,如響應(yīng)的真實(shí)性以及可能有偏見或有害語言的輸出渠旁,他們會(huì)根據(jù)我們提供的指示和他們的最佳判斷進(jìn)行標(biāo)注。
- 人類數(shù)據(jù)收集
為了生成我們的演示數(shù)據(jù)和比較數(shù)據(jù)船逮,并進(jìn)行主要評估顾腊,我們在Upwork和ScaleAI上雇傭了大約40名承包商。與早期關(guān)于摘要任務(wù)收集人類偏好數(shù)據(jù)的工作相比挖胃,我們的輸入涵蓋了更廣泛的任務(wù)范圍杂靶,并且偶爾可能涉及有爭議和敏感的話題梆惯。我們的目標(biāo)是選擇一組對不同人群的偏好敏感,并且擅長識別潛在有害輸出的標(biāo)注者吗垮。因此垛吗,我們進(jìn)行了一項(xiàng)篩選測試,旨在衡量標(biāo)注者在這些方面的表現(xiàn)烁登。
在訓(xùn)練和評估過程中职烧,我們的對齊標(biāo)準(zhǔn)可能會(huì)發(fā)生沖突:例如,當(dāng)用戶請求潛在有害的響應(yīng)時(shí)防泵。在訓(xùn)練過程中蚀之,我們優(yōu)先考慮對用戶的有益性(不這樣做需要做出一些困難的設(shè)計(jì)決策,我們將其留給未來的工作捷泞。然而足删,在我們的最終評估中,我們要求標(biāo)注者優(yōu)先考慮真實(shí)性和無害性(因?yàn)檫@是我們真正關(guān)心的)锁右。
我們在項(xiàng)目過程中與標(biāo)注者密切合作失受。我們有一個(gè)入職過程,對標(biāo)注者進(jìn)行項(xiàng)目培訓(xùn)咏瑟,為每個(gè)任務(wù)編寫詳細(xì)的說明拂到,并在共享聊天室中回答標(biāo)注者的問題。
作為一個(gè)初步研究码泞,以了解我們的模型在其他標(biāo)注者偏好方面的泛化能力兄旬,我們雇傭了一組獨(dú)立的標(biāo)注者,他們不參與任何訓(xùn)練數(shù)據(jù)的生成余寥。這些標(biāo)注者來自同樣的供應(yīng)商领铐,但沒有經(jīng)過篩選測試。盡管任務(wù)是復(fù)雜的宋舷,我們發(fā)現(xiàn)標(biāo)注者之間的一致性相當(dāng)高:訓(xùn)練標(biāo)注者之間的一致性為72.6% ± 1.5%绪撵,而對于保留標(biāo)注者,這個(gè)數(shù)字為77.3% ± 1.3%祝蝠。作為對比音诈,Stiennon等人(2020年)在摘要工作中研究者之間的一致性為73% ± 4%。
- 模型
我們首先使用GPT-3預(yù)訓(xùn)練語言模型作為起點(diǎn)绎狭。這些模型是在廣泛的互聯(lián)網(wǎng)數(shù)據(jù)分布上進(jìn)行訓(xùn)練的细溅,并且適用于各種下游任務(wù),但其行為特征尚未完全明確坟岔。從這些模型開始谒兄,我們使用三種不同的技術(shù)訓(xùn)練模型:
- 監(jiān)督微調(diào)(Supervised fine-tuning, SFT)。
我們使用監(jiān)督學(xué)習(xí)方法社付,對GPT-3模型進(jìn)行我們的標(biāo)注者演示數(shù)據(jù)的微調(diào)訓(xùn)練承疲。我們進(jìn)行了16個(gè)epoch的訓(xùn)練邻耕,使用余弦學(xué)習(xí)率衰減,并設(shè)置殘差dropout為0.2燕鸽。我們根據(jù)驗(yàn)證集上的RM得分進(jìn)行最終的SFT模型選擇兄世。與Wu等人(2021年)類似,我們發(fā)現(xiàn)我們的SFT模型在經(jīng)過1個(gè)epoch的驗(yàn)證損失后開始過擬合啊研;然而御滩,我們發(fā)現(xiàn)訓(xùn)練更多的epoch對RM得分和人類偏好評分都有幫助,盡管會(huì)產(chǎn)生過擬合現(xiàn)象党远。
- 獎(jiǎng)勵(lì)建模(Reward modeling, RM)削解。
從移除最終非embedding層的SFT模型開始,我們訓(xùn)練一個(gè)模型沟娱,輸入是提示和響應(yīng)氛驮,輸出是一個(gè)標(biāo)量獎(jiǎng)勵(lì)。在本文中济似,我們只使用了6B RM模型矫废,因?yàn)檫@樣可以節(jié)省計(jì)算資源,并且我們發(fā)現(xiàn)175B RM模型訓(xùn)練可能不穩(wěn)定砰蠢,因此不適合在RL期間用作值函數(shù)蓖扑。
在Stiennon等人(2020年)的工作中,RM是在相同輸入的兩個(gè)模型輸出之間的比較數(shù)據(jù)集上進(jìn)行訓(xùn)練的台舱。他們使用交叉熵?fù)p失律杠,將比較作為標(biāo)簽——獎(jiǎng)勵(lì)的差異表示人類標(biāo)注者更喜歡其中一個(gè)響應(yīng)的對數(shù)幾率。
為了加快比較數(shù)據(jù)的收集速度柿赊,我們向標(biāo)注者展示到個(gè)響應(yīng)供其排序俩功。這為每個(gè)顯示給標(biāo)注者的提示產(chǎn)生了個(gè)比較。由于每個(gè)標(biāo)注任務(wù)內(nèi)的比較高度相關(guān)碰声,我們發(fā)現(xiàn)如果我們簡單地將比較混洗到一個(gè)數(shù)據(jù)集中,對數(shù)據(jù)集進(jìn)行一次遍歷會(huì)導(dǎo)致獎(jiǎng)勵(lì)模型過擬合熬甫。相反胰挑,我們將每個(gè)提示的所有個(gè)比較作為單個(gè)批次元素進(jìn)行訓(xùn)練。這樣做在計(jì)算上更加高效椿肩,因?yàn)樗恍枰獙γ總€(gè)補(bǔ)全(也就是下面公式中的一個(gè))進(jìn)行一次RM的前向傳播(而不是個(gè)補(bǔ)全的次前向傳播)瞻颂,并且由于不再過擬合,它實(shí)現(xiàn)了更好的驗(yàn)證準(zhǔn)確性和對數(shù)損失郑象。
具體的贡这,獎(jiǎng)勵(lì)模型的損失函數(shù)為:
這里的是提示和補(bǔ)全在參數(shù)下的獎(jiǎng)勵(lì)模型的標(biāo)量輸出,是和對中更被偏好的那一個(gè)厂榛,是人類對比數(shù)據(jù)集盖矫。
最后丽惭,由于RM損失對獎(jiǎng)勵(lì)的偏移是不變的,我們使用偏差對獎(jiǎng)勵(lì)模型進(jìn)行規(guī)范化辈双,以便在進(jìn)行強(qiáng)化學(xué)習(xí)之前標(biāo)注者演示達(dá)到平均得分0责掏。
- 強(qiáng)化學(xué)習(xí)(Reinforcement learning, RL)
同樣地按照Stiennon等人(2020年)的工作,在我們的環(huán)境中使用PPO算法來微調(diào)SFT模型湃望。我們的環(huán)境是一個(gè)老虎機(jī)環(huán)境(bandit environment)换衬,它呈現(xiàn)一個(gè)隨機(jī)的用戶提示,并期望對此進(jìn)行響應(yīng)证芭。根據(jù)給出的提示和響應(yīng)瞳浦,環(huán)境會(huì)根據(jù)獎(jiǎng)勵(lì)模型產(chǎn)生一個(gè)獎(jiǎng)勵(lì),并結(jié)束這一回合废士。為了減少對獎(jiǎng)勵(lì)模型的過度優(yōu)化术幔,我們在每個(gè)token處增加了一個(gè)來自SFT模型的逐token KL(Kullback-Leibler)懲罰。我們將價(jià)值函數(shù)初始化為RM湃密。這些模型在本文中稱為為“PPO”诅挑。
我們還試驗(yàn)了將預(yù)訓(xùn)練梯度混合到PPO梯度中,以修復(fù)公開NLP數(shù)據(jù)集上的性能退化問題泛源。這些模型稱為“PPO-ptx”拔妥。他們在RL訓(xùn)練中最大化以下組合目標(biāo)函數(shù):
這里的是學(xué)習(xí)的RL策略,是有監(jiān)督訓(xùn)練的模型达箍,是預(yù)訓(xùn)練分布没龙。和是KL獎(jiǎng)勵(lì)系數(shù)和預(yù)訓(xùn)練損失系數(shù),分別控制KL懲罰項(xiàng)和預(yù)訓(xùn)練梯度缎玫。對于“PPO”模型硬纤,設(shè)置為0。除另有說明外赃磨,本文中InstructGPT指PPO-ptx型號筝家。
- Baseline
我們將我們的PPO模型的性能與我們的SFT模型和GPT-3進(jìn)行比較。我們還將GPT-3與在給定少量前綴“提示”的情況下進(jìn)行比較邻辉,這些前綴可以將其“引導(dǎo)”進(jìn)入遵循指令的模式(GPT-3-prompted)溪王。這個(gè)前綴是附加在用戶指定的指令之前的。我們還將InstructGPT與在FLAN和T0數(shù)據(jù)集上微調(diào)的175B GPT-3進(jìn)行比較值骇,這兩個(gè)數(shù)據(jù)集都包含各種NLP任務(wù)莹菱,每個(gè)任務(wù)都配有自然語言的指令(數(shù)據(jù)集在所包含的NLP數(shù)據(jù)集和使用的指令風(fēng)格上有所不同)。我們分別在大約100萬個(gè)樣例上進(jìn)行微調(diào)吱瘩,并選擇在驗(yàn)證集上獲得最高獎(jiǎng)勵(lì)模型分?jǐn)?shù)的檢查點(diǎn)道伟。
另外本文的實(shí)驗(yàn)主要在API分布和公共NLP數(shù)據(jù)集這兩部分上進(jìn)行評估。
三使碾、實(shí)驗(yàn)
- API分布
- 公共NLP數(shù)據(jù)集
- 定性結(jié)果