[2408.00118v1] Gemma 2: Improving Open Language Models at a Practical Size
Gemma 2: Improving Open Language Models at a Practical Size介绍了Gemma 2模型,它是Gemma轻量级开源模型家族的新成员,通过多种技术改进和独特训练方法,在不同规模下性能优异,推动了小模型发展,且注重安全责任,为研究和应用提供了新选择。
-
模型改进与训练
- 架构创新:基于解码器-only的Transformer架构,融合局部-全局注意力交替、分组查询注意力(GQA)等机制。如每两层交替使用滑动窗口为4096的局部注意力和跨度8192的全局注意力,GQA设num_groups = 2提升推理速度。还采用logit soft - capping、RMSNorm等稳定训练。
- 训练策略:2B和9B模型用知识蒸馏,以大模型输出概率为目标训练,27B模型从头训练。训练数据达13万亿 tokens(27B模型),含多源数据,用特定分词器和过滤技术,依模型规模选不同TPU配置及优化技术,预训练碳排放1247.61 ,数据中心碳中性。
-
模型评估结果
- 预训练评估:27B模型在HuggingFace评估套件中,性能优于同类Qwen1.5 34B,接近更大的LLaMA - 3 70B;2B和9B蒸馏模型比之前版本在部分基准测试提升达10%。
- 后训练评估:在LMSYS Chatbot Arena,Gemma 2各版本指令调优模型表现出色;人类偏好评估中,比Gemma 1.1更安全、指令遵循更好;多轮评估里,用户满意度和目标达成度更高;在少样本基准测试上,指令微调也提升了性能。
-
模型特性分析
- 记忆与隐私:相比同类模型,Gemma 2记忆率低,对个人数据记忆少,训练和评估方法有效降低了隐私风险。
- 安全与责任:从训练、评估、工具开发等方面保障安全责任。如训练时过滤数据、用SFT和RLHF引导;在公共基准测试评估,在进攻性网络安全、漏洞检测等方面虽有提升但仍有局限,还开发工具包助力开发者保障安全。
Grouped Query Attention
GQA(Grouped Query Attention)是一种在Gemma 2模型中应用的注意力机制,其主要逻辑如下:
- 分组机制:在GQA中,将查询(query)向量进行分组操作。例如,在Gemma 2模型中设置
num_groups = 2
,这意味着把查询向量分为两组。这种分组方式改变了传统多头注意力(Multi - Head Attention,MHA)中每个头独立计算注意力的模式。在传统MHA中,每个头都有自己独立的查询、键(key)和值(value)投影,计算量较大。而GQA通过分组,使得每组内的查询向量共享相同的键和值投影,减少了计算复杂度,在保持一定性能的同时提高了推理速度。 - 注意力计算:对于每一组查询向量,按照标准的注意力机制计算方式与键和值进行交互。具体来说,计算查询向量与键向量的点积并进行缩放(如除以键向量维度的平方根),得到注意力分数。然后通过 softmax 函数对注意力分数进行归一化,使得注意力分数在 0 到 1 之间且总和为 1。最后,将归一化后的注意力分数与值向量进行加权求和,得到最终的输出。例如,对于输入序列中的每个位置,其输出是通过对相应位置的键值对进行注意力加权求和得到的,而这个过程在GQA中是按照分组后的查询向量来进行的,与传统MHA在计算细节上有所不同。
- 性能平衡:通过实验对比(如文中对 9B 模型的研究),发现 GQA 在多个基准测试上与 MHA 相比,整体性能变化不大。这表明 GQA 在减少参数和提高推理速度的同时,能够较好地维持模型在下游任务上的性能。在一些实际应用场景中,如大规模文本处理任务中,GQA 这种在性能和效率之间的平衡使得它成为一种具有优势的注意力机制选择,有助于在资源有限的情况下提高模型的运行效率和可扩展性。