一個 LLM 是怎麼被「養成」的呢?他和 BERT 這類傳統 PLM 的訓練過程又有什麼差異?
LLM 的訓練大致可以分為三個階段:
LLM 的第一步,就是在海量語料上做 Causal Language Model(CLM),簡單來說,就是「給定前文,來預測下一個 token」。
這跟 BERT 這類傳統 PLM(主要用 MLM:遮蔽預測)不太一樣,CLM 更貼近生成式任務,讓模型學會自然的接續語句。
規模差異
GPT-3 有 1750 億參數,需要超過 3000 億 tokens 的訓練資料,LLaMA 甚至提出「資料量應該是參數量的 20 倍」才更能發揮模型效能。
算力需求
10 億級模型會大約需要 256 張 A100 訓練數天,而 1000 億級模型,可能需要上千張的 A100 訓練數週,為了訓練這樣的龐然大物,只能依靠分散式訓練。
分散式訓練的兩大策略:
數據平行(Data Parallelism):同一個模型的副本分散到多張 GPU,不同的 GPU 處理不同的資料批次,之後各 GPU 再計算梯度後同步更新參數。
模型平行(Model Parallelism):模型如果過大無法放入單張 GPU 的時候,將不同層拆分到多張 GPU 運行。
進階並行策略: