Google Gemma 2 版本說明

Google Gemma 2 版本說明 Google 已發布 Gemma 2,這是一個基於 Google DeepMind Gemini 的新一代開放權重大型語言模型(LLM)家族。此發佈包含四個模型:9 億(9B)與 27 億(27B)參數模型的基礎版與指令微調版,旨在提供在允許商業使用與再分發的寬鬆授權下的最先進效能。

模型規格與訓練

Gemma 2 提供兩種主要規模,具備 8,192 token 的上下文長度,並使用 Rotary Position Embedding(RoPE)。相較於第一代 Gemma,模型的訓練資料量大幅提升:27B 模型使用 13 兆 token,9B 模型使用 8 兆 token 的網路資料、程式碼與數學內容。

  • gemma-2-9b:基礎 9B 模型
  • gemma-2-9b-it:指令微調 9B 模型
  • gemma-2-27b:基礎 27B 模型
  • gemma-2-27b-it:指令微調 27B 模型

技術創新

Gemma 2 引入四項關鍵技術,以提升生成品質與訓練穩定性:

Sliding Window Attention

Gemma 2 採用混合注意力機制。它在每隔一層的全二次全域注意力(覆蓋 8,192 token)之間,交錯使用滑動視窗注意力(覆蓋 4,096 token)。此設計旨在於長上下文情境下維持高品質,同時獲得滑動視窗注意力的效能優勢。

Logit Soft-Capping

為防止 logits 過度增大並穩定訓練,Gemma 2 使用軟上限。Logits 透過公式 logits → soft_cap * tanh(logits/soft_cap) 轉換至固定範圍。

  • Attention layers:上限 50.0
  • Final layer:上限 30.0

需注意,軟上限目前與 Flash Attention/SDPA 在訓練時不相容;因此建議使用 eager 注意力以確保微調穩定。

Knowledge Distillation

9B 模型在預訓練階段使用知識蒸餾,由較大的教師模型提供更豐富的訊號供學生模型學習。於後訓練階段,團隊採用「在策略蒸餾」(on-policy distillation)。此過程中,學生模型根據 SFT 提示產生完成,並最小化教師與學生 logits 之間的 KL 散度,以減少訓練與推論之間的差異。

Model Merging via WARP

Gemma 2 採用稱為 WARP 的合併技術,分三個階段結合模型:

  1. Exponential Moving Average (EMA):於 RL 微調期間套用。
  2. Spherical Linear intERPolation (SLERP):於多策略 RL 微調後套用。
  3. Linear Interpolation Towards Initialization (LITI):於 SLERP 階段之後套用。

效能評估

根據技術報告,Gemma 2 在與其他開放模型的比較中展現出競爭力。

大型模型比較

基準測試 Llama 3 (70B) Qwen 1.5 (32B) Gemma 2 (27B)
MMLU 79.2 74.3 75.2
GSM8K 76.9 61.1 75.1
ARC-c 68.8 63.6 71.4
HellaSwag 88.0 85.0 86.4
Winogrande 85.3 81.5 83.7

小型模型比較

基準測試 Mistral (7B) Llama 3 (8B) Gemma (8B) Gemma 2 (9B)
MMLU 62.5 66.6 64.4 71.3
GSM8K 34.5 45.7 50.9 62.3
ARC-C 60.5 59.2 61.1 68.4
HellaSwag 83.0 82.0 82.3 81.9
Winogrande 78.5 78.5 79.0 80.6

實作與部署

Prompting

指令微調版使用特定的對話結構,必須完全照搬才能發揮效能:

<start_of_turn>user [Prompt]<end_of_turn> <start_of_turn>model [Response]<end_of_turn>

硬體需求與量化

  • Gemma 2 9B:大約需要 18 GB 記憶體。
  • Gemma 2 27B:在 bfloat16 模式下大約需要 56 GB 記憶體。

為降低記憶體占用,模型可載入 4 位元或 8 位元模式。27B 版本在 4 位元下約佔用 18 GB 記憶體。對於 27B 指令微調模型,必須使用 bfloat16,因為 float16 可能產生不穩定的輸出。

微調

微調可使用 Hugging Face 的 TRL 套件搭配 QLoRA。若針對 PEFT 調整線性層,建議聚焦於注意力模組(q_proj, k_proj, v_proj, o_proj),而非 MLP 層,因為 MLP 層較為稀疏且與 PEFT 的相容性較差。

Sources