llm - cccbook/py2gpt GitHub Wiki
大語言模型
從 ChatGPT 出現之後,開始有了『大語言模型』(Large Language Model, LLM) 這個詞彙, 也讓『生成式 AI』成為了繼『深度學習』之後的重點技術。
ChatGPT 是怎麼訓練出來的呢?
其實本質上還是像 RNN/LSTM/Attention 這類的技術,但是和 Transformer 不同的是,GPT 只取了 Transformer 的 decoder (沒有 encoder)。
GPT 其實只專注訓練一件事,就是預測下一個 token (token 可以視為詞彙,但在英文中通常是 sub-word, 在中文上可以使用字為單元)。
但是 ChatGPT 和原本的 GPT 不同,回答不僅僅是接龍,而是有『問答QA』的成分在裡面。
自從 ChatGPT 立下了典範之後,後續的大語言模型 LLM 也都採用類似的手法,分為以下四個訓練步驟。
參考 -- https://chatgpt.com/share/67281bb5-ad94-8012-ae3b-773383593fa9
- Pre-train: 訓練接龍:預測下一個 token
- 這是用大量的語料去進行訓練,例如 100TB 的文字檔作為訓練語料。
- 目的就只是訓練語言模型接龍,盡量讓下一個 token 預測的正確率愈高愈好。
- 多任務微調:有標記的微調
- 文本分類、情感分析和問答等任務的數據上進行微調
- Instruction Fine-Tuning : 用 QA 資料庫去訓練問答 (仍然使用預測下一個 token 算法學習)
- 網路上有些問答語料,像是 stackoverflow.com 上就累積了大量的程式問題之問答
- 搜集很多這樣的問答來訓練 LLM ,讓 LLM 更懂得回答問題。
- RLHF (Reinforcement Learning Human Feedback) : 讓 LLM 產生對問題的 n 個回答,然後由人進行排序,再給 LLM 去訓練。
- 只要 LLM 的溫度 temperature > 0,預測下一個 token 的時候就不會永遠選機率最大的那個,於是產生的回答就會不一樣
- 因此我們可以設定溫度 temperature = 0.5 (或更高),讓 LLM 產生 n 次不同的回答,在用人工對這些回答標注好壞
- 接著用這些好壞排序去訓練 LLM,讓 LLM 可以學習人類想要的回答 (避免產生人類不想要的回答)。
- 參考: 李宏毅_生成式導論 2024_第8講:大型語言模型修練史 — 第三階段: 參與實戰,打磨技巧 (Reinforcement Learning from Human Feedback, RLHF)
- 參考: 【强化学习】PPO(Proximal Policy Optimization)近端策略优化算法
- 动手学强化学习
- ChatGPT 對話 Shared
注意:第三階段 RLHF 的目標並不是預測下一個詞,而是如下圖所示的
