iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
生成式 AI

從上下文工程到 Agent:30 天生成式 AI 與 LLM 學習紀錄系列 第 12

[Day12] 如何訓練一個 LLM?三階段完整流程!

  • 分享至 

  • xImage
  •  

一個 LLM 是怎麼被「養成」的呢?他和 BERT 這類傳統 PLM 的訓練過程又有什麼差異?
LLM 的訓練大致可以分為三個階段:

  1. Pretrain
  2. Supervised Fine-Tuning
  3. RLHF

Pretrain:打好基礎

  LLM 的第一步,就是在海量語料上做 Causal Language Model(CLM),簡單來說,就是「給定前文,來預測下一個 token」。
  這跟 BERT 這類傳統 PLM(主要用 MLM:遮蔽預測)不太一樣,CLM 更貼近生成式任務,讓模型學會自然的接續語句。

  1. 規模差異
      GPT-3 有 1750 億參數,需要超過 3000 億 tokens 的訓練資料,LLaMA 甚至提出「資料量應該是參數量的 20 倍」才更能發揮模型效能。

  2. 算力需求
      10 億級模型會大約需要 256 張 A100 訓練數天,而 1000 億級模型,可能需要上千張的 A100 訓練數週,為了訓練這樣的龐然大物,只能依靠分散式訓練。

分散式訓練的兩大策略:

  • 數據平行(Data Parallelism):同一個模型的副本分散到多張 GPU,不同的 GPU 處理不同的資料批次,之後各 GPU 再計算梯度後同步更新參數。

  • 模型平行(Model Parallelism):模型如果過大無法放入單張 GPU 的時候,將不同層拆分到多張 GPU 運行。

進階並行策略:

  • 張量並行、3D 並行
  • ZeRO(Zero Redundancy Optimizer):透過分片的方式降低顯示卡記憶體占用。
    1. ZeRO-1:分片 Adam 狀態
    2. ZeRO-2:分片梯度 + Adam 狀態
    3. ZeRO-3:分片模型參數 + 梯度 + Adam 狀態
        分片越多,顯示卡記憶體占用就越低,但通訊成本就越大。
  1. 預訓練數據的重要性與挑戰
      LLM 的知識來源是訓練數據,因此數據的品質比量更加重要,典型資料來源包括:CommonCrawl、C4、Wikipedia、Books、Github、ArXiv,例如 LLaMA 的資料配比:67% CommonCrawl、15% C4、4.5% Wikipedia 等。
      而中文 LLM 更困難,因為高品質開源中文語料稀缺,目前只有 SkyPile(150B)、yayi2(100B)等可用。

上一篇
[Day11] 什麼是大型語言模型(LLM)?
系列文
從上下文工程到 Agent:30 天生成式 AI 與 LLM 學習紀錄12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言