預(yù)訓(xùn)練——ChatGPT背后的關(guān)鍵技術(shù)
這篇文章介紹一下什么是預(yù)訓(xùn)練,并通過預(yù)訓(xùn)練了解一連串和ChatGPT相關(guān)的常見名詞解釋,監(jiān)督學(xué)習(xí),無監(jiān)督學(xué)習(xí),自監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)以及微調(diào)。
不知道大家會不會好奇,ChatGPT為什么會叫ChatGPT?反正一開始我們的好幾個項目里都在引入GPT模型,看名字就知道ChatGPT和GPT有千絲萬縷的關(guān)系,但本著產(chǎn)品經(jīng)理的好奇心,我還是去搜索了下……
- Chat:因為就像和人一樣在聊天,理解~
- G:Generative;嗯,因為是生成式人工智能,沒毛病~
- P:Pre-trained;預(yù)訓(xùn)練,預(yù)先就先訓(xùn)練好了很多東西?
- T:Transformer;嗯,深度學(xué)習(xí)中很有名的一個架構(gòu),合乎情理~
同時我也搜索了下,GPT的發(fā)展史,在這里順便總結(jié)下供大家參考~
可能有人會問GPT-3.5,GPT-4o,這些又是什么,其實,簡單總結(jié)來說,把GPT-3拿來做微調(diào)再用的都叫GPT-3.5,GPT-4o是GPT-4的一個優(yōu)化版本,更適合用于大規(guī)模、高效的應(yīng)用場景。
這次搜索也同時引發(fā)了一個問題,GPT-1提出了預(yù)訓(xùn)練的概念,其中用到了unsupervised這個詞,不禁讓我想到了監(jiān)督學(xué)習(xí)(Supervised learning)。
一、什么是監(jiān)督學(xué)習(xí)?
簡單來說,就是人類提供成對的資料讓機(jī)器學(xué)習(xí)的技術(shù)叫做監(jiān)督學(xué)習(xí)(Supervised learning),它是實現(xiàn)人工智能目標(biāo)的一個重要技術(shù)。
成對資料就是給定輸入(Input)和輸出(Output),讓機(jī)器學(xué)習(xí)輸入和輸出之間的Mapping關(guān)系。
比如
- 輸入為用戶的產(chǎn)品評價,輸出為正面評價/負(fù)面評價
- 輸入為一封Email,輸出為垃圾郵件/不是垃圾郵件
- 輸入為汽車前面的照片+雷達(dá)信息,輸出為其他車輛的位置
通過學(xué)習(xí)輸入和輸出之間的Mapping關(guān)系,使得機(jī)器在給定輸入(Input)時,能夠生成相應(yīng)的輸出(Output)。
這些成對資料都需要人類提供,不難想象,這需要大量的人力資源,而且還會有一個問題,就是人類可以提供的成對資料是有限的。一旦有一個新的問題是之前人類沒有提供的,就可能回答不了。
二、預(yù)訓(xùn)練:更高效的成對學(xué)習(xí)
有沒有一種更簡單的方式獲得大量的成對資料呢?
在前面好幾篇文章中,我們都提到了ChatGPT在做的事就是預(yù)測下一個token,然后做文字接龍,從而可以提供一個不錯的回答給到你。有沒有可能,網(wǎng)絡(luò)上的每一段文字都可以教機(jī)器怎么做文字接龍。
比如
中國的首都是北京。
床前明月光,疑是地上霜。
夏天天氣真熱。
這樣,機(jī)器就可以從網(wǎng)絡(luò)上這些巨大量的資料中開始勤奮的學(xué)習(xí)了~
比如
輸入“中國的首都是”,那輸出“北”的概率越大越好;輸入“中國的首都是北”,那輸出“京”的概率越大越好。
輸入“窗前明月光”,輸出“逗號”的概率越大越好;輸入“窗前明月光,”,輸出“疑”的概率越大越好,以此類推。
輸入“夏天天氣”,輸出“真”的概率越大越好;輸入“夏天天氣真”,輸出“熱”的概率越大越好。
通過大量網(wǎng)絡(luò)資料學(xué)習(xí)的過程,我們稱之為預(yù)訓(xùn)練(Pre-trained),有時候也叫自監(jiān)督學(xué)習(xí)(Self-supervised Learning),因為這些成對的學(xué)習(xí)資料不是人類提供的,自監(jiān)督學(xué)習(xí)通過數(shù)據(jù)本身來生成監(jiān)督信號,是一種無監(jiān)督學(xué)習(xí)(Unsupervised learning)方法。
預(yù)訓(xùn)練可以從大量無標(biāo)注數(shù)據(jù)上學(xué)習(xí)到普遍適用的特征,而GPT非常專注的在做這件事情,就是去網(wǎng)絡(luò)上獲取大量的資料學(xué)習(xí)做文字接龍這件事,也就是可以反復(fù)預(yù)測下一個單詞。
三、預(yù)訓(xùn)練的優(yōu)缺點
1. 好處
- 加速訓(xùn)練過程
- 提高泛化能力:如果我們在多種語言上做了預(yù)訓(xùn)練之后,只要教某一個語言的一個任務(wù),其他語言也會自動學(xué)會相同的任務(wù)。
3. 缺點
從GPT-1開始就這么學(xué)習(xí)一直學(xué)習(xí)到了GPT-3,可以看到GPT-3已經(jīng)的訓(xùn)練資料量已經(jīng)龐大到很難想象了,但問題也隨之產(chǎn)生,GPT3雖然能力很強(qiáng),但是不受控制,不一定會給出我們想要的答案。
比如,當(dāng)我問一個問題想要獲取答案的時候,很有可能它在網(wǎng)絡(luò)上大量的資料學(xué)習(xí)的時候,曾經(jīng)在某張試卷上看到這個問題被出了一道考題,它就把這道考題當(dāng)作答案回復(fù)給了我。
那怎么可以讓它更受控制,給出我們想要的答案呢?
那就需要人類的介入了。
人類說,輸入“中國的經(jīng)濟(jì)中心是哪個城市”,輸出是“上?!?。
GPT就透過人類提供的資料繼續(xù)學(xué)習(xí),就變成了ChatGPT。
所以ChatGPT是通過監(jiān)督學(xué)習(xí)(Supervised learning)產(chǎn)生的,也就是這個時候人類提供了成對資料讓它繼續(xù)學(xué)習(xí)。
而繼續(xù)學(xué)習(xí)很多時候叫微調(diào)(finetune)。
四、強(qiáng)化學(xué)習(xí):從依賴到超越
我們前面也有提到,人類提供成對資料還是比較辛苦的,那有沒有更輕松的辦法呢?
有,這個辦法叫強(qiáng)化學(xué)習(xí)(Reinforcement Learning),人類不需要準(zhǔn)備正確答案,只需要告訴機(jī)器答案好還是不好。這種方法特別適用于連人類產(chǎn)生正確答案都比較困難的時候,比如,請?zhí)暨x二十四節(jié)氣中的一個寫一首詩,這個時候人類給出這首詩是否符合要求相對輕松,但是自己寫一首這樣的詩就會相對困難。
五、總結(jié)
讓我們來梳理一下在這篇文章中出現(xiàn)的概念吧~
ChatGPT學(xué)習(xí)的三個步驟
1. 預(yù)訓(xùn)練(Pretraining):通過大量的網(wǎng)絡(luò)資料學(xué)習(xí)讓模型學(xué)習(xí)如何預(yù)測下一個詞,有時候也叫自監(jiān)督學(xué)習(xí)(Self-supervised Learning),而自監(jiān)督學(xué)習(xí)是一種無監(jiān)督學(xué)習(xí)(Unsupervised learning)方法。
2. 監(jiān)督學(xué)習(xí)(Supervised learning):使用了人工標(biāo)注的成對資料微調(diào)(finetune)模型以適應(yīng)特定的任務(wù),特別是對話任務(wù)。
3. 強(qiáng)化學(xué)習(xí)(Reinforcement Learning):人類對模型的輸出進(jìn)行評分,并根據(jù)這些評分來優(yōu)化模型,使得模型逐步學(xué)會生成更加符合人類偏好的回答。從而更精確地滿足用戶需求。
本文由 @AI 實踐干貨 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
- 目前還沒評論,等你發(fā)揮!