ChatGPT關鍵技術,GPT 怎麼變成 ChatGPT 的?

更新於 發佈於 閱讀時間約 6 分鐘

說明:

這文章其實也是李宏毅老師 2023 年機器學習課程的個人一些學習整理,李老師上課的內容&口吻很精彩,很建議大家直接看李老師的課程影片: 完整的所有課程在這裏


接續我們上一篇文章: ChatGPT 是什麼? ChatGPT 的原理

我們這篇文件將更進一步跟大家介紹 ChatGPT 的其他關鍵技術以及這些技術之間怎麼串在一起的。

關鍵技術一、預訓練

我們上一篇文章有提到,GPT 其實就是從網路資料訓練而來的,而這個訓練方式就稱為預訓練(也就是自監督學習)。

而單純只是使用網路資料訓練而來的 GPT 可以有什麼能耐呢? 其實在 GPT-3 發表時,人們就發現好像有機會透過指令讓它寫程式。

raw-image

只不過...語言模型如果只是從網路資料來做學習,會有很大的問題,例如:

如果我們將程式設計的考題貼上,只是經過預訓練的 GPT 模型,它可能只是直接就把該考題的 ABCD 選項,回覆給你。

raw-image

而要解決上述的問題,就需要人類老師的協助了(finetune)。

關鍵技術二、微調(finetune)

經過預訓練的 GPT 模型,也就是俗稱的基石模型,我們有了基石模型後,下一步就是要想辦法讓 GPT 繼續學習(微調 finetune)。

raw-image

而對 GPT 模型進行微調其實就像是我們在試著告訴 GPT 人類的偏好,

我們一樣以【台灣最高的山是哪座】為例,因為 GPT 從網路上學習了大量的句子,所以【台灣最高的上是哪座】這樣的問題,有很多可能的答案,例如:

網路上有人可能真的回答了【玉山】,

但是也有可能 GPT 學習到的只是某份考卷內的選項【(A)雪山 (B)玉山】

甚至也有可能只是有人在網路上貼文求救,【誰來告訴我啊】

raw-image

以上這三種可能的答案,我們如何讓 GPT 知道哪個答案才是對的,也就是我們人類對這類問題回答的偏好呢?

ChatGPT 的方式就是在內部再額外建立一個學習人類偏好的模型,我們把它簡稱為 Teacher Model,前面那個三個可能的答案,ChatGPT 會先透過我們人類老師來人工挑選適合的答案(也就是玉山那個),再將三個可能答案得到的分數餵給 Teacher Model,讓 Teacher Model 學習到我們的偏好。

然後用我們人類偏好的答案回覆給我們。

raw-image


關鍵技術三、增強式學習

到這裏,可能就有人反應了,這樣人類老師不是需要蒐集很多的問題來微調?

是也不是,需要微調的數量的確也不少,所以 ChatGPT 最後的訓練流程,則使用了增強式學習的概念。

raw-image

增強式學習的原理大概是這樣:

在我們有了懂得人類偏好的模型之後(也就是 Teacher Model),我們就可以把問題以及 GPT 的答覆一起餵給 Teacher Model,而因為 Teacher Model 這時候已經知道我們人類對這類問題的口味偏好了。所以也就可以代替我們人類來幫 GPT 的答案打分數,這個分數其實也就是增強式學習中的 Reward。

最後 GPT 就會依照這個拿到的分數多寡來調整 GPT 的參數,這樣 GPT 的回覆就可以在 Teacher Model 這邊取得高分,如此便能夠逐漸回覆人類偏好的答案。

raw-image

經過以上反復調教後,ChatGPT 也就練成了。

所以當人們詢問 ChatGPT 【世界上最高的上是哪座】時,ChatGPT 也就知道該回覆什麼答案,也就是喜馬拉雅山。

raw-image

以上幾個就是 ChatGPT 練成的幾個關鍵技術,最後有一個蠻有趣的現象來跟大家做補充。

大家都知道 ChatGPT 幾乎什麼語言都能通,這樣我們需要針對每個語言來訓練 GPT 嗎?

答案可能是不需要。

預訓練的多語言能力

李宏毅老師的實驗室曾經發現,當語言模型在多語言上做了預訓練之後,下一步的問答訓練上,只要教語言模型某一個語言的某一個任務,語言模型就自動會學會其他語言的同樣任務了。

raw-image

詳細的細節,有興趣的人可以去查詢 Multi-BERT 這篇論文,在這裏我們先跟大家分享其中一個可以佐證這個現象的分析數據。

raw-image

他們發現,如果在一個沒有經過預訓練的語言模型上(QANet),使用中文問答來微調後,它可以達到約 78.1 分的精準度。
(為方便理解,我們在此將 F1 Score 當做精準度)

而在以中文來做預訓練的 BERT 模型上,使用中文問答來做微調,它的效果的確比沒有用中文做預訓練的 QANet 好,可達到 89.1 分。

但是在以 104 個語言來做預訓練的語言模型(BERT)上,我們只是用英文問答來微調,然後用中文問答來測試,卻也可以取得 78.8 的高分。

這個現象要怎麼解釋呢?

或許透過 104 個語言來做預訓練的 GPT,不只學習到了大量的人類知識,它也學到了人類語言裏的共同概念(語言)了吧。


備註一、
我們這篇文章內的圖表都是由李宏毅老師的課程投影片中選錄截取出來的,原始投影片可參考李老師課程首頁內連接: Machine Learning 2023 Spring

很感謝李宏毅老師無私的分享以及同意使用。

------

備註二、實際上 ChatGPT 如何實做出來的,ChatGPT 官方已經不再詳細公佈了。不過我們透過一些蛛絲馬跡看出,ChatGPT 的實做細節很有可能也跟 IntructionGPT 類似。以上詳細說明也請參考 李宏毅老師【ChatGPT (可能)是怎麼煉成的 - GPT 社會化的過程】的這個課程影片。































留言
avatar-img
留言分享你的想法!
avatar-img
Ted Chen的沙龍
18會員
19內容數
Ted Chen的沙龍的其他內容
2023/08/04
本篇文章深入探討了如何評估模糊訊息在對話系統開發中的它的品質驗證方式,並且使用了類似Rubic評分準則的方法來評估回覆訊息。也介紹了專家回覆與實際回覆比較的評估方式。文章最終目的希望能讓讀者具備開發自己的對話機器人的知識。
Thumbnail
2023/08/04
本篇文章深入探討了如何評估模糊訊息在對話系統開發中的它的品質驗證方式,並且使用了類似Rubic評分準則的方法來評估回覆訊息。也介紹了專家回覆與實際回覆比較的評估方式。文章最終目的希望能讓讀者具備開發自己的對話機器人的知識。
Thumbnail
2023/07/28
此文針對對話系統的持續開發和改進過程進行詳細解說,尤其在提示訊息的設計與驗證方面。以大賣場的銷售助理為例,我們設計了提示訊息,進行多次測試與調整,確保回應結果符合預期。透過建立測試集和評估函式,我們實現了批次驗證,確保所有測試項目的有效性。
Thumbnail
2023/07/28
此文針對對話系統的持續開發和改進過程進行詳細解說,尤其在提示訊息的設計與驗證方面。以大賣場的銷售助理為例,我們設計了提示訊息,進行多次測試與調整,確保回應結果符合預期。透過建立測試集和評估函式,我們實現了批次驗證,確保所有測試項目的有效性。
Thumbnail
2023/07/21
本篇文章探討如何整合大型語言模型與外部程式與資源來生成回應訊息。我們使用OpenAI的Moderation API來確認內容的合適性,並使用新的提示來評估是否真正解答了使用者的疑問。整體流程的匯整讓我們一覽全貌。我們將在下一篇文章中分享更多有關回應訊息評估的細節。
Thumbnail
2023/07/21
本篇文章探討如何整合大型語言模型與外部程式與資源來生成回應訊息。我們使用OpenAI的Moderation API來確認內容的合適性,並使用新的提示來評估是否真正解答了使用者的疑問。整體流程的匯整讓我們一覽全貌。我們將在下一篇文章中分享更多有關回應訊息評估的細節。
Thumbnail
看更多