XYZNOT

論文 · arXiv 2302.13971

LLaMA:開放且高效的基礎語言模型

LLaMA: Open and Efficient Foundation Language Models

發表於 cs.CL arXivPDF

用 XYZNOT 閱讀(全文翻譯與 AI 講解)

三句話總結

  1. 🎯 大多數頂尖 LLM 依賴龐大的參數規模或專有資料集,導致高昂的推論服務成本與研究取得門檻。
  2. 🔧 僅使用開源資料、RMSNorm、SwiGLU 和 RoPE,在 1.0T 至 1.4T token 上訓練輕量級 Transformer 模型(7B 到 65B)。
  3. 📈 LLaMA-13B 在多數基準測試上擊敗 GPT-3 (175B),而 LLaMA-65B 經簡易指令微調後在 MMLU 達到 68.9%。

摘要

我們介紹了 LLaMA,這是一套參數規模從 7B 到 65B 的基礎語言模型。我們在數兆個 token 上訓練模型,並證明完全僅使用公開可取得的資料集,而不依賴專有且未公開的資料集,也能訓練出達到頂尖水準(state-of-the-art)的模型。特別是,LLaMA-13B 在大多數基準測試中的表現均優於 GPT-3 (175B),而 LLaMA-65B 則可與頂尖模型 Chinchilla-70B 和 PaLM-540B 匹敵。我們將所有模型釋出給研究社群使用。

英文原文摘要

We introduce LLaMA, a collection of foundation language models ranging from 7B to 65B parameters. We train our models on trillions of tokens, and show that it is possible to train state-of-the-art models using publicly available datasets exclusively, without resorting to proprietary and inaccessible datasets. In particular, LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B. We release all our models to the research community.

論文解讀

問題與動機

標準的縮放定律(如 Chinchilla)計算的是在固定的訓練運算預算下,參數規模與資料集大小之間的最佳平衡點。然而,這種框架忽略了推論預算(inference budget),而推論往往在語言模型服務生命週期的維運成本中佔據主導地位。為了提升推論服務效率,選擇比「運算最佳化」指引建議之資料量大幅訓練更多的較小模型更具優勢,因為它們在託管與運行的成本上顯著降低。

此外,頂尖的 SOTA 模型(如 GPT-3、Chinchilla 和 PaLM)依賴私有、無法復現的資料集或過於龐大的架構。LLaMA 證明了完全使用公開可得的資料也能訓練出具高度競爭力的基礎模型,並能開放發佈給研究社群。

核心概念

  • 以推論為核心的訓練(Inference-centric training):不同於在運算最佳化資料量即停止訓練(例如 10B 模型訓練約 200B token),LLaMA 在 1.0T token 上訓練 7B 與 13B 模型,並在 1.4T token 上訓練 33B 與 65B 模型。
  • 僅使用公開資料集:所有預訓練資料均來自公開來源:CommonCrawl (67%)、C4 (15%)、GitHub (4.5%)、Wikipedia (4.5%)、Books (4.5%)、ArXiv (2.5%) 與 Stack Exchange (2%)。
  • 現代化 Transformer 架構:採用 RMSNorm 進行前置正規化(pre-normalization)以提升穩定性、SwiGLU 活化函數,以及旋轉位置編碼(RoPE)取代絕對位置編碼。
  • 工程最佳化效率:採用記憶體高效注意力機制(透過 xformers)、客製化活化值檢查點(activation checkpointing)以及序列/模型平行運算。

方法細節

LLaMA 採用自回歸(autoregressive)Transformer 解碼器,並進行以下修改:

  1. 前置正規化(Pre-normalization):在每個子層前使用 RMSNorm 進行輸入正規化:
  2. SwiGLU 活化函數:以 SwiGLU 取代標準的 ReLU/GELU 活化函數,將中間維度設定為 而非 。
  3. 旋轉位置編碼(RoPE):應用於每一層,用以編碼相對位置資訊,無需絕對位置編碼。
  4. 最佳化設定:使用 AdamW,、權重衰減(weight decay)為 、梯度裁剪(gradient clipping)為 、 步預熱(warmup steps),以及衰減至最高學習率 10% 的餘弦學習率排程。所有模型規模的批次大小(batch size)均為 4M tokens。

訓練過程中的能源消耗與碳足跡估算如下:

成果評估

  • 常識推理(Common Sense Reasoning):LLaMA-13B 在多個基準測試中勝過 GPT-3 (175B)(例如 BoolQ 為 78.1% vs 60.5%;WinoGrande 為 73.0% vs 70.2%)。LLaMA-65B 在 PIQA(82.8% vs 82.3%)和 HellaSwag(84.2% vs 83.4%)上達到或超越了 PaLM-540B。
  • 閉卷問答(Closed-book QA):在 TriviaQA(0-shot)上,LLaMA-65B 達到 68.2%,LLaMA-13B 達到 56.6%(超越 GPT-3 的相當表現,且能在單顆 V100 GPU 上運行)。
  • 程式碼生成(Code Generation):在 HumanEval (pass@1) 上,LLaMA-65B 取得 23.7%,優於 PaLM-62B (15.9%) 並追平 PaLM-cont 62B (23.7%)。
  • MMLU 與指令微調:基礎 LLaMA-65B 在 MMLU 5-shot 準確率達到 63.4%(略落後於 PaLM-540B 的 69.3%,可能是由於書籍預訓練語料庫較小)。然而,透過基礎提示進行指令微調(LLaMA-I 65B)可將表現提升至 68.9%。

局限性與待解決問題

  • 幻覺與真實性(Hallucination and Truthfulness):在 TruthfulQA 上的分數仍屬普通(LLaMA-65B 在 Truthful 上得分為 0.57,Truthful*Informative 為 0.53),顯示其仍有產生幻覺的傾向。
  • 毒性縮放(Toxicity scaling):在 RealToxicityPrompts 上,毒性隨模型規模擴大而增加,特別是在禮貌性提示詞下更為明顯(65B 為 0.141,而 7B 為 0.081)。
  • 學術知識差距:在 MMLU 上的表現落後於 Chinchilla-70B 和 PaLM-540B,作者推測這是因為訓練資料僅包含約 177GB 的書籍和學術論文,而專有資料集則包含約 2TB。

關鍵術語

LLaMA
一系列參數規模從 7B 到 65B 的基礎語言模型,僅使用公開資料集在最多 1.4 兆個 token 上訓練而成。
Inference Budget (推論預算)
部署服務已訓練模型時產生的計算成本與延遲;透過在更多 token 上訓練較小模型來優先最佳化此預算。
RMSNorm
均方根層正規化(Root Mean Square Layer Normalization),用於正規化 Transformer 子層的輸入,以維持訓練穩定性。
SwiGLU
一種使用 Swish 活化函數的門控線性單元(GLU)變體,隱藏層維度設定為 2/3 * 4d。
Rotary Positional Embeddings (RoPE) (旋轉位置編碼)
一種透過旋轉 Query 和 Key 的表徵,將相對位置資訊注入 Transformer 注意力層的技術。
xformers
一個開源函式庫,提供高效的因果多頭注意力機制實作,能避免儲存龐大的注意力權重矩陣。
LLaMA-I
LLaMA-65B 的指令微調版本,依循 Flan 協定進行訓練,以提升指令遵循能力與 MMLU 表現。
TruthfulQA
一個用於評估 LLM 在對抗性事實問題中模仿人類錯誤觀點與幻覺傾向的基準測試。

常見問題

預訓練 LLaMA 使用了哪些資料集?

預訓練完全使用公開資料:英文 CommonCrawl (67%)、C4 (15%)、GitHub (4.5%)、涵蓋 20 種語言的 Wikipedia (4.5%)、Gutenberg 和 Books3 (4.5%)、ArXiv (2.5%) 以及 Stack Exchange (2%)。

LLaMA-13B 與 GPT-3 (175B) 相比表現如何?

LLaMA-13B 在包括 BoolQ、PIQA 和 WinoGrande 等多數標準基準測試中均超越 GPT-3,儘管其體積小了 10 倍以上,且可以在單顆消費級或資料中心級 GPU 上運行推論。

訓練 LLaMA-65B 需要花費多少時間?

在 1.4 兆個 token 上訓練 LLaMA-65B 時,使用 2,048 顆 80GB A100 GPU,處理速度約為每顆 GPU 每秒 380 個 token,大約耗時 21 天完成。

LLaMA 相較於原始 Transformer 進行了哪些架構修改?

LLaMA 在子層輸入前套用了 RMSNorm 前置正規化、將 ReLU 替換為 SwiGLU 活化函數(維度為 2/3 * 4d),並以旋轉位置編碼(RoPE)取代了絕對位置編碼。

本頁解讀由 AI 根據論文生成,可能有錯誤;細節請以原文為準。

用 XYZNOT 閱讀(全文翻譯與 AI 講解)