ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
英伟达nGPT重塑Transformer,AI训练速度暴增20倍!文本越长,加速越快
3224点击    2024-10-20 17:11

AI的未来,或许就此改写......


最近,英伟达团队抛出的一枚重磅炸弹,提出了全新神经网络架构——归一化Transformer(nGPT),基于超球面(hypersphere)进行表示学习。


相较于Transformer架构本身,nGPT直接将LLM训练速度提升至高20倍,而且还保持了原有精度。



也就意味着,原本需要一个月完成的训练,在未来可能只需1-2天的时间就能搞定。


无疑为通向AGI终极目标,注入了一针强心剂!


论文地址:https://arxiv.org/pdf/2410.01131


在nGPT中,所有的向量(嵌入、MLP、注意力矩阵、隐藏状态),都被归一化为单位范数(unit norm)。


输入后的token在超球面表面上移动,每一层都通过「位移」来贡献最终的输出预测,其中位移量是由MLP和注意力模块进行定义的,其向量组件都位于同一个超球面上。


实验表明,nGPT达到相同精度所需的训练步骤减少了4-20倍,具体取决于序列长度:


- 1k上下文,训练速度提高4倍

- 4k上下文,训练速度提高10倍

- 8k上下文,训练速度提高20倍



可以看出,上下文越长,训练越快。


Reddit网友表示,「我很好奇它还能扩展到多大程度。如果它能在更长的上下文中大幅扩展,这意味着像o1这样的模型将会获得显著的训练速度优势」。



还有人表示,「下一代模型将会更高效、更智能」。



nGPT全新架构,超球面上归一化


毋庸置疑,Transformer架构是现代大模型的基础。


不过,当前基于Transformer搭建的大模型都是计算密集型的,需要耗费大量的资源和时间。


为了改进其训练稳定性、推理成本、上下文长度、鲁棒性等方面,AI科学家已进行了大量的修改尝试。



其中,最突出的发现是,归一化技术对于Transformer性能改善起着重要作用,比如LayerNorm和RMSNorm。


另一种模型归一化方法是,通过权重衰减(weight decay)控制权重范数。


不过,最新研究又对权重衰减的作用进行评估,并且转向更多地关注旋转,而非仅仅关注向量范数。


越来越多的证据表明,在超球面上进行表示学习与更稳定的训练、更大的嵌入空间可分离性以及在下游任务上的更好性能相关。


而且,还有新研究表明,Transformer隐式地执行梯度下降作为元优化器。


由此,英伟达团队提出了,在归一化Transformer新视角下,统一该领域的各种发现和观察。


这项研究的主要贡献在于:


- 在超球面上优化网络参数


建议将形成网络矩阵嵌入维度的所有向量归一化,使其位于单位范数超球面上。这种方法将矩阵-向量乘法转化为余弦相似度的计算,其范围限定在 [-1,1] 之间。而且归一化消除了对权重衰减的需求。


- 归一化Transformer作为超球面上的可变度量优化器


归一化Transformer本身在超球面上执行多步优化(每层两步),其中注意力和MLP更新的每一步,都由特征学习率控制——这些是可学习的可变度量矩阵的对角线元素。


对于输入序列中的每个token ,归一化Transformer的优化路径从超球面上对应于其输入嵌入向量的点开始,移动到超球面上最能预测下一个的嵌入向量的点。


- 更快的收敛


研究证明,归一化Transformer将达到相同精度所需的训练步骤减少了4-20倍。


Transformer演变:从GPT到nGPT


嵌入层归一化


标准的decoder-only Transformer的训练目标是根据输入序列的前序tokens来预测后面的token,在token预测时,模型会引入两个可学习的嵌入矩阵Einput和Eoutput,分别用来从输入词转为词嵌入,以及从词嵌入转为预测输出。


在模型训练期间,通常使用对应嵌入向量的点积来计算token相似度,但嵌入向量的范数(norms)不受限制的,可能会导致相似性计算存在偏差。


为了提高相似性估计的准确性,研究人员在新架构中提出,在训练算法的每一步之后,对Einput和Eoutput中的嵌入向量进行归一化。


智能体在预测文本中的下一个词时,会使用因果掩码(casual masking)来确保模型在预测token时不会「偷看」到之后的词,造成信息泄露,从而让模型能够同时预测多个词并计算预测误差,提高训练效率,同时保持了按顺序预测词的能力。



在输入词序列后,模型会在预测序列中的每个位置都生成一个输出向量,然后计算出一个logits向量zi来表示词汇表中每个词出现的可能性,可以辅助模型理解不同词在当前上下文中的重要性:


之后用softmax函数把zi转为概率值,并选取概率最高的词作为下一个词的预测。



由于nGPT的嵌入矩阵已经归一化了,所以zi的值范围为[−1,1],也会限制softmax后得到的概率分布的置信度,也可以叫做温度。


为了在训练过程中调整置信度,nGPT又引入了一个可学习的缩放参数sz,通过逐元素地缩放logits,模型可以更灵活地预测的置信度,更好地学习到在不同情况下如何做出更准确的预测:



层/块归一


标准Transformer架构需要对隐藏层状态h进行L层变换,包括一个自注意力(ATTN)和多层感知机(MLP)。



其中RMSNorm也可以替换成其他归一化(normalization)函数。


隐藏层的参数更新,其实就是在一个超平面上(维度为隐藏层的向量长度)寻找两个点(原参数和新参数)的最短距离。


1985年,Shoemake提出了球面线性插值(SLERP,Spherical Linear Interpolation),可以沿着球面上两点之间的最短路径找到中间点,研究人员发现该方法还可以通过更简单的线性插值(LERP,linear interpolation)来得到近似解,从而降低计算量:




按最短路径寻找来说,参数更新过程可以描述为:



其中a和b是球面上的两个点,对应到nGPT上,a也就是隐藏层状态,b是经过注意力机制或MLP块后的状态,梯度就是g=a-b,B为可变矩阵。


在拟牛顿方法中,B可以近似于逆黑塞矩阵,当 B是一个对角线元素非负的对角矩阵时,αB就变成了一个向量,其元素对应于B的对角线元素乘以学习率α,也可以称之为特征学习率(eigen learning rates)。


eigen源自德语词,意为「自己的」(own),可以指代Transformer 的内部结构。


所以nGPT中的参数更新方程可以写为:





其中αA 和 αM是可学习的参数,分别用于注意力和多层感知机(MLP)模块的归一化输出 hA和 hM


与基础 Transformer 相比,在nGPT的最终层之后不需要再进行额外的归一化了。


自注意力块


注意力机制可以说是Transformer中最重要的模块,序列中的每个token都能够关注到其他所有token,从而让模型具有捕捉长距离依赖关系的能力。


模型会把处理后的信息分解成三个部分:查询(q,query)、键(k,key)和值(v,value),可以辅助确定哪些信息是重要的,以及信息之间是如何相互关联的。



为了确保模型能够理解每个词在序列中的位置,模型中通常还会在query和key向量之间加入旋转位置嵌入(Rotary Position Embeddings,RoPE)。


然后通过计算query向量和key向量的点积、缩放、应用softmax得到注意力权重,对value向量进行加权求和,得到注意力得分。



在实践中,Transformer一般都会用到多个注意力头,其中每个头的注意力机制都是独立计算,最后再通过一个可学习的投影矩阵Wo合并所有头输出。



在计算注意力得分的过程中,权重矩阵没有受到太多限制,可能会导致最终得分过大或过小。


在nGPT中,研究人员对q向量和k向量进行归一化,还引入了一些可调整的参数(sqk),以确保权重矩阵在处理位置信息时不会失真,更准确地捕捉到句子中词与词之间的关系,从而做出更好的预测和决策。



MLP块


在标准Transformer中,隐藏层收入通过RMSNorm进行归一化,然后经过两个线性投影生成中间向量(暂不考虑偏置项):



然后使用SwiGLU 门控激活函数,以及一个线性变换得到最终门控激活。




在nGPT中,研究人员提出对线性投影的权重矩阵进行归一化,并引入可学习的缩放因子,能够更充分地利用处理信息时的非线性特性,在处理复杂信息时更加灵活。



多层感知机模块的输出不会因为缩放调整而发生变化。


Adam高效学习率


Adam优化算法通过动量和梯度幅度的估计来调整每次的学习步长,同时考虑了当前及过去的梯度信息。



在nGPT中,研究人员同样引入了一个可训练的缩放参数向量,对特定的参数进行更精细的控制,确保每个参数都能以最适合自己的速度进行学习,从而进一步提高学习效率。


在不影响全局学习率的情况下,对特定的参数进行调整,提供了更大的灵活性和控制力。


变化总结



和基础Transformer相比,nGPT主要做了七个改变:


1、移除所有归一化层,比如RMSNorm或LayerNorm;


2、在每个训练步骤之后,沿着嵌入维度对所有矩阵,包括输入输出嵌入矩阵,以及各种权重矩阵进行归一化处理;


3、修改了隐藏层参数更新方程;


4、调整注意力机制中的softmax缩放因子,对q和k进行重新缩放和归一化;


5、对MLP块的中间状态进行重新缩放;


6、对logits进行重新缩放;


7、移除权重衰减和学习率预热步骤。


上下文越长,训练速度越快


接下来,研究人员在OpenWebText数据集上训练了基础基础Transformer(GPT)和归一化Transformer(nGPT),并在一系列标准下游任务上对其进行评估。


实验中,使用了0.5B和1B(包括嵌入)两种参数规模的模型。两种参数规模的模型0.5B和1B(包含嵌入)。



训练加速


图1显示了,在训练过程中,10亿参数且样本长度为4k token的GPT和nGPT模型的验证损失。


经过2万次迭代后,nGPT达到了与GPT在20万次迭代(约4000亿个token)后,才能达到的相同验证损失。


这表明,在迭代次数和使用token数量方面,nGPT实现了10倍的加速。



再来看图2,展示了nGPT和GPT在三个方面的性能差距是如何变化的:总token数量、上下文长度、参数规模。


在1k、4k和8k token上下文中,训练0.5B和1B的nGPT模型分别约快4倍、10倍和20倍。



图3在下游任务中显示了类似的性能,证实加速不仅反映在困惑度上,也反映在任务表现上。


研究人员观察到,对于较长的训练运行,nGPT显示出一些饱和现象,这暗示在当前可训练参数数量下,模型容量可能已接近极限。



神经网络参数检查


图4显示,虽然nGPT保持固定的嵌入范数(这是设计使然),但GPT表现出明显的变化。


从嵌入的协方差矩阵计算得出的特征值分布(已经由其中位数归一化)显示,GPT的输入嵌入具有更高的条件数,尤其是在1B模型中。


嵌入之间的成对点积分布表明,即使在nGPT中,嵌入也并非均匀分布在超球面上(在那里点积会接近0),而是形成簇——这可能反映了语言数据中的自然模式。


由于GPT的嵌入形成了一个超椭球体(hyper-ellipsoid),如向量范数的分布所示,其点积往往具有更高的值。


GPT输入嵌入的病态性质(ill-conditioned nature)可能导致涉及这些嵌入的计算问题。



下图5展示了,注意力和MLP矩阵在不同层深度上的中位数条件数(跨多个头)——0.5B模型有24层,1B模型有36层。


与nGPT相比,GPT模型的注意力矩阵呈现显著更高的条件数。


对这些矩阵的进一步检查,GPT的注意力矩阵表现出退化为低秩矩阵的趋势,可能减少了这些块的学习容量。



下图6展示了,(左图)注意力模块和MLP模块的特征学习率,(中图)应用于MLP中间状态的缩放因子,(右图)应用于QK点积之前的缩放因子。



参考资料:


https://x.com/Marktechpost/status/1847768544777581022


https://arxiv.org/abs/2410.01131


文章来自于微信公众号“新智元”


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI