功能翻倍的Gemma 2, 让同量级的Llama3怎么玩?
AI赛道上,科技巨头们激烈角逐。前脚有GPT-4o问世,后脚就出现了Claude 3.5 Sonnet。如此激烈的争斗中,google虽然发力较晚,但在短时间内就能有显著的能力跟进,可见其技术发展与创新的潜力。
除了Gemini模型外,Gemma这一系列轻量级的SOTA开放模型似乎与我们距离更近。它鉴于Gemini模型相同的研讨和技术构建,旨在让每个人都拥有构建AI的工具。google持续扩展Gemma家族,包括CodeGemma、RecurrentGemma和PaliGemma——每个模型都为不同的AI任务供给独特的能力,并且可以通过与Hugging Face、NVIDIA和Ollama等合作伙伴轻松访问。
现在,Gemma家族迎来新成员——Gemma 2,延续短小精悍传统。Gemma 2此次供给的90亿(9B)和270亿(27B)参数的两个版本,其推理功能和效率均优于第一代,并具有显著的安全性改进。事实上,270亿参数版本可以与体积超过其两倍的模型举行同等级别的竞争,并且供给了此前只有专有模型才能实现的功能,而这种功能现在可以在单个NVIDIA H100 Tensor Core GPU或TPU主机上实现,从而大大降低了部署成本。
google团队在重新设计的架构上构建了Gemma 2,使得这位Gemma家族的新成员既能供给卓越的功能,又具有高效的推理能力。简要概括一下,功能、成本、推理是它的突出特点:
功能卓越:Gemma 2 27B模型在其同体积类别中供给了最佳功能,甚至可以与体积超过其两倍的模型竞争。9B Gemma 2模型也在其同等体积类别中表现出色,并超越了Llama 3 8B和其他同类开放模型。
高效率、低成本:27B Gemma 2模型设计用于在单个Google Cloud TPU主机、NVIDIA A100 80GB Tensor Core GPU或NVIDIA H100 Tensor Core GPU上以全精度高效运行推理,在保持高功能的同时大幅降低成本。这使得AI部署更加便捷和经济实惠。
超高速推理:Gemma 2经过优化,能够在各种硬件上以惊人的速度运行,无论是强大的游戏笔记本、高端台式机,还是鉴于云的设置。应用者可以在Google AI Studio上尝试全精度运行Gemma 2,也可以在CPU上应用Gemma.cpp的量化版本解锁本地功能,或者通过Hugging Face Transformers在家用电脑上应用NVIDIA RTX或GeForce RTX举行尝试。
以上是 Gemma2 与 Llama3、Grok-1 的得分数据对比。
其实从各项得分数据来看,此次开源的 9B 大模型优势不是特别明显。近1个月前智谱AI 开源的国产大模型 GLM-4-9B 更具有优势。
此外,Gemma 2不仅更强大,还设计得更易于集成到工作流程中。google为开发者供给了更多的可能性,让他们能够更轻松地构建和部署AI解决方案。
开放且易于访问:与原始Gemma模型一样,Gemma 2允许开发者和研讨人员共享和商业化创新成果。
广泛的框架兼容性:Gemma 2兼容主要的AI框架,如Hugging Face Transformers,以及通过Keras 3.0、vLLM、Gemma.cpp、Llama.cpp和Ollama原生支持的JAX、PyTorch和TensorFlow,使其能够轻松与用户偏好的工具和工作流程结合。此外,Gemma已通过NVIDIA TensorRT-LLM优化,可以在NVIDIA加速的基础设施上运行,或作为NVIDIA NIM推理微服务运行,未来还将优化NVIDIA的NeMo,并且可以应用Keras和Hugging Face举行微调。除此之外,google正在积极升级微调能力。
轻松部署:从下个月开始,Google Cloud客户将能够在Vertex AI上轻松部署和管理Gemma 2。
google还供给了由一系列实用示例和指南构成的新Gemma Cookbook,旨在帮助构建应用者自己的应用程序并针对特定任务微调Gemma 2模型。
Gemma Cookbook链接:https://github.com/google-gemini/gemma-cookbook
与此同时,google还向开发者供给了前段时间在I/O大会上官宣的Gemini 1.5 Pro的200万上下文窗口访问权限、Gemini API的代码执行功能,并在Google AI Studio中添加了Gemma 2。
在最新的博客中,google宣布向所有开发者开放了Gemini 1.5 Pro的200万token上下文窗口访问权限。但是,随着上下文窗口的增加,输入成本也可能增加。为了帮助开发者减少应用相同token的多prompt任务成本,google贴心地在Gemini API中为Gemini 1.5 Pro和1.5 Flash推出了上下文缓存功能。
为解决大型语言模型在处理数学或数据推理时需要生成和执行代码来提高准确性,google在Gemini 1.5 Pro和1.5 Flash中启用了代码执行功能。开启后,模型可以动态生成并运行Python代码,并从结果中迭代学习,直到达到所需的最终输出。执行沙盒不连接互联网,并标配一些数值库,开发者只需根据模型的输出token举行计费。这是google在模型功能中首次引入代码执行的步骤,今天即可通过Gemini API和Google AI Studio中的「高级设置」应用。
google希望让所有开发者都能接触到AI,无论是通过API密钥集成Gemini模型,还是应用开放模型Gemma 2。为了帮助开发者动手操作Gemma 2模型,google团队将在Google AI Studio中供给其用于实验。
以下是Gemma2的技术实验报告,我们可以从多个角度深度解析了技术细节。
论文地址:https://storage.googleapis.com/deepmind-media/gemma/gemma-2-report.pdf
博客地址:https://blog.google/technology/developers/google-gemma-2/
技术细节
与之前的 Gemma 模型类似,Gemma 2 模型也是鉴于仅解码器的transformer架构。表 1 总结了模型的主要参数和架构选择。
部分结构要素与第一版 Gemma 模型相似,即上下文长度为 8192 个 token、应用旋转位置嵌入(RoPE)和近似 GeGLU 非线性。Gemma 1 和 Gemma 2 有一些不同之处,包括应用了更深的网络。主要差异总结如下:
局部滑动窗口和全局注意力。研讨团队在每隔一层中交替应用局部滑动窗口注意力和全局注意力。局部注意力层的滑动窗口大小设置为4096个token,而全局注意力层的跨度设置为8192个token。
Logit软封顶。根据Gemini 1.5的方法,研讨团队在每个注意力层和最终层限制logit,使得logit的值保持在−soft_cap和+soft_cap之间。
对于9B和27B模型,研讨团队将注意力对数封顶设置为50.0,最终对数封顶设置为30.0。截至本文发表时,注意力logit软封顶与常见的FlashAttention实现不兼容,因此他们已从应用FlashAttention的库中移除了此功能。研讨团队对模型生成举行了有无注意力logit软封顶的消融实验,发现大多数预训练和后期评价中,生成质量几乎不受影响。本文中的所有评价均应用包含注意力logit软封顶的完整模型架构。然而,某些下游功能可能仍会受到此移除的轻微影响。
应用RMSNorm举行post-norm 和pre-norm。为了稳定训练,研讨团队应用RMSNorm对每个变换子层、注意力层和前馈层的输入和输出举行归一化。
分组查询注意力。27B和9B模型均应用GQA,num_groups = 2,鉴于消融实验表明在保持下游功能的同时提高了推理速度。
google供给了预训练部分不同于Gemma 1的简要概述。
他们在主要为英文数据的13万亿token上对Gemma 2 27B举行了训练,并对9B模型举行了8万亿token的训练,对2.6B模型则举行了2万亿token的训练。这些token来自各种数据源,包括网页文档、代码和科学文章。模型并不是多模态的,也没有专门为最先进的多语言能力举行训练。最终的数据混合通过类似于Gemini 1.0的消融研讨所确定。
研讨团队应用TPUv4、TPUv5e和TPUv5p举行模型训练,细节如下方表3所示。
在后训练中,google将预训练模型微调为指令调整模型。
首先,在混合的纯文本、纯英文合成和人工生成的prompt-响应对上应用监督微调(SFT)。
然后,在这些模型上应用鉴于奖励模型(RLHF)的强化学习,奖励模型训练鉴于token的纯英文偏好数据,策略则与SFT阶段应用相同的prompt。
最后,通过平均每个阶段获得的模型以提高整体功能。最终的数据混合和训练后方法,包括调优的超参数,都是鉴于在提高模型有用性的同时最小化与安全性和幻觉相关的模型危害来选择的。
Gemma 2模型的微调采用了与Gemma 1模型不同的格式模式。google应用了相同的控制token,具体如表4所述,表5中则供给了对话示例。
实验及评价
在表6中可以发现,与从头开始训练相比,从更大的模型中提炼出来的结果提高了功能。需要注意的是,500B个token是2.6B模型最佳计算token数的10倍。研讨团队从7B模型举行蒸馏,以保持与从27B模型蒸馏到9B模型相似的比例。
在表7中,google团队测量了随着模型规模增加举行蒸馏的影响。可以观察到,随着模型规模的扩大,这种增益仍然存在。在此消融实验中,研讨团队保持教师模型的规模为7B,并训练较小的模型以模拟最终教师和学生模型规模之间的差距。
此外,google考虑到prompt/评价格式变化的影响,测量了在MMLU上的功能方差,如表11所示。Gemma 2B模型在格式稳健性方面略逊于较大的模型。值得注意的是,Mistral 7B在稳健性方面显著低于Gemma系列模型。
研讨团队还评价了在13万亿token上训练的27B模型(未经过蒸馏)的功能,并与类似规模的Qwen1.5 34B模型以及规模大2.5倍的LLaMA-3 70B模型在HuggingFace评价套件上的表现举行了比较,在表12中列出了评价结果。模型的选择依据鉴于其在HuggingFace排行榜上的排名。总体来看,Gemma-2 27B模型在其规模类别中表现最佳,甚至可以与训练时间更长的大模型举行同级别竞争。
Gemma-2 27B和9B指令微调模型在Chatbot Arena中举行了盲测评价,由人类评价员与其他SOTA模型举行对比。研讨团队在图1中报告了ELO评分。
除此之外,研讨团队通过让人类评价员与模型举行对话,并遵循指定的场景举行测试,评价了Gemma 1.1 7B、Gemma 2 9B和27B模型的多轮对话能力。
google应用了一个包含 500 个场景的多样化保留集合,每个场景描述了对模型的一系列请求,包括头脑风暴、制定计划或学习新知识。用户平均交互次数为8.4次。最终发现,与Gemma 1.1相比,用户对Gemma 2模型的对话满意度和对话目标实现率的评价显著更高(见表15)。此外,Gemma 2模型在从对话开始到后续轮次中,相比于Gemma 1.1 7B能够更好地保持高质量的回应。
更多细节,请阅读原论文。