一個大模型是如何被煉出來的
大家日常都會接觸到不少大模型和AI工具,有考慮過他們是如何做的嗎?知道原理,對于我們使用大模型和調整方法很有幫助。
在大語言模型(Large Language Model,LLM)中,無監督學習、有監督學習和強化學習是機器學習的三個組成部分,也是訓練一個大模型的三個基礎階段。他們各自扮演著不同的角色,并應用于不同的訓練階段和任務中。
第一步:無監督學習階段
無監督學習也就是模型的預訓練階段,簡單來說就是給模型投喂大量大量的文本,進行無監督學習的預訓練,這樣我們就會得到一個能夠進行文本生成的基座。
在預訓練中,需要大量的文本作為原料,讓模型從中學習,比如gpt-3這個基座模型的訓練數據,就有非常多的互聯網文本語料庫,包含有新聞、圖書和文獻、科學論文、特定領域的數據集、社交媒體和論壇等等。訓練數據的整體規模有三千億的Token(具體什么是token我們將在下一個帖子中詳細解釋。先簡單來理解的話就是基本文本單位)。
此時預訓練的結束之后我們會得到一 個基座模型,而這個基座模型并不擅長對話,你給他一個問題,他可能模仿上文,幫你繼續生成更多的問題,但并不回答你的問題。這時我們開始進行第二步有監督學習
第二步:有監督學習階段
有了大量的訓練文本之后,我們就要采用“有監督學習”的方式,也就是通過一些人類撰寫的高質量對話數據,對基座模型進行監督微調。
微調就是在已有模型上做進一步的訓練,這個階段呢,我們需要給基座模型看更多的對話數據,包括單輪的對話數據還有多輪對話的數據等,目的呢就是為了訓練一個擅長對話的AI助手。
微調的成本相比預訓練要低很多,因為需要的訓練數據的規模相比較小,訓練時長更短,在這一階段里,模型不需要從海量文本中學習了,而是從一些人類寫的專業且高質量的對話里學習(在這個階段就產生了一個職業叫做AI訓練師或者數據標注員,這個我們后邊的帖子在慢慢細聊),這相當于既給了模型問題,也給了模型我們人類中意的回答,屬于監督學習了。
這個過程被叫做監督微調(Supervised Fine-Tuning)簡稱:SFT。
完成后會得到一個SFT模型。
第三步:強化學習階段
在強化學習階段,模型進一步優化以提升在實際應用中的表現,從而模型能夠自主的學習。
這個階段主要包含一下兩個步驟:
a. 人類反饋強化學習(Reinforcement Learning from Human Feedback, RLHF)
這個部分包含:人類評價、獎勵模型(Reward Model)、策略優化
b. 反饋和調整
通過多次迭代的反饋和調整,模型逐漸學會生成更高質量的響應。這一過程通常涉及反復的生成、評估、調整和優化。
這些都相對比較好理解,但我重點要說的是獎勵模型(Reward Model)
要讓一個模型,能乖乖當一個樂于助人的AI助手,我們可以讓模型對問題做出回答,然后讓人類評測人員去給回答打分,打分的標準主要是基于3H原則(幫助性、真實性、無害性)
- 幫助性-helpful:模型的輸出應該對用戶有實際幫助,能夠解決用戶的問題或滿足用戶的需求。
- 真實性-honest:模型的輸出應該真實可靠,不應捏造事實或誤導用戶。
- 無害性-harmless:判斷模型的輸出是否適當、是否包含偏見有害性信息等內容
如果打分高的話,模型能學習到要再接再厲,如果打分低的話,模型就學習到要予以改進。
但是靠人類給回答一個個打分,成本極高、效率極低。所以我們要訓練出另一個模型,讓模型給模型打分。在這一步里,需要訓練一個reward獎勵模型。他是從回答以及回答對應的評分里進行學習的。
模型得到評分數據的方式是:我們會使用不同模型構造同一問題下不同的回答,然后讓人類標注員對回答質量進行比較排序,還有部分情況下是由人工補充滿分的答案。讓模型知道哪個答案是最好的。
雖然還是免不了要借助人類的勞動。但一旦有了足夠的排序數據,就可以把數據用在訓練獎勵模型上。讓獎勵模型學習預測回答的評分。
獎勵模型訓練出來后,就可以用在強化學習上了,強化學習里,大模型的最初參數來自之前得到的SFT模型,但會隨著訓練被更新,獎勵模型的參數則不會再被更新,他的任務就是對模型生成的內容打分,經過一輪又一輪迭代后,模型會不斷優化策略,回答的質量也就會進一步提升。
最后這樣一個大模型就在不斷學習中煉成了。??
本文由 @貝琳_belin 原創發布于人人都是產品經理。未經作者許可,禁止轉載
題圖來自Unsplash,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務
- 目前還沒評論,等你發揮!