大模型预训练的降本增效之路——从信息密度出发

导语

近年来,大语言模型(Large Language Models,LLMs)以其卓越的语言理解和生成能力引领着人工智能技术的前沿。这些模型之所以能够实现如此令人瞩目的性能,很大程度上归功于它们庞大的模型参数量和对应的训练数据规模。然而,随之而来的是模型训练成本的急剧上升。据报道,OpenAI今年的模型训练开支预计将高达30亿美元。Anthropic的首席执行官更是预测,在未来三年内,大模型的训练成本将上升到100亿美元至1000亿美元之间。这一趋势清晰地表明,在下一代大模型的研发中,其高昂的训练成本将成为亟待解决的主要瓶颈。

具体而言,训练大模型所需的计算量(FLOPs)与模型参数量N以及训练数据中的文本单元(即token)数量D近似成正比,可由下式表示:

因此,训练成本的优化可以从减小模型参数量N和文本单元数D两方面入手。模型成长法(Model Growth)便是一类从参数量着手的方法,这类方法不是在一开始就为模型配置全部参数,而是通过在训练过程中逐步扩大模型的参数规模来减少整体训练成本。然而,从根本上说,模型的性能依赖于充足的参数量来存储丰富的知识和提升复杂推理的能力。当参数量不足时,模型所能习得的知识与能力也是有限的,因此很难达到与全参数训练相似的效果。

那么,对于训练数据中包含的文本单元数量,我们是否有优化的空间呢?在传统的训练框架下,模型通过预测每个token并更新对应的参数来从训练数据中学习。这种方法虽然简单直观,但对于参数量庞大的LLMs而言,其效率却不尽人意。训练数据蕴含的所有知识稀疏地分布在数以万亿计的token中,而每个token所能关联到的相关参数仅占模型总参数的一小部分。这种稀疏性意味着,尽管模型在每次学习过程中投入了大量的计算资源,但实际上只有一小部分参数得到了有效更新,从而导致了训练效率的低下。

这一问题的核心在于,现有的训练方法是基于token单元的,每个token的处理都需要模型的完整参与。因此,信息在token上的稀疏分布严重影响了训练的效率。如果能够找到一种方式,增大模型在每次学习过程中接触和处理的信息量,即增大每个文本单元的信息密度,那么就有可能在不牺牲模型性能的前提下,显著提高训练的效率。这也正是本文将要介绍的方法:将多个token聚合成一个更高信息密度的单元------我们称之为"patch",并以此作为训练语言模型的基本单元,最后使用少量训练数据将模型调整回token级别。如下图所示,这一方法的损失函数为橙色曲线,其训练成本仅为传统方法的一半,同时还能达到无损甚至更高的性能水平。

方法介绍

我们将多个token聚合成为一个更高信息密度的单元------我们称之为"patch"------来作为训练语言模型的基本单元,训练流程如下图所示。取patch大小为固定值K,我们将连续的K个token聚合为一个patch,patch embedding直接取为这些token embedding的均值。模型的训练目标是预测下一个patch,即后续的K个token,因此模型的输出需要同时与这K个token都计算交叉熵损失。

上述流程没有引入任何额外的模型参数,与token级别的训练流程在本质上保持一致,区别仅在于文本的基本单元从token变为了patch,这种设计旨在减小模型过渡到token级别时受到的阻力。我们在比例为λ的训练数据上进行patch级别的训练,随后在余下1-λ比例的数据上将模型调整回token级别,整体的训练成本为传统训练方式的λ/K+1-λ倍。在实践中,我们通常设置K=4、λ=2/3,此时训练成本将相比传统的token级别训练方法降低一半。

上述方法的具体实现可以参考https://github.com/shaochenze/PatchTrain,核心代码仅如下10行,易于在各种主流训练框架中实现与应用。

实验效果

我们选定训练数据为包含360B tokens的pile数据集,训练4种不同参数规模的Transformer模型,在下表中对比了两种训练方式的表现。结果显示,patch级别训练带来的效率提升几乎是无损的,在将训练成本减半的同时,模型在困惑度上与传统训练方法持平,在准确率上甚至实现了稳定的性能提升。我们认为,这种性能提升可能源自两个方面:首先,patch级别的训练引入了一定程度的正则化效果;其次,通过压缩序列长度,模型可能更加擅长捕捉长距离的依赖关系。

相比我们的实验设置,业界主流的大模型在模型和训练数据的规模上都远远更大。因此,我们进一步对所提方法在在不同训练规模下的性能变化趋势进行观察,以评估其在更大训练规模下的可扩展性。下面两表分别展现了当模型和数据规模扩大时,两种训练方法的性能变化对比。结果显示,与传统训练方法相比,patch级训练的性能随模型参数量的增长略慢,但随训练数据量的增长却显著更快。这可以从知识迁移的角度解释:模型参数量越大,则模型从patch级迁移到token级的过程越为复杂;而当训练数据量增加时,可以利用更多数据来完成模型的调整,从而降低了迁移难度。

最后,我们重新审视最初提出的问题 ------ 将K个token聚合成一个更高信息密度的patch单元,能否克服信息稀疏性,让更多的模型参数得到有效更新?下图展示了在训练过程中,模型各层神经元的激活比例受patch大小K的影响。如图所示,神经元的激活数确实随K值增大而显著增加,在模型的浅层部分尤为突出,这是模型在patch级别训练效率更高的一个有力佐证。

结语

训练数据蕴含的知识稀疏地分布在数以万亿计的token中,而训练的目标便是将这些知识嵌入到模型参数中。现行的训练机制需要逐个处理所有token,在整个模型中寻找与之相关的部分进行参数更新,这一过程因token中信息的稀疏性而显得相对低效。本文提出将多个token聚合成一个更高信息密度的patch单元来训练语言模型,这种训练方式带来的效率提升几乎是无损的,在将训练成本降低一半的同时,仍能保持与传统训练方法持平甚至更优的性能表现。从理想角度看,将数据中的知识搬运到模型中应是一个近乎线性复杂度的过程,我们相信这其中仍存在可观的优化空间。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 "AI会取代那些行业?""谁的饭碗又将不保了?"等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码 领取🆓**↓↓↓**

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

相关推荐
张人玉7 分钟前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃11 分钟前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼15 分钟前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界37 分钟前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区40 分钟前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源1 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
artificiali4 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
酱香编程,风雨兼程4 小时前
深度学习——基础知识
人工智能·深度学习
Lossya5 小时前
【机器学习】参数学习的基本概念以及贝叶斯网络的参数学习和马尔可夫随机场的参数学习
人工智能·学习·机器学习·贝叶斯网络·马尔科夫随机场·参数学习
Trouvaille ~5 小时前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算