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