0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ChatGPT的朋友們:大語言模型經(jīng)典論文

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 2023-04-11 14:10 ? 次閱讀

要說2023刷屏最多的詞條,ChatGPT可以說是無出其右。到最近的GPT-4,技術(shù)的革新儼然已呈現(xiàn)破圈之勢,從學(xué)術(shù)圈到工業(yè)界再到資本圈,同時(shí)也真切逐步影響到普通人的日常生活與工作。

坦白來講,對(duì)于大語言模型生成相關(guān)的工作,個(gè)人長期以來持保守態(tài)度,認(rèn)為這個(gè)方向更多的是一種深度學(xué)習(xí)的理想追求?,F(xiàn)在看小丑竟是我自己,也許優(yōu)秀的工作正是需要對(duì)理想狀態(tài)的持續(xù)追求,才叫優(yōu)秀的工作。

言歸正傳,本系列打算跟風(fēng)討論一下關(guān)于ChatGPT相關(guān)技術(shù),主要內(nèi)容分為三部分,也會(huì)分為三篇文章:

1、經(jīng)典論文精讀 【this】:通過本文閱讀可以了解ChatGPT相關(guān)經(jīng)典工作的大致思路以及各個(gè)時(shí)期的關(guān)鍵結(jié)論;

2、開源實(shí)現(xiàn)技術(shù) 【soon】:總結(jié)最近幾個(gè)月開源工作者們follow ChatGPT的主要方向和方法;

3、自然語言生成任務(wù)的前世今生和未來 【later】:大語言模型之外,談?wù)勛匀徽Z言生成的“傳統(tǒng)”研究方向與未來暢想。

因?yàn)橄嚓P(guān)技術(shù)發(fā)展迅速,三部分內(nèi)容也會(huì)定期更新。本文主要為第一部分經(jīng)典論文學(xué)習(xí),而相關(guān)的工作眾多(如圖),一一閱讀并不現(xiàn)實(shí),因此本文選擇持續(xù)性最高的OpenAI系列和Google系列,以及近期影響力比較大的LLaMA,最后是中文適配比較好的GLM和ChatGLM。

85154a90-d827-11ed-bfe3-dac502259ad0.png

10B以上大模型(黃色為開源)

此外,本文閱讀需要一定的NLP基礎(chǔ)概念,比如知道什么是BERT和Transformer、什么是Encoder-Decoder架構(gòu)、什么是預(yù)訓(xùn)練和微調(diào),什么是語言模型等。

OpenAI 系列

本節(jié)目標(biāo)是通過OpenAI系列論文閱讀細(xì)窺ChatGPT的主要原理,其先進(jìn)的工作脈絡(luò)可以概括為下圖。從依賴往上追溯需要了解Codex 和 instructGPT、再往上是GPT-3、繼而也需要了解GPT-2和GPT-1。(GPT-4暫時(shí)簡單地看作是Plus版本的GPT-3.5,而且增加了多模態(tài)數(shù)據(jù)的處理能力,等更多的細(xì)節(jié)公開后再作討論)

8541db28-d827-11ed-bfe3-dac502259ad0.jpg

GPT-1

論文鏈接:《Improving Language Understanding by Generative Pre-Training》

動(dòng)機(jī)

任務(wù)目標(biāo)和BERT一致(但在BERT之前),希望通過大規(guī)模無標(biāo)注數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,下游任務(wù)微調(diào)的方式解決經(jīng)典NLP任務(wù),緩解有監(jiān)督任務(wù)數(shù)據(jù)收集成本高的問題。GPT-1雖然不是第一個(gè)使用預(yù)訓(xùn)練-微調(diào)架構(gòu)的工作,但也是使用Transformer-Decoder做相關(guān)任務(wù)的很早期工作了。

方案概述

  • 模型結(jié)構(gòu):Transformer的Decoder部分

  • 訓(xùn)練方法:自回歸的生成方式進(jìn)行語言模型預(yù)訓(xùn)練,判別式的結(jié)構(gòu)進(jìn)行下游任務(wù)微調(diào)。

一些細(xì)節(jié)

  • 預(yù)訓(xùn)練:

    • Loss:經(jīng)典的語言模型訓(xùn)練目標(biāo),將無標(biāo)注的樣本庫表示為token 序列集合 U = {u_1, ...., u_n},最大化下面的似然估計(jì)。即通過一段話的前面的token,預(yù)測下一個(gè)token,其中k為上下文窗口。

85614346-d827-11ed-bfe3-dac502259ad0.jpg

    • 模型:使用多層Transformer decoder建模P,簡化的公式表達(dá)如下。W_e為token embedding矩陣,W_p為位置向量矩陣,通過多層transformer block,最后每個(gè)token通過transformer block成為編碼后的向量h_n,最后經(jīng)過一個(gè)線性層+softmax,即為下一個(gè)token的預(yù)測分布。

856cf18c-d827-11ed-bfe3-dac502259ad0.jpg

    • 數(shù)據(jù):早期數(shù)據(jù)并沒有非??鋸垼珿PT-1的主要數(shù)據(jù)有兩個(gè):

      • BooksCorpus dataset:包括7000多本未發(fā)表的書籍;

      • 1B Word Benchmark(可選)。

  • 微調(diào):

    • 模型改動(dòng):通過增加特殊token作為輸入的開始[Start]和結(jié)束[Extract]等,以結(jié)束[Extract]的隱層輸出接入全連接層,并進(jìn)行下游的分類和其他變種任務(wù)。如圖所示:

8586d430-d827-11ed-bfe3-dac502259ad0.jpg

    • loss:

85adf920-d827-11ed-bfe3-dac502259ad0.jpg

85c53b12-d827-11ed-bfe3-dac502259ad0.jpg

    • 小細(xì)節(jié):微調(diào)過程中,在下游任務(wù)目標(biāo)基礎(chǔ)上,加入預(yù)訓(xùn)練目標(biāo),效果更好。

85d6e7c2-d827-11ed-bfe3-dac502259ad0.jpg

結(jié)果與討論

  • 主要驗(yàn)證方法:文章主要是通過下游任務(wù)的效果進(jìn)行策略的有效性驗(yàn)證,通過一些經(jīng)典任務(wù)數(shù)據(jù)集。結(jié)論來看,在不少數(shù)據(jù)集上都還有著不錯(cuò)的效果,以分類為主的數(shù)據(jù)集為例,如圖所示??梢钥吹?,這時(shí)的對(duì)比項(xiàng)還沒有BERT的蹤影。

85e58156-d827-11ed-bfe3-dac502259ad0.jpg

GPT-2

論文鏈接:《Language Models are Unsupervised Multitask Learners》

動(dòng)機(jī)

GPT-1之后不久,BERT出現(xiàn),刷榜各種任務(wù)。GPT-1嘗試增加模型大小,但在預(yù)訓(xùn)練+微調(diào)的訓(xùn)練框架下,仍打不過同參數(shù)大小的BERT;但研究還得繼續(xù),嘗試換個(gè)打法,以Zero-Shot作為賣點(diǎn),效果不錯(cuò)。

方案概述

GPT-2實(shí)現(xiàn)Zero-Shot的方法在現(xiàn)在看來比較簡單:將所有的NLP任務(wù)統(tǒng)一看作是p(output|input)的建模,而如果統(tǒng)使用一個(gè)足夠容量的模型實(shí)現(xiàn),還要告訴模型需要完成什么任務(wù),這時(shí)建模目標(biāo)可以表達(dá)為p(output|input, task)。

對(duì)于統(tǒng)一大模型的選擇,網(wǎng)絡(luò)結(jié)構(gòu)與GPT-1相同,使用方式也很自然:task和input均使用自然語言的方式作為輸入交給GPT,模型繼續(xù)一步步地預(yù)測下一個(gè)最大可能的token,直到結(jié)束。如翻譯任務(wù):模型輸入“翻譯中文到英文,原文‘我愛深度學(xué)習(xí)’”,模型輸出“I love deep learning.”。又如閱讀理解任務(wù),模型輸入“回答問題,內(nèi)容‘xxx’, 問題‘xxx?’”,模型輸出問題的答案。

沒錯(cuò),就是早期的Prompting方法(其實(shí)也不是最早的)。這么做的依據(jù)則是考慮到訓(xùn)練數(shù)據(jù)集里有大量的Prompt結(jié)構(gòu)的語料,可以使模型學(xué)到遇到類似的提示語后需要生成什么。

85fe37be-d827-11ed-bfe3-dac502259ad0.jpg

一些細(xì)節(jié)

  • 訓(xùn)練數(shù)據(jù):為了支持多任務(wù)的Zero-Shot,需要模型盡可能看更多,盡可能豐富的數(shù)據(jù),數(shù)據(jù)收集的目標(biāo)也是如此。要點(diǎn)如下:

    • 開源Common Crawl,全網(wǎng)網(wǎng)頁數(shù)據(jù),數(shù)據(jù)集量大,且足夠豐富,但存在質(zhì)量問題,故而沒有直接使用;

    • 自建了WebText數(shù)據(jù)集,網(wǎng)頁數(shù)據(jù),主打一個(gè)干凈高質(zhì)量:只保留被人過濾過的網(wǎng)頁,但人過濾成本很高,這里的方法是只要Reddit平臺(tái)(類似國內(nèi)的貼吧,社交分享平臺(tái))中被用戶分享的站外鏈接,同時(shí)要求帖子至少3個(gè)karma(類似點(diǎn)贊?)??梢哉J(rèn)為被分享的往往是人們感興趣的、有用的或者有意思的內(nèi)容。

    • WebText最終包括4500w鏈接,后處理過程:1、提取網(wǎng)頁內(nèi)容后;2、保留2017年以后的內(nèi)容;3、去重;4、啟發(fā)式的清理,得到800w+的文檔,約40GB;4、剔除維基百科文檔,避免與下游測試數(shù)據(jù)重疊(因?yàn)楹芏鄿y試任務(wù)包括了維基百科數(shù)據(jù),話說其他數(shù)據(jù)沒有重疊嗎?)。

  • 模型:沿用GPT結(jié)構(gòu),但在模型特征輸入編碼、權(quán)重初始化、詞典大小、輸入長度、batch size等方面做了一些調(diào)整,主要是升級(jí)。

結(jié)論與討論

  • 主要結(jié)論:

    • 文章嘗試了四種大小的模型,其中117M對(duì)應(yīng)了Bert-base(和GPT-1),345M對(duì)應(yīng)和Bert-large參數(shù)量,最大的模型1542M(15億參數(shù))。

8630cf08-d827-11ed-bfe3-dac502259ad0.jpg

    • 模型的選擇使用WebText的5%作為驗(yàn)證數(shù)據(jù),實(shí)驗(yàn)發(fā)現(xiàn)所有大小的模型仍然是欠擬合狀態(tài),隨著訓(xùn)練時(shí)間的增加,在驗(yàn)證集上的效果仍然可以繼續(xù)提升。

    • 當(dāng)然,在大多數(shù)Zero-Shot任務(wù)集合上也如愿取得了當(dāng)時(shí)最好的結(jié)果:

863abc52-d827-11ed-bfe3-dac502259ad0.jpg

  • 次要結(jié)論:在多數(shù)任務(wù)上,模型容量和核心指標(biāo)的關(guān)系,可以發(fā)現(xiàn)隨著模型容量的增加,效果不斷變強(qiáng)。15億參數(shù)看上去沒有達(dá)到瓶頸,也就是說繼續(xù)提升模型容量,效果能到什么程度極具想象力。(也就有了后續(xù)GPT-3的大力出奇跡)

    • Children’s Book Test任務(wù):

86485f38-d827-11ed-bfe3-dac502259ad0.jpg

    • Winograd Schema Challenge任務(wù):

86602bd6-d827-11ed-bfe3-dac502259ad0.jpg

    • 其他Zero-Shot任務(wù)

868cbeee-d827-11ed-bfe3-dac502259ad0.jpg

    • 語言模型預(yù)訓(xùn)練集和驗(yàn)證集的效果(perplexity困惑度越小越好)

86a5d2d0-d827-11ed-bfe3-dac502259ad0.jpg

GPT-3

論文鏈接:《Language Models are Few-Shot Learners》

動(dòng)機(jī)

BERT出來之后,雖然預(yù)訓(xùn)練+微調(diào)架構(gòu)取得了驚人的效果(GPT系列短期比不了了),但這種微調(diào)有很多限制

  • 微調(diào)需要更多的領(lǐng)域數(shù)據(jù),標(biāo)注成本高,一些特殊任務(wù)更是難上加難(如糾錯(cuò)、寫作、問答等)。

  • 微調(diào)在小數(shù)據(jù)量下表現(xiàn)好,很可能只是過擬合。很多任務(wù)說是超過人類,實(shí)際上是夸大了實(shí)際表現(xiàn)(模型并不是根據(jù)知識(shí)和推理去做任務(wù),并不智能)。

  • 以人類的學(xué)習(xí)習(xí)慣對(duì)比,在人類有了足夠的知識(shí)后(預(yù)訓(xùn)練),并不需要再看大量的監(jiān)督數(shù)據(jù)才能做任務(wù)(對(duì)應(yīng)微調(diào)),而只需要看少量樣例即可。

文章認(rèn)為,雖然微調(diào)現(xiàn)在效果確實(shí)打不過,但追求不微調(diào)仍然是值得的。方法嘛,延續(xù)GPT-2最后的結(jié)論,更大的模型、更多的數(shù)據(jù)、prompt更多的信息(In-Context learning)。

方案簡述

主要與GPT-2相比:

  • 沿用GPT-2的模型和訓(xùn)練方法,將模型大小升級(jí)到175B(1750億的參數(shù)量 vs 15億),這個(gè)175B的模型叫GPT-3;

  • 不同于BERT/GPT-1模型使用下游任務(wù)微調(diào)進(jìn)行效果驗(yàn)證,也不同于GPT-2僅僅使用Zero-Shot進(jìn)行驗(yàn)證,GPT-3主要驗(yàn)證其In-Context learning的能力(可能認(rèn)為是不微調(diào),不梯度更新的方式,看通過prompt和幾個(gè)例子作為輸入,來完成具體任務(wù)的能力)。

  • GPT-3也不是不能微調(diào),以后會(huì)做一些工作來看看微調(diào)的表現(xiàn)(這里說的也就是后面的Codex、InstructGPT和ChatGPT等工作了)。

一些細(xì)節(jié)

  • 模型訓(xùn)練方式:前面提到了,相對(duì)GPT-2沒有創(chuàng)新,就是更大模型、更多更豐富的數(shù)據(jù)、更長的訓(xùn)練時(shí)間,不止于Zero-Shot,還做One-Shot和Few-Shot任務(wù)(這里的x-Shot是不微調(diào)模型的,也就是所謂的In-Context learning,而在預(yù)訓(xùn)練階段沒有特殊操作),如圖。

86c79ff0-d827-11ed-bfe3-dac502259ad0.jpg

  • 模型:沿用了GPT-2的結(jié)構(gòu),在模型初始化、歸一化、Tokenization做了一些優(yōu)化,另外也“抄”了一些類似Sparse Transformer的優(yōu)點(diǎn)(總之是加了一些同期一些被驗(yàn)證有效的操作,或自己驗(yàn)證有效的小操作)。為了驗(yàn)證模型容量帶來的效果,文章訓(xùn)練了多種大小的模型,最大的175B的叫GPT-3。為了訓(xùn)練大模型,還做了一些模型并行和提效的工作(其實(shí)這部分也比較重要,但是沒有展開說)。模型大小參數(shù),以及同期一些工作的訓(xùn)練資源開銷對(duì)比如圖:

86e82a2c-d827-11ed-bfe3-dac502259ad0.jpg

870b33b4-d827-11ed-bfe3-dac502259ad0.jpg

  • 訓(xùn)練數(shù)據(jù)準(zhǔn)備:

    • 文章發(fā)現(xiàn),模型增大之后,引入一些臟數(shù)據(jù)的負(fù)向影響沒這么大了。因此,相比于GPT-2,GPT-3開始使用Common Crawl數(shù)據(jù)集了,但是做了一些清洗工作:1、保留與高質(zhì)量數(shù)據(jù)集類似的內(nèi)容(使用一些相似或判別的方法);2、去重;

    • 最后把清洗后的Common Crawl數(shù)據(jù)和已有的高質(zhì)量數(shù)據(jù)集合并在一起,得到訓(xùn)練數(shù)據(jù)集,并進(jìn)行不同權(quán)重的采樣使用:

871fdb8e-d827-11ed-bfe3-dac502259ad0.jpg

  • 模型訓(xùn)練過程:

    • 大模型可以使用更大的batch size,但是需要小一點(diǎn)的Learning rate;根據(jù)梯度的噪音尺度,動(dòng)態(tài)調(diào)整batch size;為了防止大模型OOM,使用了全方位的模型并行,微軟提供了硬件和軟件的支持。

結(jié)論與討論

  • 主要結(jié)論:整體效果不錯(cuò),在各種數(shù)據(jù)集上做了對(duì)比,NLU相關(guān)任務(wù),GPT-3表現(xiàn)不錯(cuò)(個(gè)別數(shù)據(jù)集還超過了有監(jiān)督微調(diào)的方式);在QA、翻譯、推理等任務(wù)上還欠點(diǎn)火候,距離監(jiān)督微調(diào)模型差距明顯;生成任務(wù)基本可以做到人難分辨。如,幾個(gè)主要的任務(wù):

    • SuperGLUE:理解任務(wù)為主

8734616c-d827-11ed-bfe3-dac502259ad0.jpg

    • Winogrande:推理任務(wù)為主

875a6c18-d827-11ed-bfe3-dac502259ad0.jpg

    • TriviaQA:閱讀理解任務(wù)為主

87797374-d827-11ed-bfe3-dac502259ad0.jpg

  • 次要結(jié)論:

    • 從主要結(jié)論曲線,可以明顯發(fā)現(xiàn),few-shot比zero-shot效果好,模型越大越好(廢話),而且175B好像也沒到極限,模型更大效果可能還會(huì)繼續(xù)上升。

    • 另一個(gè)數(shù)據(jù)顯示,模型越大,loss下降空間越大,當(dāng)前版本最大的模型,仍然沒有收斂(黃色曲線);另一個(gè)不樂觀的趨勢是隨著Loss的逐步降低,算力的ROI(投入產(chǎn)出比)也在逐漸降低。

87896bf8-d827-11ed-bfe3-dac502259ad0.jpg

    • 因?yàn)槟P蜕尚Ч婕匐y辨,文章也著重討論了模型的偏見、不道德以及不當(dāng)用途的問題,因此也決定不開源(OpenAI走上CloseAI之路)!

Codex

論文鏈接:《Evaluating Large Language Models Trained on Code》

動(dòng)機(jī)

GPT-3論文里提到,GPT可以微調(diào)但放在未來搞,Codex就是微調(diào)工作之一。任務(wù)是GPT模型在代碼生成方向做微調(diào)的探索,算是一個(gè)應(yīng)用方向的論文。

方案簡述

具體地,Codex是利用代碼注釋生成代碼。訓(xùn)練數(shù)據(jù)從github上獲取,主要為python語言。為了驗(yàn)證模型效果,Codex做了一個(gè)新的數(shù)據(jù)集(164個(gè)原始代碼問題,可以認(rèn)為一些經(jīng)典的leetcode題、面試題),通過單元測試的方式驗(yàn)證生成代碼的正確性。

最終Codex可以取得28%的測試通過率(GPT-3只能解決0%);如果允許重復(fù)采樣生成多個(gè)結(jié)果,選擇100個(gè),可以達(dá)到70%的通過率(想想自己能通過多少)。經(jīng)過一些rerank策略,通過率直逼80%。

87a610fa-d827-11ed-bfe3-dac502259ad0.jpg

一些細(xì)節(jié)

  • 驗(yàn)證集準(zhǔn)備:因?yàn)橹皼]有現(xiàn)成的評(píng)測代碼生成的驗(yàn)證集,文章自己設(shè)計(jì)了一個(gè)HumanEval。并使用pass@k作為評(píng)測指標(biāo)(生成k個(gè)結(jié)果中有一個(gè)能通過就算通過,然后算通過率)??紤]生成代碼的安全性不可控,需要使用一個(gè)sandbox環(huán)境運(yùn)行(崩了也沒事)。HumanEval的樣例數(shù)據(jù)如下,包括代碼注釋和標(biāo)準(zhǔn)答案:

87d4ec22-d827-11ed-bfe3-dac502259ad0.jpg

  • 訓(xùn)練數(shù)據(jù):截止到2020年5月,涉及540萬的Github倉庫,包括179GB的Python文件,文件大小小于1MB。做了一些過濾,主要過濾項(xiàng)是自動(dòng)生成的代碼、平均行長度大于100、最大行長度大于1000、包含一定比例數(shù)字等。最后數(shù)據(jù)集大小159GB。

  • 模型:考慮生成任務(wù),利用GPT系列的預(yù)訓(xùn)練模型應(yīng)該會(huì)有好處,選擇了13B的GPT模型作為主模型,進(jìn)行微調(diào)。值得一提的是,利用預(yù)訓(xùn)練的GPT微調(diào)并不優(yōu)于使用代碼數(shù)據(jù)從頭訓(xùn)練(應(yīng)該是因?yàn)閿?shù)據(jù)量已經(jīng)足夠大了),但是使用微調(diào)收斂更快。模型細(xì)節(jié):

    • 參數(shù)配置和GPT-3差不多;基于代碼數(shù)據(jù)特點(diǎn),做了特別的tokenizer,最終少了30%的token;sample數(shù)據(jù)時(shí)使用特別的停止符(' class'、' def'等),保證sample代碼的完整性;

結(jié)論與討論

  • 主要結(jié)論:

    • 不同的參數(shù)調(diào)整,和采樣數(shù)量,顯著影響生成代碼的通過率。

880128aa-d827-11ed-bfe3-dac502259ad0.jpg

    • 如果只選一個(gè)答案,使用一些模型輸出指標(biāo),如最大mean log-probability,可以比隨機(jī)選擇效果更好;用借助先驗(yàn)知識(shí)的單元測試進(jìn)行代碼選擇,可以取得理論上的最好效果(Oracle)。

88078cc2-d827-11ed-bfe3-dac502259ad0.jpg

  • 次要結(jié)論:因?yàn)樾Ч€可以,趨勢上看模型更大看上去效果還會(huì)提升,文章最后討論了一下對(duì)于機(jī)器會(huì)寫代碼的擔(dān)憂(自我優(yōu)化最可怕);另外代碼中也不出意外的有歧視、道德的偏見。(這個(gè)大概源自代碼里也有人口吐芬芳,代碼命名帶Fxxk,有人的地方就有偏見)。

InstructGPT

論文鏈接:《Training language models to follow instructions with human feedback》

動(dòng)機(jī)

GPT的另一種微調(diào)探索,使用用戶指令和偏好答案來微調(diào)GPT模型,讓模型生成的內(nèi)容更符合用戶的意圖,更真實(shí)、更有用(Alignment,對(duì)齊過程)。這么做的出發(fā)點(diǎn)是面向一種經(jīng)典的應(yīng)用場景,用戶給一條指令聲明意圖,期望模型生成有用、無害的內(nèi)容,但使用大量網(wǎng)頁數(shù)據(jù)訓(xùn)練的大語言模型GPT無法直接滿足這種訴求,因此需要微調(diào)。

方案簡述

指令微調(diào)的過程分為三步(RLHF,Reinforcement Learning from Human Feedback),如下圖:

1、準(zhǔn)備一批prompt(來源標(biāo)注人員手寫、OpenAI API請(qǐng)求);對(duì)于這批prompt,標(biāo)注人員手寫期望的答案,用這份prompt+answer數(shù)據(jù)微調(diào)GPT-3生成模型,這里叫做supervised policy;

2、使用微調(diào)后的模型,根據(jù)更多的prompt生成答案(一次prompt多次采樣生成個(gè)答案),這時(shí)外包只要標(biāo)注生成內(nèi)容的相對(duì)順序即可;用這份標(biāo)注數(shù)據(jù)訓(xùn)練一個(gè)reward模型(RM模型),輸入prompt和answer,模型輸出一個(gè)打分(這里同樣是使用GPT模型)。

3、采樣更多的prompt,使用強(qiáng)化學(xué)習(xí)的方式,繼續(xù)訓(xùn)練生成模型,強(qiáng)化學(xué)習(xí)的reward使用第2步的模型打分。

第2和3步是一個(gè)持續(xù)迭代的過程,即,第3步訓(xùn)練出的更好的生成模型(policy)可以用來收集更多具有相對(duì)順序標(biāo)簽的數(shù)據(jù),這些數(shù)據(jù)則用來訓(xùn)練新的RM模型(即步驟2),繼而再訓(xùn)練新的生成模型(對(duì)應(yīng)步驟3)。大多數(shù)的相對(duì)順序標(biāo)注數(shù)據(jù)來自于步驟1,一部分來自于步驟2和3的迭代。

此外這篇文章并不是第一個(gè)使用該方法的工作,前面還有一篇Learning to summarize from human feedback》,使用類似三步方法做摘要任務(wù)。同樣是OpenAI的工作,體現(xiàn)了工作的持續(xù)性,而非一蹴而就,靈感也不是說有就有。

88119d48-d827-11ed-bfe3-dac502259ad0.jpg

一些細(xì)節(jié)

  • 數(shù)據(jù)收集過程

    • 冷啟動(dòng)階段:通過部分人工標(biāo)注的prompt+answer數(shù)據(jù),監(jiān)督訓(xùn)練得到的早期版本InstructGPT;豐富階段:部署試用版本在線服務(wù),收集更多更豐富的真實(shí)用戶prompt。本工作并未使用線上正式環(huán)境的服務(wù)用戶數(shù)據(jù),試用版本的數(shù)據(jù)將用于數(shù)據(jù)標(biāo)注和模型訓(xùn)練,也提前告知了用戶;

    • 收集到的prompt根據(jù)最長公共前綴做了去重;

    • 每個(gè)用戶最多200條prompt,避免模型迎合個(gè)別用戶偏好;訓(xùn)練集、驗(yàn)證集和測試集,不包括相同用戶(強(qiáng)調(diào)用戶維度的泛化能力);

    • 過濾prompt中與個(gè)人身份相關(guān)的信息,同樣是避免模型學(xué)到用戶特征;

    • 早期版本InstructGPT的訓(xùn)練數(shù)據(jù)是由外包手寫的prompt和答案,冷啟prompt包括3類:1、任意常見任務(wù)問題,追求任務(wù)的豐富性;2、同一類prompt寫多個(gè)query和答案;3、模仿真實(shí)用戶的prompt請(qǐng)求;

    • 經(jīng)過上面的操作,得到三類數(shù)據(jù):1、SFT dataset,訓(xùn)練集13k prompts(來自于API和標(biāo)注人員手寫),用來訓(xùn)練SFT模型;2、RM數(shù)據(jù)集,訓(xùn)練集33k prompts(來自于API和標(biāo)注人員手寫),人工標(biāo)注生成模型輸出答案的排序,用來訓(xùn)練RM模型;3、PPO數(shù)據(jù)集,31k prompts(僅來自于API),不需要人工標(biāo)注,用來做RLHF fine-tuning。

  • prompt特點(diǎn):

    • 真實(shí)用戶的prompt指令類型分布和樣例如圖,96%的是英文,但結(jié)果發(fā)現(xiàn)對(duì)其他語言也有泛化能力。

88346b3e-d827-11ed-bfe3-dac502259ad0.jpg

  • 數(shù)據(jù)標(biāo)注細(xì)節(jié)(也很關(guān)鍵,值得參考):

    • 一個(gè)外包標(biāo)注團(tuán)隊(duì),由40個(gè)承包商組成,應(yīng)該是為了提升標(biāo)注多樣性,防止模型對(duì)標(biāo)注員風(fēng)格敏感;

    • 對(duì)標(biāo)注人員進(jìn)行了測試(考試,性格測試),篩選目標(biāo)是留下那些隊(duì)不同群體敏感(宗教、性取向、種族等)、能識(shí)別潛在有害內(nèi)容的標(biāo)注人員;

    • 要求標(biāo)注人員能夠準(zhǔn)確判斷用戶意圖,對(duì)于模糊意圖進(jìn)行跳過;考慮隱含意圖,對(duì)于一些潛在、誘導(dǎo)性的臟話、偏見、虛假信息能夠識(shí)別;

    • 訓(xùn)練和驗(yàn)證階段的意圖對(duì)齊(alignment)有些許沖突:訓(xùn)練階段強(qiáng)調(diào)生成內(nèi)容的有用性(helpfulness),驗(yàn)證階段則關(guān)注內(nèi)容的真實(shí)性(truthfulness)和是否有害(harmlessness);

    • 標(biāo)注過程,算法開發(fā)和標(biāo)注人員緊密溝通,為了做到這點(diǎn),對(duì)外包標(biāo)注人員做了一個(gè)入職流程(可能要交社保=_=);

    • 為了測試模型對(duì)標(biāo)注人員的泛化能力,留了一部分測試用的標(biāo)注人員(held-out labelers,真工具人,嚴(yán)謹(jǐn)了),這些標(biāo)注人員產(chǎn)出的數(shù)據(jù)不用于訓(xùn)練,而且這些人員沒有經(jīng)過性格測試;

    • 盡管標(biāo)注任務(wù)難度大,但標(biāo)注人員的標(biāo)注一致性還可以,訓(xùn)練標(biāo)注人員標(biāo)注一致性72.6 ± 1.5%,測試標(biāo)注人員一致性77.3 ± 1.3%。

  • 模型實(shí)現(xiàn):同訓(xùn)練過程,包括三部分

    • Supervised fine-tuning (SFT):使用標(biāo)注人員標(biāo)注的數(shù)據(jù),有監(jiān)督的微調(diào)GPT模型,訓(xùn)了16個(gè)epoch, 學(xué)習(xí)率cosine decay。模型的選擇使用驗(yàn)證集上的RM模型score(雞生蛋蛋生雞)。值得一提的是,這里SFT模型在驗(yàn)證集上1個(gè)epoch后就overfit了,但是繼續(xù)更多的epoch有利于RM score和人的偏好。

    • Reward modeling (RM):

      • 模型:同樣是SFT GPT模型結(jié)構(gòu),不過是另外訓(xùn)練了一個(gè)6B的(175B不穩(wěn)定,不適合下面的RL訓(xùn)練),輸入是prompt和生成的內(nèi)容,pooling后接一個(gè)全連接(也許有)輸出一個(gè)scalar reward分。

      • Loss函數(shù)表示為:

884ec15a-d827-11ed-bfe3-dac502259ad0.jpg

      • K為是一個(gè)prompt模型生成的答案數(shù),標(biāo)注人員對(duì)K個(gè)模型進(jìn)行排序;K為4-9,標(biāo)9個(gè)和4個(gè)成本差不多;

      • 需要一個(gè)bias對(duì)reward進(jìn)行歸一,使其均值為0,方便下游RL使用(這里的bias可以是reword均值,也是RL的常規(guī)操作);

    • Reinforcement learning (RL),兩個(gè)實(shí)驗(yàn)?zāi)P停?/p>

      • ‘PPO’模型:直接使用經(jīng)典的PPO算法,一種offline的RL算法,目標(biāo)是最大化模型反饋的reward,同時(shí)兼顧online模型和offline模型的KL散度(這里offline模型是SFT模型,online模型是要優(yōu)化的目標(biāo)模型,online模型參數(shù)會(huì)定期同步到offline模型。如果不熟悉RL可以簡單了解其目標(biāo)即可);模型輸出的reward,由RM打分得到;

      • ‘PPO-ptx’模型:PPO+預(yù)訓(xùn)練目標(biāo)(加這個(gè)目標(biāo),被驗(yàn)證可以兼顧公開NLP任務(wù)的效果),最終的優(yōu)化目標(biāo),最大化:

8857ae00-d827-11ed-bfe3-dac502259ad0.jpg

  • 驗(yàn)證方法:評(píng)價(jià)模型兩方面的能力,1、生成的答案人是不是喜歡;2、經(jīng)典的NLP任務(wù)解決的怎么樣。

    • 在API請(qǐng)求的prompt驗(yàn)證效果:

      • 真實(shí)分布下采樣prompt做測試集;

      • 175B的SFT GPT-3模型作為Baseline;

      • 標(biāo)注人員對(duì)各個(gè)模型生成的內(nèi)容打出1-7分的喜歡/認(rèn)可度;

      • 認(rèn)可度的依據(jù)是helpful、honest和harmless,每個(gè)維度又有很多細(xì)則。

    • 在開源的NLP數(shù)據(jù)集,包括兩類:

      • 評(píng)測安全性、真實(shí)性、有害和偏見的數(shù)據(jù)集;

      • 經(jīng)典NLP任務(wù)數(shù)據(jù)集熵zero-shot的結(jié)果,如閱讀理解、問答、摘要等。

結(jié)論與討論

  • 主要結(jié)論

    • 對(duì)于通過API獲得的測試集prompt,RLHF顯出好于baseline:

886a5cf8-d827-11ed-bfe3-dac502259ad0.jpg

    • 對(duì)比友商模型,也不錯(cuò):

888b94ea-d827-11ed-bfe3-dac502259ad0.jpg

  • 次要結(jié)論(InstructGPT生成內(nèi)容的白話評(píng)價(jià)):

    • 標(biāo)注人員普遍認(rèn)為InstructGPT生成的內(nèi)容比GPT-3強(qiáng)很多;

    • InstructGPT模型生成的內(nèi)容比GPT-3事實(shí)性更強(qiáng)(出現(xiàn)事實(shí)性錯(cuò)誤比較少);

    • InstructGPT生成的內(nèi)容在有害性優(yōu)于GPT-3,但在偏見方面并沒有強(qiáng)很多

    • 在RLHF微調(diào)過程中,由于“對(duì)齊稅”的原因,在開源NLP任務(wù)表現(xiàn)變差了,但RLHF基礎(chǔ)上增加語言模型的預(yù)訓(xùn)練目標(biāo),可以得到兼顧(PPO-ptx)。

    • InstructGPT模型在“held-out”標(biāo)注人員上也表現(xiàn)出了不錯(cuò)的泛化性;

    • 公開NLP數(shù)據(jù)集任務(wù)上的表現(xiàn),并不是InstructGPT追求的(ChatGPT才是);

    • InstructGPT模型在RLHF finetuning數(shù)據(jù)集分布外的prompt同樣具有很好的泛化能力;

    • InstructGPT生成的內(nèi)容仍然會(huì)出現(xiàn)一些簡單的錯(cuò)誤

ChatGPT

論文沒有,官方博客:《https://openai.com/blog/chatgpt》

OpenAI沒有開放ChatGPT的細(xì)節(jié),只有兩段大致方法描述,摘要一下包括:

  • 和InstructGPT的方法大致相同,只是在數(shù)據(jù)收集上略有不同。ChatGPT使用的對(duì)話形式的數(shù)據(jù),即多輪prompt和上下文,InstructGPT的數(shù)據(jù)集也轉(zhuǎn)換成對(duì)話格式合并一起使用。

  • 訓(xùn)練RM模型,使用多個(gè)模型生成的結(jié)果,隨機(jī)選擇模型生成的內(nèi)容讓標(biāo)注人員根據(jù)內(nèi)容質(zhì)量排序,然后借助RM模型進(jìn)行后續(xù)的PPO微調(diào)訓(xùn)練。同樣,這也是一個(gè)反復(fù)迭代的過程。

更多的細(xì)節(jié)無了,不過從OpenAI友商Anthropic(創(chuàng)始人也來自O(shè)penAI)的一篇論文能看到更多細(xì)節(jié)。以O(shè)penAI工作的持續(xù)性看,從公司跳槽出去的人,應(yīng)該也是延續(xù)了相關(guān)的工作。

讀Anthropic之前,插一段OpenAI的系列工作總結(jié),存?zhèn)€檔。讀了上面的論文,對(duì)于這張表的內(nèi)容應(yīng)該能夠大致理解(參考):

能力 模型名 訓(xùn)練方法 OpenAI API
Before GPT-3
Pretrain + Fintune like Bert GPT-1 Language Modeling + Task Finetune -
Generation+Zero-shot task GPT-2 Language Modeling -
GPT-3 Series
Generation+World Knowledge+In-context Learning GPT-3 Initial Language Modeling Davinci
+Follow Human Instruction+generalize to unseen task Instruct-GPT initial Instruction Tuning Davinci-Instruct-Beta
+Code Understanding+Code Generation Codex initial Training on Code Code-Cushman-001
GPT-3.5 Series
++Code Understandning++Code Generation++Complex Reasoning / Chain of Thought (why?)+long-term dependency (probably) Current Codex Strongest model in GPT3.5 Series Training on text + code Tuning on instructions Code-Davinci-002 (currently free. current = Dec. 2022)
++Follow Human Instruction--In-context learning--Reasoning++Zero-shot generation Instruct-GPT supervisedTrade in-context learning for zero-shot generation Supervised instruction tuning Text-Davinci-002
+Follow human value+More detailed generation+in-context learning+zero-shot generation Instruct-GPT RLHF More aligned than 002, less performance loss Instruction tuning w. RLHF Text-Davinci-003
++Follow human value++More detailed generation++Reject questions beyond its knowledge (why?) ++Model dialog context --In-context learning ChatGPT Trade in-context learning for dialog history modeling Tuning on dialog w. RLHF -

可能確實(shí)如一些大佬所說,ChatGPT沒有創(chuàng)新,只是一堆策略的疊加,湊出了一個(gè)強(qiáng)大的模型;也有人說ChatGPT更多的是工程和算法的結(jié)合。不管怎么樣,方法是真work。

Anthropic的Claude

參考論文鏈接:《Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback》

ChatGPT出來不久,Anthropic很快推出了Claude,媒體口徑下是ChatGPT最有力的競爭者。能這么快的跟進(jìn),大概率是同期工作(甚至更早,相關(guān)工作論文要早幾個(gè)月)。Anthropic是OpenAI員工離職創(chuàng)業(yè)公司,據(jù)說是與OpenAI理念不一分道揚(yáng)鑣(也許是不開放、社會(huì)責(zé)任感?)。

一些內(nèi)測結(jié)論:Claude相比ChatGPT更能避免潛在harmful的問題,在代碼生成略為遜色,通用Prompt不分伯仲。從效果上,可能ChatGPT功能性更強(qiáng),而Claude更為“無害”(或者說,對(duì)社會(huì)的潛在負(fù)面影響更?。?,這點(diǎn)從參考論文的標(biāo)題也有所體現(xiàn)。

動(dòng)機(jī)

引入偏好模型和RLHF(人類反饋強(qiáng)化學(xué)習(xí))微調(diào)大語言模型(可能因?yàn)槊撾xOpenAI,不提GPT-3了),得到一個(gè)helpful和harmless的個(gè)人助理(類似ChatGPT);這種對(duì)齊(Alignment)微調(diào),使預(yù)訓(xùn)練的語言模型在幾乎所有的NLP任務(wù)中效果提升顯著,并且可以完成特定的任務(wù)技能,如coding、摘要和翻譯等。

方案簡述

其實(shí)思路和InstructGPT差不多,三階段的RLHF。不同點(diǎn)在于,1、進(jìn)行了迭代式的在線模型訓(xùn)練:模型和RL策略每周使用新的人工反饋數(shù)據(jù)更新,不斷迭代數(shù)據(jù)和模型;2、使用對(duì)話格式的數(shù)據(jù)數(shù)據(jù);3、更為關(guān)注模型的helpful和harmless。

除了模型和策略設(shè)計(jì)之外,文章重點(diǎn)討論了RLHF的穩(wěn)定性問題;也對(duì)模型校準(zhǔn)、目標(biāo)沖突、OOD(out of distribution)識(shí)別等問題做了分析。

目標(biāo)沖突是指helpful和harmless的目標(biāo)沖突,因?yàn)槿绻P蛯?duì)所有問題都回答“不知道”,雖然harmless,但是完全不helpful。

一些細(xì)節(jié)

  • 對(duì)話偏好數(shù)據(jù)集:

    • 收集了一批helpfulness and harmlessness的對(duì)話數(shù)據(jù)集,數(shù)據(jù)的標(biāo)注是標(biāo)注人員和各種52B語言模型在對(duì)話標(biāo)注頁面交互完成。標(biāo)注頁面如圖;

88af385a-d827-11ed-bfe3-dac502259ad0.jpg

    • 標(biāo)注人員在交互頁面與模型進(jìn)行開放式對(duì)話,或者尋求幫助、或者提出指令、或者引導(dǎo)模型輸出有害內(nèi)容(比如如何成功搶劫)。對(duì)于模型輸出的多個(gè)答案,標(biāo)注人員需要在每輪對(duì)話標(biāo)注出哪個(gè)更有用或哪個(gè)更有害;

    • 收集了三份數(shù)據(jù),一個(gè)來自于初始模型(SFT)、一個(gè)來自早期的偏好模型(RM)采樣、最后一個(gè)來自人工反饋的在線強(qiáng)化學(xué)習(xí)模型(周更);

    • 開源了三份數(shù)據(jù):https://github.com/anthropics/hh-rlhf

  • 數(shù)據(jù)收集和模型訓(xùn)練流程(中間涉及的概念需要讀往期論文,了解即可):

88c8ab46-d827-11ed-bfe3-dac502259ad0.jpg

LLaMa與Alpaca

事情發(fā)展到現(xiàn)在,有一個(gè)小問題,就是模型越來越大,開源越來越少(其實(shí)開源了大多數(shù)人也玩不了)。首先GPT-3系列模型就很大了,訓(xùn)練和inference模型都需要大量的顯卡;其次,GPT-3所用的數(shù)據(jù)也未公開,有算力復(fù)現(xiàn)也稍困難,需要自己去盤數(shù)據(jù);在GPT-3之后的ChatGPT的閉源程度更甚,可能要進(jìn)一步考慮商業(yè)利益。

在這樣的背景下,前調(diào)模型提效以及開放的工作越來越多,近期比較有影響里的當(dāng)屬M(fèi)eta AI的LLama和斯坦?;贚Lama的Alpaca。前者類似GPT的大語言模型,后者類似ChatGPT。

LLama

論文:《LLaMA: Open and Efficient Foundation Language Models》

代碼:https://github.com/facebookresearch/llama

動(dòng)機(jī)

  • 大語言模型相關(guān)的工作中,過去的普遍假設(shè)是模型越大效果越好。但近期有些工作表明,給定計(jì)算資源的前提下,最佳的效果不是由最大的模型實(shí)現(xiàn),而是由更多的數(shù)據(jù)下相對(duì)小的模型實(shí)現(xiàn)。而后者對(duì)于inference或微調(diào)階段更為友好,是更好的追求

  • 相應(yīng)的,本文的工作是訓(xùn)練一批模型,實(shí)現(xiàn)了更好的效果,同時(shí)預(yù)測成本低。取得這種效果的一大手段,就是讓模型看到了更多的token。訓(xùn)練得到的這些模型就是LLama。

方案簡述

LLama的思想比較簡單,在動(dòng)機(jī)里已經(jīng)大致包括。這項(xiàng)工作的其他特點(diǎn)可以簡述為以下幾點(diǎn):

  • 提供了7B~65B的模型,13B的模型效果可超GPT-3(175B),65B的模型效果直逼谷歌的PaLM(540B);

  • 訓(xùn)練模型只用了開源數(shù)據(jù)集,trillions of token

  • 多項(xiàng)任務(wù)上SOTA,并且開源了所有模型權(quán)重

一些細(xì)節(jié)

  • 訓(xùn)練數(shù)據(jù)集(主要是英文,因此中文和中文微調(diào)效果堪憂)

88ebf4f2-d827-11ed-bfe3-dac502259ad0.jpg

  • 模型容量概況

891a7822-d827-11ed-bfe3-dac502259ad0.jpg

  • 模型結(jié)構(gòu):

和GPT一樣,同樣是Transformer Decoder架構(gòu),沿用了各種工作被驗(yàn)證有效的小優(yōu)化(如:Pre-Normalization、SwiGLU激活函數(shù)、Rotary Embedding、AdamW優(yōu)化器等)。同時(shí)也做了一些訓(xùn)練效率上的優(yōu)化,包括模型實(shí)現(xiàn)上以及模型并行上的優(yōu)化。

  • 訓(xùn)練過程:7B和13B的模型在1T的token上進(jìn)行訓(xùn)練;33B和65B的模型則在1.4T的token上進(jìn)行了訓(xùn)練。

89354404-d827-11ed-bfe3-dac502259ad0.jpg

結(jié)論與討論

  • LLama對(duì)標(biāo)GPT,主要在Zero-Shot和Few-Shot任務(wù)上進(jìn)行了驗(yàn)證;同時(shí)考慮指令微調(diào)是現(xiàn)在的流行應(yīng)用之一,因此也在指令微調(diào)任務(wù)做了驗(yàn)證。

    • Zero-Shot

894cb382-d827-11ed-bfe3-dac502259ad0.jpg

    • Few-Shot

89670c78-d827-11ed-bfe3-dac502259ad0.jpg

    • 指令微調(diào)(主要和谷歌的Flan系列做對(duì)比):

898f4b7a-d827-11ed-bfe3-dac502259ad0.jpg

Alpaca

文章:https://crfm.stanford.edu/2023/03/13/alpaca.html

代碼:https://github.com/tatsu-lab/stanford_alpaca

動(dòng)機(jī)

前面可以看到,GPT-3.5、ChatGPT、Claude以及Bing Chat等指令微調(diào)模型被驗(yàn)證效果拔群,但仍存在生存內(nèi)容虛假、帶偏見和惡意等問題。為了加快這些問題的解決,需要學(xué)術(shù)屆(窮老師、學(xué)生、公司)的加入一起研究,但是GPT-3.5這些模型大且閉源。

前陣子LLama發(fā)布,給了希望。所以基于LLama做指令微調(diào)得到了Alpaca模型,效果和GPT-3.5差不多,而且簡單、復(fù)現(xiàn)成本低。

方案簡述

  • 窮人搞指令微調(diào),需要兩個(gè)前提:1、參數(shù)量小且效果好的預(yù)訓(xùn)練語言模型;2、高質(zhì)量的指令訓(xùn)練數(shù)據(jù)。

  • 這兩個(gè)前提,現(xiàn)在看上去可以方便滿足:1、LLama模型7B模型,可以接受;2、通過現(xiàn)有的強(qiáng)語言模型可以自動(dòng)生產(chǎn)訓(xùn)練數(shù)據(jù)(準(zhǔn)備prompt,調(diào)用GPT-3.5系列的OpenAI api)。

一些細(xì)節(jié)

  • 訓(xùn)練方式:使用指令微調(diào)的方式,在LLama 7B模型上訓(xùn)練;訓(xùn)練數(shù)據(jù)規(guī)模為5.2萬,來源是對(duì)OpenAI GPT-3.5 API的調(diào)用(花費(fèi)500美元);微調(diào)過程在8張 80G A100s顯卡訓(xùn)練3小時(shí)(使用云計(jì)算服務(wù),花費(fèi)100美元)。訓(xùn)練過程如圖。

89b7ea4e-d827-11ed-bfe3-dac502259ad0.jpg

結(jié)論和討論

目前開放了:測試Demo、訓(xùn)練數(shù)據(jù)集、訓(xùn)練數(shù)據(jù)的生成過程、訓(xùn)練代碼;預(yù)訓(xùn)練的權(quán)重未來開放(可能考慮一些外因);

  • Demo: aninteractive demofor everyone to try out Alpaca.

  • Data:52K demonstrationsused to fine-tune Alpaca.

  • Data generation process: the code forgenerating the data.

  • Training code: forfine-tuningthe model using the Hugging Face API.

未來可能的方向(不包括優(yōu)化推理能力,也許這些還是要留給有錢人):

  • 模型驗(yàn)證:更加系統(tǒng)嚴(yán)格的對(duì)模型進(jìn)行評(píng)估,會(huì)從HELM(Holistic Evaluation of Language Models)開始,檢驗(yàn)?zāi)P偷纳珊椭噶顚?duì)其能力;

  • 模型的安全性:更全面的評(píng)估模型的風(fēng)險(xiǎn)性;

  • 理解模型(可解釋):研究模型學(xué)到的是什么?基模型的選擇有什么學(xué)問?增加模型參數(shù)帶來的是什么?指令數(shù)據(jù)最關(guān)鍵的是什么?有沒有其他的收集數(shù)據(jù)的方法?

GLM與ChatGLM

LLama雖好,但更多的是使用英文數(shù)據(jù)集,但在中文上表現(xiàn)不佳。同樣指令微調(diào)后在中文場景下上限應(yīng)該也比較低。因此在中文上,有必要有自己的一條研究方向,當(dāng)前影響力比較高的開源版本屬清華的GLM和ChatGLM。

GLM和ChatGLM相關(guān)的介紹比較多,下面摘抄部分內(nèi)容對(duì)其進(jìn)行簡單了解。

GLM

論文:

  • 《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》

  • 《GLM-130B: AN OPEN BILINGUAL PRE-TRAINED MODEL》

方案簡述

GLM-130B是在GPT-3之后,清華的大語言模型方向的嘗試。不同于 BERT、GPT-3 以及 T5 的架構(gòu),GLM-130B是一個(gè)包含多目標(biāo)函數(shù)的自回歸預(yù)訓(xùn)練模型。

89cc3df0-d827-11ed-bfe3-dac502259ad0.jpg

一些細(xì)節(jié)

GLM-130B在2022年8月開放,有一些獨(dú)特的優(yōu)勢:

  • 雙語:同時(shí)支持中文和英文。

  • 高精度(英文):在公開的英文自然語言榜單 LAMBADA、MMLU 和 Big-bench-lite 上優(yōu)于 GPT-3 175B(API: davinci,基座模型)、OPT-175B 和 BLOOM-176B。

  • 高精度(中文):在7個(gè)零樣本 CLUE 數(shù)據(jù)集和5個(gè)零樣本 FewCLUE 數(shù)據(jù)集上明顯優(yōu)于 ERNIE TITAN 3.0 260B 和 YUAN 1.0-245B。

  • 快速推理:首個(gè)實(shí)現(xiàn) INT4 量化的千億模型,支持用一臺(tái) 4 卡 3090 或 8 卡 2080Ti 服務(wù)器進(jìn)行快速且基本無損推理。

  • 可復(fù)現(xiàn)性:所有結(jié)果(超過 30 個(gè)任務(wù))均可通過我們的開源代碼和模型參數(shù)復(fù)現(xiàn)。

  • 跨平臺(tái):支持在國產(chǎn)的海光 DCU、華為昇騰 910 和申威處理器及美國的英偉達(dá)芯片上進(jìn)行訓(xùn)練與推理。

ChatGLM

文章:https://chatglm.cn/blog

代碼:https://github.com/THUDM/ChatGLM-6B

方案簡介

ChatGLM參考ChatGPT 的設(shè)計(jì)思路,在千億基座模型 GLM-130B中注入了代碼預(yù)訓(xùn)練,通過有監(jiān)督微調(diào)(Supervised Fine-Tuning)等技術(shù)實(shí)現(xiàn)人類意圖對(duì)齊。

為與社區(qū)一起更好地推動(dòng)大模型技術(shù)的發(fā)展,清華同時(shí)開源 ChatGLM-6B模型。ChatGLM-6B 是一個(gè)具有62億參數(shù)的中英雙語語言模型。通過使用與 ChatGLM(http://chatglm.cn)相同的技術(shù),ChatGLM-6B 初具中文問答和對(duì)話功能,并支持在單張 2080Ti 上進(jìn)行推理使用。

一些細(xì)節(jié)

ChatGLM-6B 有如下特點(diǎn):

  • 充分的中英雙語預(yù)訓(xùn)練:ChatGLM-6B 在 1:1 比例的中英語料上訓(xùn)練了 1T 的 token 量,兼具雙語能力。

  • 優(yōu)化的模型架構(gòu)和大?。何?GLM-130B 訓(xùn)練經(jīng)驗(yàn),修正了二維 RoPE 位置編碼實(shí)現(xiàn),使用傳統(tǒng)FFN結(jié)構(gòu)。6B(62億)的參數(shù)大小,也使得研究者和個(gè)人開發(fā)者自己微調(diào)和部署 ChatGLM-6B 成為可能。

  • 較低的部署門檻:FP16 半精度下,ChatGLM-6B 需要至少 13GB 的顯存進(jìn)行推理,結(jié)合模型量化技術(shù),這一需求可以進(jìn)一步降低到 10GB(INT8) 和 6GB(INT4), 使得 ChatGLM-6B 可以部署在消費(fèi)級(jí)顯卡上。

  • 更長的序列長度:相比 GLM-10B(序列長度1024),ChatGLM-6B 序列長度達(dá) 2048,支持更長對(duì)話和應(yīng)用。

  • 人類意圖對(duì)齊訓(xùn)練:使用了監(jiān)督微調(diào)(Supervised Fine-Tuning)、反饋?zhàn)灾‵eedback Bootstrap)、人類反饋強(qiáng)化學(xué)習(xí)(Reinforcement Learning from Human Feedback) 等方式,使模型初具理解人類指令意圖的能力。輸出格式為 markdown,方便展示。

因此,ChatGLM-6B 具備了一定條件下較好的對(duì)話與問答能力。ChatGLM-6B 也有相當(dāng)多已知的局限和不足:

  • 模型容量較小:6B 的小容量,決定了其相對(duì)較弱的模型記憶和語言能力。在面對(duì)許多事實(shí)性知識(shí)任務(wù)時(shí),ChatGLM-6B 可能會(huì)生成不正確的信息;她也不擅長邏輯類問題(如數(shù)學(xué)、編程)的解答。

  • 可能會(huì)產(chǎn)生有害說明或有偏見的內(nèi)容:ChatGLM-6B 只是一個(gè)初步與人類意圖對(duì)齊的語言模型,可能會(huì)生成有害、有偏見的內(nèi)容。

  • 較弱的多輪對(duì)話能力:ChatGLM-6B 的上下文理解能力還不夠充分,在面對(duì)長答案生成,以及多輪對(duì)話的場景時(shí),可能會(huì)出現(xiàn)上下文丟失和理解錯(cuò)誤的情況。

  • 英文能力不足:訓(xùn)練時(shí)使用的指示大部分都是中文的,只有一小部分指示是英文的。因此在使用英文指示時(shí),回復(fù)的質(zhì)量可能不如中文指示的回復(fù),甚至與中文指示下的回復(fù)矛盾。

  • 易被誤導(dǎo):ChatGLM-6B 的“自我認(rèn)知”可能存在問題,很容易被誤導(dǎo)并產(chǎn)生錯(cuò)誤的言論。例如當(dāng)前版本模型在被誤導(dǎo)的情況下,會(huì)在自我認(rèn)知上發(fā)生偏差。即使該模型經(jīng)過了1萬億標(biāo)識(shí)符(token)左右的雙語預(yù)訓(xùn)練,并且進(jìn)行了指令微調(diào)和人類反饋強(qiáng)化學(xué)習(xí)(RLHF),但是因?yàn)槟P腿萘枯^小,所以在某些指示下可能會(huì)產(chǎn)生有誤導(dǎo)性的內(nèi)容。

小結(jié)

到這里還是低谷了工作量,寫吐了,谷歌系列的幾個(gè)工作,還是得單獨(dú)一篇才能完結(jié)。與OpenAI的工作類似,谷歌同樣產(chǎn)出了對(duì)標(biāo)GPT-3和InstructGPT之類的模型,也包括了T5系列的Encoder-Decoder結(jié)構(gòu)的大語言模型,而且并不是簡單的Follow。

另一方面3、4月份,廣大的開源工作者們也是百花齊放,在類ChatGPT的應(yīng)用方向做出了很多探索工作,包括訓(xùn)練數(shù)據(jù)、模型、以及訓(xùn)練方法的探索與開源。在訓(xùn)練效率方向上,也出現(xiàn)了ChatGLM+Lora、LLama+Lora等進(jìn)一步降低訓(xùn)練成本的工作。

這部分的內(nèi)容也將在后面進(jìn)行總結(jié)式的介紹和更新,也期待在這段時(shí)間里有更多優(yōu)秀的工作誕生。對(duì)于文章中內(nèi)容中的不正之處,也歡迎指正交流~。



審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    498

    瀏覽量

    10236
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5462

    瀏覽量

    120869
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1545

    瀏覽量

    7336

原文標(biāo)題:ChatGPT的朋友們:大語言模型經(jīng)典論文一次讀到吐

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    名單公布!【書籍評(píng)測活動(dòng)NO.34】大語言模型應(yīng)用指南:以ChatGPT為起點(diǎn),從入門到精通的AI實(shí)踐教程

    了備受矚目的ChatGPT。在接下來的不到一年的時(shí)間里,大語言模型的生態(tài)系統(tǒng)迅速壯大并蓬勃發(fā)展。 大語言模型的生態(tài)系統(tǒng)可以分為
    發(fā)表于 06-03 11:39

    朋友們幫忙啊

    朋友們有沒有低頻低壓大功率的整流穩(wěn)壓電路給推薦個(gè)實(shí)用的?能承受 30V600A或15V1500A的整流穩(wěn)壓電路給推薦幾個(gè)或著發(fā)送電子郵件到shnwq10000@126.com劉海龍的電子郵箱在此先謝謝各位朋友
    發(fā)表于 03-31 16:22

    朋友們新年快樂

    ` 本帖最后由 eehome 于 2013-1-5 10:03 編輯 祝朋友們新年快樂,心想事成。`
    發(fā)表于 01-01 11:09

    fpga學(xué)習(xí)群,歡迎朋友們加入

    群號(hào):[backcolor=rgba(255, 255, 255, 0.2)]1473--9--2555最近在組織討論ZYnQ,歡迎朋友們加入,尤其是北京的。。組織線下討論交流,,。。。
    發(fā)表于 06-08 11:12

    朋友們,我是新人請(qǐng)多多幫助

    朋友們,我是新人請(qǐng)多多幫助
    發(fā)表于 12-20 13:02

    加油了 電設(shè)的朋友們

    加油了 電設(shè)的朋友們PCB打樣找華強(qiáng) http://www.hqpcb.com 樣板2天出貨
    發(fā)表于 09-02 09:25

    PCB技術(shù)交流群 262600057 pcb菜鳥的天堂 做PCB的朋友們值...

    PCB技術(shù)交流群 262600057 pcb菜鳥的天堂做PCB的朋友們值得擁有的群提倡和諧共同進(jìn)步!
    發(fā)表于 06-22 13:34

    LabViEW寶典,需要的朋友們拿去~

    LabViEW寶典,需要的朋友們拿去~
    發(fā)表于 08-06 23:03

    請(qǐng)問下朋友們,Matched Net Lengths到底該設(shè)置成多少呢??

    上到10000,下到10都是有很多違反規(guī)則的地方,具體我也不知道這是規(guī)定什么的,還望朋友們幫幫小弟啊
    發(fā)表于 02-25 13:13

    來哦來哦!??!電子設(shè)計(jì)大賽 請(qǐng)朋友們進(jìn)來討論

    來哦來哦?。?!電子設(shè)計(jì)大賽請(qǐng)朋友們進(jìn)來討論
    發(fā)表于 06-18 21:28

    實(shí)驗(yàn)室的朋友們看過

    `各位實(shí)驗(yàn)室的同胞,小女子是清華科研幫的,我們長期做加工、測試、定制、3d打印、論文修改等業(yè)務(wù),需要的科研同胞請(qǐng)聯(lián)系我的微信:a1903190015.下面上宣傳手冊(cè):`
    發(fā)表于 04-11 10:30

    PLC控制系統(tǒng)怎么提升運(yùn)行速度?有啥好方法嘛?朋友們

    PLC控制系統(tǒng)怎么提升運(yùn)行速度?有啥好方法嘛?朋友們
    發(fā)表于 01-17 20:11

    科技大廠競逐AIGC,中國的ChatGPT在哪?

    信通院云計(jì)算與大數(shù)據(jù)研究所人工智能部副主任董曉飛說。 算法、算力及數(shù)據(jù)是人工智能行業(yè)發(fā)展的三大核心要素。 在算法層面,ChatGPT的基礎(chǔ)是世界上最強(qiáng)大的LLM(大語言模型)之一——GPT-3,同時(shí)
    發(fā)表于 03-03 14:28

    ChatGPT浪潮下,看中國大語言模型產(chǎn)業(yè)發(fā)展

    ChatGPT的橫空出世拉開了大語言模型產(chǎn)業(yè)和生成式AI產(chǎn)業(yè)蓬勃發(fā)展的序幕。本報(bào)告將著重分析“OpenAI ChatGPT的成功之路”、“中國類Ch
    的頭像 發(fā)表于 06-01 16:49 ?995次閱讀
    <b class='flag-5'>ChatGPT</b>浪潮下,看中國大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>產(chǎn)業(yè)發(fā)展

    llm模型chatGPT的區(qū)別

    基于Transformer架構(gòu)的預(yù)訓(xùn)練語言模型,它可以生成連貫、自然的文本。ChatGPT使用GPT模型作為基礎(chǔ),通過微調(diào)和訓(xùn)練來實(shí)現(xiàn)對(duì)話生成和理解。 以下是一
    的頭像 發(fā)表于 07-09 09:55 ?829次閱讀