Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

知名AI研究者深挖谷歌Gemma:参数不止70亿,设计原则很独特

想要了解谷歌 Gemma 与 Llama 2、Mistral 有哪些异同吗?这篇文章值得一读。


就在几天前,开源大模型领域迎来了重磅新玩家:谷歌推出了全新的开源模型系列「Gemma」。相比 Gemini,Gemma 更加轻量,同时保持免费可用,模型权重也一并开源了,且允许商用。
图片
谷歌发布了包含两种权重规模的模型:Gemma 2B 和 Gemma 7B。尽管体量较小,但 Gemma 已经「在关键基准测试中明显超越了更大的模型」,包括 Llama-2 7B 和 13B,以及风头正劲的 Mistral 7B。与此同时,关于 Gemma 的技术报告也一并放出。
图片
相信大家已经对 Gemma 的相关内容进行了系统研究,本文知名机器学习与 AI 研究者 Sebastian Raschka 向我们介绍了 Gemma 相比于其他 LLM 的一些独特设计原则。

Raschka 首先从模型性能展开,他表示看过技术报告的小伙伴可能都有一个疑问,是什么让 Gemma 表现如此出色?论文中没有明确说明原因,Sebastian Raschka 认为可以从下面两点得出结论:

  • 首先是词汇量大,Gemma 词汇量达到 256000 个单词,相比之下,Llama 的词汇量为 32000 个单词;
  • 其次是训练数据集达 6 万亿 token,作为对比,Llama 仅接受了其中三分之一的训练。

在架构方面,Raschka 列举了 Gemma 与 LLama 2 7B 和 OLMo 7B 的架构概览。
图片
在模型大小上,Raschka 表示 Gemma 2B 有多查询注意力,而 Gemma 7B 没有。另外,与 Llama 2 相比,Gemma 7B 具有相对较大的前馈层,尽管其层数较少(28 VS 32),但 Gemma 中的参数数量却相当大。

Raschka 猜测 Gemma 7B 实际上总共有 93 亿个参数,如果考虑到权重共享(Weight tying)的话,则有 85 亿个参数权重共享意味着模型在输入嵌入和输出投影层中共享相同的权重,类似于 GPT-2 和 OLMo 1B(OLMO 7B 的训练没有权重共享)。

归一化层

另一个引人注目的细节是以下出自 Gemma 论文中的段落。

归一化位置。谷歌对每个 transformer 子层的输入和输出进行归一化,这与单独归一化输入或输出的标准做法不同。谷歌使用 RMSNorm 作为归一化层。

乍一看,看起来像 Gemma 在每个 transformer 块之后都有一个额外的 RMSNorm 层。但是,通过查看「keras-nlp」项目的官方代码实现,原来 Gemma 仅仅使用了 GPT-2、Llama 2 等其他 LLM 使用的常规预归一化方案,具体如下图所示。
图片
                    GPT、Llama 2 和其他 LLM 中典型的层归一化位置,Gemma 中没有什么新东西。来源:https://github.com/rasbt/LLMs-from-scratch

GeGLU 激活

Gemma 与其他架构之间的一大区别是它使用了 GeGLU 激活,而 GeGLU 激活是在 2020 年的谷歌论文《GLU Variants Improve Transformer》中提出的。
图片
论文地址:https://arxiv.org/pdf/2002.05202.pdf

GeLU 全称为高斯误差线性单元(Gaussian Error Linear Unit),它是一个激活函数,越来越多地被作为传统 ReLU 的替代方案。GeLU 的流行得益于它有能力引入非线性特征,并允许为负输入值执行梯度传播,这解决了 ReLU 的一大局限,完全阻断了负值。

现在,作为 GeLU 的门线性单元变体,GeGLU 的激活被分割为两部分,分别是 sigmoid 单元和线性映射单元(它与 sigmoid 单元的输出逐元素相乘),具体如下图所示。
图片
                                     GeLU 与 ReLU 激活函数图示比较,来源:https://github.com/rasbt/LLMs-from-scratch

同时,GeGLU 与 Llama 2、Mistral 等其他 LLM 使用的 SwiGLU 激活类似。唯一的区别是 GeGLU 使用的基础激活是 GeLU 而不是 Swish。
图片
下图展示了 GeLU(GPT-2)、SwiGLU(Llama 2)和 GeGLU(Gemma)的伪代码
图片
需要注意,与使用 GeLU(仅线性)的常规前馈模块相比,使用 SwiGLU 和 GeGLU 的前馈模块各多了一个线性层(分别是 linear_1 和 linear_2)。不过,在 SwiGLU 和 GeGLU 前馈模块中,linear_1 和 linear_2 通常通过将单个线性层分割为两部分而获得,因此不会增加参数规模。

那是否 GeGLU 就比 SwiGLU 强呢?并没有消融实验来证实这一点。Raschka 猜测谷歌选择使用 GeGLU,只是为了让 Gemma 与 Llama 2 略有不同。

举例而言,Gemma 为 RMSNorm 层添加了 + 1 的偏移量,并通过隐藏层维数的开立方根来归一化嵌入。Gemma 论文中没有提及或讨论这些细节,所以它们的重要性也不清楚。

结论

对于开源 LLM 而言,Gemma 做出了非常棒的贡献,展示了 7B 参数规模也能成就强大的模型,并有潜力在真实世界的用例中取代 Llama 2 和 Mistral。

此外,目前 7B 大小规模的开源模型已经有很多了,因此 Gemma 2B 更加有趣,它可以轻松地在单个 GPU 上运行。当然,Gemma 2B 与 2.7B 大小的 phi-2 之间的对比也将会很有趣。

参考链接:https://lightning.ai/lightning-ai/studios/understanding-using-and-finetuning-gemma
产业谷歌Gemma
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

伪代码技术

伪代码,又称为虚拟代码,是高层次描述算法的一种方法。它不是一种现实存在的编程语言;它可能综合使用多种编程语言的语法、保留字,甚至会用到自然语言。 它以编程语言的书写形式指明算法的职能。相比于程序语言它更类似自然语言。它是半形式化、不标准的语言。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

层归一化技术

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

GPT-2技术

GPT-2是OpenAI于2019年2月发布的基于 transformer 的大型语言模型,包含 15 亿参数、在一个 800 万网页数据集上训练而成。据介绍,该模型是对 GPT 模型的直接扩展,在超出 10 倍的数据量上进行训练,参数量也多出了 10 倍。在性能方面,该模型能够生产连贯的文本段落,在许多语言建模基准上取得了 SOTA 表现。而且该模型在没有任务特定训练的情况下,能够做到初步的阅读理解、机器翻译、问答和自动摘要。

推荐文章
暂无评论
暂无评论~