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-itgemma-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 RAM(兼容 NVIDIA 3090 或 4090 GPU)。
  • 4-bit Quantization:将内存需求降低至约 9 GB,使其兼容更广泛的消费级显卡和 Google Colab GPU。

部署选项

  • Google Cloud:Gemma 可通过 Vertex AI 或 Google Kubernetes Engine(GKE)使用 Text Generation Inference(TGI)进行部署。
  • 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 小时内完成训练。

Sources