Google Gemma 開放式大型語言模型發布
Google 已發布 Gemma,這是一個基於 Gemini 架構的開放存取大型語言模型(LLM)系列。此發布為社群提供了 2B 與 7B 參數規模的高效能模型,設計可在消費級 GPU、TPU 與 CPU 上高效部署。
模型變體與規格
Gemma 提供四種主要配置,每種皆具備 8K 令牌的上下文長度,且能在消費級硬體上運行,無需強制量化:
- gemma-7b:基礎預訓練的 7B 參數模型。
- gemma-7b-it:7B 模型的指令微調版本。
- gemma-2b:基礎預訓練的 2B 參數模型。
- gemma-2b-it:2B 模型的指令微調版本。
此外,Google 在首次發布一個月後推出了更新的指令模型(gemma-1.1-7b-it 與 gemma-1.1-2b-it)。這些 1.1 版本在事實性、指令遵循、多輪對話品質、程式碼能力方面都有提升,且較少以「Sure,」開頭回應。
效能基準
Gemma 7B 在相較於其他開放模型的表現上相當強勁。根據 LLM Leaderboard,Gemma-7B 獲得 63.75 分,與 Mistral-7B-v0.1(60.97)和 Llama 2 7B(54.32)競爭激烈,僅次於 Llama 2 70B Chat(67.87)。
相較之下,Gemma 2B 得分 46.51,低於某些同等規模的模型,例如 Phi 2(61.33)。
技術實作與提示
提示格式
雖然基礎模型不需要特定的提示格式,但指令微調(Instruct)版本使用一種特定的對話結構,必須精確復現以獲得最佳效能:
<start_of_turn>user
[User Input]<end_of_turn>
<start_of_turn>model
[Model Response]<end_of_turn>
訓練資料與透明度
技術報告指出,基礎模型的訓練資料來自網路文件、程式碼與數學文本。資料經過過濾,以移除個人可識別資訊(PII)、兒童性剝削內容(CSAM),並執行授權檢查。然而,來源材料指出,關於資料集組成、前處理以及指令模型的監督式微調(SFT)與人類回饋強化學習(RLHF)所使用的具體超參數等詳細資訊尚未公開。
生態系統整合與部署
Hugging Face Transformers
與 transformers 函式庫(v4.38+)的整合,使 Gemma 能夠利用 safetensors、透過 bitsandbytes 進行 4 位元量化,以及參數效率微調(PEFT)。這些模型相容於 torch.compile() 與 CUDA 圖形,可在推論時提供最高 4 倍的加速。
硬體需求
- gemma-7b-it:需要約 18 GB 記憶體(相容於 NVIDIA 3090 或 4090 GPU)。
- 4 位元量化:將記憶體需求降低至約 9 GB,使其相容於更廣泛的消費級顯示卡與 Google Colab GPU。
部署選項
- Google Cloud:可透過 Vertex AI 或 Google Kubernetes Engine(GKE)使用 Text Generation Inference(TGI)部署 Gemma。
- Hugging Face Inference Endpoints:支援以 TGI 為後端的生產級部署,提供持續批次處理與令牌串流等功能。
- JAX/Flax:模型權重可於模型倉庫的
flax修訂版中取得,供 JAX/Flax 使用者使用。
微調能力
Gemma 可使用 Hugging Face TRL(Transformer Reinforcement Learning)函式庫,在消費級 GPU 上高效微調。透過 4 位元量化與 QLoRA(Quantized Low-Rank Adaptation)針對所有注意力區塊的線性層進行調整,使用 OpenAssistant 聊天資料集時,7B 模型可在單一 A10G GPU 上約 9 小時完成訓練。