## 介紹 ChatGPT ChatGPT 是由 OpenAI 開發的生成式人工智慧語言模型,採用了 Transformer 架構,這是一種基於注意力機制的神經網路模型,能夠有效地處理序列數據,並在自然語言處理任務中取得了顯著的成果,其自注意力機制允許模型在生成每個詞彙時,考慮輸入序列中所有其他詞彙的影響,從而捕捉長距離的語義關聯。 ## ChatGPT 學習三階段,分別為預訓練、微調、強化學習 1. 預訓練(Pre-training):ChatGPT 從海量網路文本中學習語言規則和知識,並完成「文字接龍」的任務,使其能夠理解語法、語意及詞之間的關聯;而 BERT 在預訓練階段完成「文字填空」的任務。 2. 微調(Fine-tuning):透過有標籤的資料進行進一步訓練,讓模型能更好地應用於特定任務上。 3. 強化學習(Reinforcement Learning):模型根據人類回饋(例如評分好壞)調整參數,以提升未來回應的質量與符合人類偏好的能力。。 ### 預訓練 (Pre-training) 在預訓練階段,ChatGPT 會從海量網路文本中學習語言規則、語法和邏輯結構,無需昂貴且耗時的人類標註工作,這個過程稱為自督導式學習(Self-supervised Learning)。 以下三項因素密切影響預訓練效果  模型的核心任務是進行文字接龍(Next-token Prediction),即根據輸入文本預測下一個最可能出現的詞,舉例來說,當輸入「台灣的最高山是?」時,模型可能先輸出「玉」,再將「台灣的最高山是?玉」作為輸入,最後輸出「山」。  :::info 研究者觀察到,在預訓練的資料集中,將部分資料進行多種改寫,對比完全沒有做任何改寫,模型在測試時的正確率會有顯著的提升。 * 模型 從預訓練階段就已經內化了某些知識。 * 多樣改寫的語料(如千早愛音)對模型理解有強化效果。  ::: ### 微調 (Fine-tuning) 在預訓練階段,語言模型已學會基本的語法和語意,但這並不足以讓模型在真實世界中提供準確、實用的回應,因此,ChatGPT 進一步進行微調(Fine-tuning),模型會在更聚焦的數據集上進行訓練,這些數據集通常包含人類對話的範例,旨在讓模型生成更符合人類習慣的回應。  這一過程中,開發者會使用有標籤的資料集來指導模型,讓它學會針對特定問題提供符合期望的答案,例如給模型「世界第一高峰是什麼山?」的問題及「喜馬拉雅山」作為答案,而避免學習網路上一些不可靠或無益的資訊,這種方式不僅提升了模型的實用性,也能降低偏差和錯誤資訊的風險。 ### 強化學習 (Reinforcement learning) 在強化學習中,模型不依賴固定的答案資料集,而是透過人類的回饋來調整自身的行為,這個過程稱為人類回饋強化學習(Reinforcement Learning with Human Feedback, RLHF)。  步驟 1:生成多個回應 * ChatGPT 針對同一問題產生多個不同版本的回答。 步驟 2:人類標註者評分 * 人類訓練師會根據回答的準確性、相關性和流暢度進行排序,例如: 最佳回應 > 次佳回應 > 不太適合 > 完全錯誤 步驟 3:建立獎勵模型 * 根據人類的評分結果,建立一個獎勵模型(Reward Model),讓 ChatGPT 學習什麼樣的回應更符合人類偏好。 步驟 4:策略優化(Policy Optimization) * 使用近端策略優化(Proximal Policy Optimization, PPO) 來調整模型,使其未來的回應更符合人類期待。 :::info 這種方法的優點在於,它不需要人類逐一提供所有可能問題的正確答案,而是透過評分機制動態優化模型。 ::: ## 補充一:Alignment (微調、強化學習)前後模型實際行為差異不大 圖中的範例使用句子 “How are you? I am ...” 作為提示,觀察模型回應「fine」的機率分布是否在 Alignment 前後出現明顯差異。 分為三種可能情形: * Unshift(未偏移):模型在 Alignment 前後的行為完全一致,機率分布沒有變化,這說明模型本來就能自然生成正確回答,對齊對這些輸出沒有實質影響。 * Marginal(輕微偏移):輸出還是相同(例如仍然回答 "fine"),但背後的機率分布略有調整,表示對齊後模型傾向於選擇「fine」的信心稍微受到影響。 * Shifted(偏移):對齊後模型產生不同的輸出,這才是對齊造成實質內容變化的情形,但這種情況反而是最少見的。  大多數輸出並未因 Alignment 而「改變答案」,而只是微調了傾向性或語氣風格。 ## 補充二:Alignment 常見的四種做法  ### Instruction Tuning 這種方法是最普遍使用的對齊方式,它將訓練目標設定為:給定一段指令 (instruction),模型要輸出對應的回應(response),訓練過程中會大量使用人類撰寫的指令資料對(如 FLAN、OpenAI 的 InstructGPT 資料),強化模型對語言指令的理解與回應能力,進而提升與人類互動的品質。 ### Response Tuning 這種方法甚至不需要明確標示指令(instruction)內容,只需直接餵模型對應的回答(response)作為訓練目標,令人驚訝的是,這種方式也能訓練出一個「可遵循指令」的模型,因為許多回答本身隱含著任務目標與語用意圖。 ### Single-Task Tuning 儘管它只被訓練在一種固定格式的輸入輸出上,但結果卻顯示模型仍能泛化學會其他任務的指令結構。 ### Rule-Based Adapter 在基礎語言模型(Base LM)上,當模型生成的第一個 token 為 <|user|> 就使用某個策略,否則使用另一種策略,這類邏輯可以直接調整模型的概率分布,讓模型看起來像是「懂得回應指令」。 --- :::info 以上就是這篇文章「ChatGPT 的原理與學習過程」的所有內容,第一次看的人會花比較多時間消化吸收,這是很正常的事情,若有任何問題,歡迎在下方與我聯繫、討論,接下來也會繼續分享相關文章,敬請期待。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up