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

  1. Pre-train: 訓練接龍:預測下一個 token
    • 這是用大量的語料去進行訓練,例如 100TB 的文字檔作為訓練語料。
    • 目的就只是訓練語言模型接龍,盡量讓下一個 token 預測的正確率愈高愈好。
  2. 多任務微調:有標記的微調
    • 文本分類、情感分析和問答等任務的數據上進行微調
  3. Instruction Fine-Tuning : 用 QA 資料庫去訓練問答 (仍然使用預測下一個 token 算法學習)
    • 網路上有些問答語料,像是 stackoverflow.com 上就累積了大量的程式問題之問答
    • 搜集很多這樣的問答來訓練 LLM ,讓 LLM 更懂得回答問題。
  4. RLHF (Reinforcement Learning Human Feedback) : 讓 LLM 產生對問題的 n 個回答,然後由人進行排序,再給 LLM 去訓練。

注意:第三階段 RLHF 的目標並不是預測下一個詞,而是如下圖所示的

參考