推演语言模型的大小与计算开销

5fe989879076e96a9846677f2fb8ae8a.jpeg

2020年,OpenAI提出了在增加模型尺寸与提高模型性能之间的扩展定律,指出人们应该将大部分预算用于扩大模型规模。这篇论文直接推动了增大模型规模的浪潮。然而,在预算和内存有限的情况下,盲目扩大模型规模并不是提升模型性能的最佳选择。
 

2022年,DeepMind团队发表了一篇论文(https://arxiv.org/pdf/2203.15556.pdf),文中对比了模型大小和训练数据,最终结论是:多数语言模型明显训练不足。也就是说,在不增加模型大小的情况下,在更大的数据集上训练模型将受益匪浅。文中,DeepMind团队训练了一个相对较小的LLM,名为Chinchilla,这个模型只有700亿个参数,但却有1.4万亿个训练token。经过训练,Chinchilla模型的性能超越了诸如GPT-3、Gopher、Jurassic-1和MT-NLG等更大的语言模型,这些语言模型的参数都在1750亿-5300亿之间,但训练token却在2700亿-3000亿之间。


更小的模型参数意味着更低的推理成本和更小的内存占用,实际上,对于大部分用例来说,小型语言模型的性价比更高。本文就从数学角度推算了为何在更多token上训练更小的LLM是更优选择。(以下内容在遵循CC BY-NC-SA 4.0协议的基础上由OneFlow编译发布,译文转载请联系OneFlow获得授权。原文:https://www.harmdevries.com/post/model-size-vs-compute-overhead/)

作者|Harm de Vries

OneFlow编译

翻译|杨婷、徐佳渝

当我们使用大型计算集群来训练大型语言模型(LLM),通常需要考虑计算(资源)预算的分配问题。具体来说,就是考虑如何确定模型参数的数量N及训练token数量D。

我们可以利用扩展定律(scaling laws)来获得相关指导,既可以在给定的计算(资源)预算C的条件下,如何把C分配给参数数量ffaa600a761ba9ba6636eab66d2ffe06.png和训练token数量e2faeaeb364a12eb585bbc9cf4c637b6.png从而使模型达到最佳性能;也可以在给定模型性能的条件下,平衡参数数据量N和训练token数量D,从而使得计算预算C最小,我们可以把计算预算C最小的LLM称为计算量最优的LMM。

然而,对大多数用例而言,我们不一定要去训练计算量最优的LLM,而应投入一定的额外计算(资源)来训练一个同等性能但更小的模型。小型模型的推理速度更快同时推理价格也更低,对GPU资源有限的开发人员和研究人员来说运行也更容易。


尽管许多LLM从业者训练模型的token数量比Chinchilla扩展定律(译者注:Hoffmann等人(2022)重新审视了Kaplan等人的扩展定律。表明用较小的模型对更多数据进行训练可能更有效,从而产生了参数效率提高的70B参数模型Chinchilla)建议的token数量多得多,但不是所有人员都清楚扩展定律为何对模型训练有帮助,它能让我们确定可以训练出多小的模型以及需要多少额外的计算(资源)。

本篇博客将概述如何推导模型大小与计算(资源)额外开销之间的权衡(trade-off)关系,同时揭示了有办法在最小化额外开销的条件下可以大大缩减计算量最优模型的大小。然而,如果模型大小的缩减超出一定阈值,即使增加计算资源,也无法维持特定的模型性能,我们可以把这个模型的阈值称之为临界模型大小(critical model size)。

我的分析表明,临界模型大小大约降低到计算量最优模型大小的30%,而只增加了100%的额外计算开销。值得注意的是,近来的模型尚未达到这一点,例如训练了1T个token的LLaMa-7B模型,这表明训练“更小”的LLM仍有充足的空间,但需要延长训练时间。

 1

回顾Chinchilla扩展定律

根据Chinchilla评估扩展定律的第三种方法,作者认为损失可以建模为参数数量和训练所用token数量的函数:

e60df0cbe85c60663d6ee93f6de9d535.png

实验中,作者通过一系列不同的模型大小、训练token拟合了参数,并得出以下参数估值:

 bf325be4971aaefc5554aafc021ead76.png

在计算(资源)预算的限制C=6ND下优化损失函数L,可以证明计算最优参数数量94fd905f9d283cf05398067d2080b9f3.png及计算最优token数量bd01b8071e29a8e59f36b942bef4348a.png的遵循幂律为:

01f837aaab52cfabbfc667d8f1ae01ee.png

2

模型大小与计算(资源)额外开销

假设将最优模型大小缩小一半1b4e02f051b212361cfc4b07c0322f42.png,需要增加多少训练token才能获得相同的性能?如果目标是保持相同的计算(资源)预算,显然必须增加一倍的训练token数量d58e6e84fab948d04bb7c8e9c9bed67d.png才行,不过为了保持相同的模型性能,我们可以预期会增加一定的计算(资源)额外开销,也就是需要延长训练时间。

现在,让我们回到Chinchilla的参数损失函数,再来回答这个问题。我们希望寻求一种方法,将参数按2f660957c5df8d64f646f08c64eceaec.png扩展,训练token按3ddeb17577414e4bf4b73ef34564736c.png扩展,同时使损失达到e4a95b1a357f6c71313e82a4dd9f1c56.png不变。准确来说,我们希望满足以下方程式:

02308a901d97837855b608e84bddb57b.png

通过几个数学步骤,你会发现:

b6b83bb743d29f0d1837ee2c89d71f1c.png

一旦确定了数据扩展因子3876d094e077aeb5bad09d2cee8044d8.png,我们就能确定新的计算(资源)预算 

20c8d41ecbd5ab2984654874249e4e62.png

以及计算(资源)额外开销

d0fb06e2affd570b0a6fdacf87dce549.png

有意思的是,如图所示,数据扩展因子e90ac6799774c9d3d85b7f26de6d6b75.png与计算预算C并无关联。因此,可以得出这一结论:模型大小与计算额外开销之间的权衡规律在所有计算预算下都一样。
 

89362cdbeacb772055d06da1446f9960.png

注意:原始扩展定律论文中的图12与该图表类似。

3

临界模型大小

如图所示,存在相当大的区间,在此范围内可以大大缩小最优模型大小,而几乎不怎么增加额外计算(资源)开销。训练一个相当于最优大小75%的模型,需增加的计算额外开销仅为2.8%,而训练最优模型大小一半大小的模型,额外开销则增加至20%。转向更小的模型,我们观察到这样一种渐近趋势:当931a053720855ccd8dff50dcc1999c7b.png时,额外计算开销会迅速增至188%。

如何确定我们在这条曲线上所处的位置取决于运行推理的频次。若从不运行推理,则应选择Chinchilla扩展规律来决定。若偶尔运行推理,则应选择稍小的模型。极限情况下(运行推理无限次),应选择尽可能最小的模型(即不考虑额外增加的计算开销)。

然而,在实践中,缩小模型的大小存在一个极限,该极限被称为临界模型大小(critical model size)。临界模型大小是指达到一定损失程度(loss level)所需的最小模型容量,几乎不可能在此基础上进一步缩小模型了。

据我分析,临界模型大小约为Chinchilla最优模型大小的30%,但这会增加100%的计算额外开销。请注意,临界模型大小并非一个硬性阈值,而应理解成一个收益递减的区域。如果我们不需要最小模型,就可以保守一点,选择占最优计算模型大小40-60%之间的模型,因为这样只会增加10-42%的计算额外开销。

4

LLaMA-7B和SantaCoder

最近有一些新模型(例如LLaMA-7B和SantaCoder),其训练时间比Chinchilla扩展定律建议的时间更长。那么换取更小模型所使用的计算资源是多少呢?

以LLaMA-7B为例:

  • 该模型具有6.9B个参数和1000B个训练token,总计算资源预算为4.14e22 FLOP。

  • 根据这一计算资源预算,最优计算模型的参数约为12.52B个,并在550B个token上进行训练。

  • 我们可以查看哪个扩展因子3afce73a8c85bfb59238b9502a80b294.png取多大值与LLaMA-7B的参数和训练token数量更为“接近”。我们发现,在01e2e986182fbeec18aa258b9ebd436a.png=0.57的情况下,可以得到一个具有7.13B个参数和1088B个训练token的合理配置。

  • 额外计算资源开销大约为12%。

再看SantaCoder:

  • 该模型具有1.1B个参数和236B个训练token,总计算资源预算为1.56e21 FLOP。

  • 根据计算资源预算,最优模型的参数约为2.79B个,并在93B个token上进行训练。

  • 对于SantaCoder来说,要找到一个好的配置可能比较困难,但如果K=0.46,我们就可以在258B个token上训练参数为1.29B的模型。

  • 额外计算资源开销约为24%。

相比LLaMA-7B,SantaCoder进一步减少了模型大小,根据Chinchilla扩展定律,这些模型可以进一步权衡计算,以获得更小的模型。

 5

不同012c7e00d93a30ec937f3a2b53a49e6c.png的训练token

为了更好地了解哪些模型大小和训练 token 数量处于模型大小与计算权衡的合理范围内,我对Chinchilla论文中的A3表格作了更新,其中预测了b2f35398758a37416b0b9c8a1cde1d91.png=0.5和b3b85f234924f5d4462f1f40ff29af94.png=0.3的情况。我只报告了第三种估计Chinchilla计算最优模型的方法,这种方法可以预测出最小的模型大小和最大的训练token数量。

 ae6d90842a7391564991f637b6489414.png

  • 4a076fa09ce94c96034e6880839c087e.png=0.5 时,建议在1万亿个token上训练参数为5B的模型,在10万亿个token上训练参数为34B的模型。

  • b43f3c2f6ca509db9c3d9afdeeb8cc43.png=0.3 时,建议在2.8万亿个token上训练参数为3B的模型,在28.4万亿个token上训练参数为21B的模型。

  • 作者可能已经将论文中的2ae830525795434b98e0f81c3dfa8c26.png  和 b17c2af245acebe2b6c132a455007e7a.png 参数做了四舍五入。因此,我对这两个参数的值做了少许修改, 让cf5a0b4e73bde75c35d427d5b0b60fae.png=0.036 、 49e164da8dee7a543b8d1ef1e4c43e7d.png=0.283 ,以更好地适应表A3的扩展定律预测。其余参数保持不变A=406.4,B=410.7,E=1.62。

  • 需要注意的是,Chinchilla系数取决于数据集,而我们不知道该数据集是什么。因此,结果可能会因为使用不同的训练数据而有所变化。

 6

不足

1. Chinchilla扩展定律准确吗?它们对参数估计的微小变化(https://twitter.com/suchenzang/status/1616752482226671620)非常敏感,但没有考虑小模型长时间训练的情况。

2. 即使较小的模型达到相同的困惑度(perplexity),也无法确定它们是否具有相同的模型能力(例如Zero-shot prompt性能)。

3. 长时间训练较小的模型可能难以有效利用HPC集群上的有效并行化能力。

7

结论

根据Chinchilla扩展定律,我们还没有达到在更多token上训练更小模型的极限。鉴于开源人工智能社区的惊人创新速度,我预计功能强大的小型语言模型将很快出现!

附录

虽然数据扩展因子 b41751f161a9108836802b77e445e79c.png 以计算最优参数 b73383bf7ad07f31ed69a247e343a00c.png 和训练token 496017d30268b6625cac12649c5f214a.png表示,在本部分,我将展示解决方案,该解决方案对计算预算C来说是固定不变的。首先

 b9b73ec008636f9b3b00613420240405.png

放大取决于计算预算C的部分:

639601d66dfda2164a98348a86edabc3.png

a509080d4cdc0ef2719b9b3afb5bf988.pngc37eccc997a7d78f95981d55a87c370e.png代入公式:

916ad0316bacd01c714225627442c159.png

引入外部指数,可以消掉C

d0144c4ea28f6f46c1d18cb3fe11f82d.png

最终简化为:894531cbdad361862c0a364d261a521e.png
 

致谢

本文是BigCode 训练工作组的讨论分析结果。感谢所有参与人员,特别是:Raymond Li,Joel Lamy Poirier,Denis Kocetkov,Leandro von Werra,Loubna Ben Allal,Evgenii Zheltonozhskii,Niklas Muennighoff,Dzmitry Bahdanau和Thomas Wolf。感谢Leandro对文章标题的建议;感谢Niklas授权我们在推理运行频率方面使用他的解释来描述模型大小与计算额外开销曲线。
 

其他人都在看

  • “ChatGPT们”的淘金时代

  • 狂追ChatGPT:开源社区的“平替”热潮

  • GPT-4创造者:第二次改变AI浪潮的方向

  • 谷歌科学家:ChatGPT秘密武器的演进与局限

  • 比快更快,开源Stable Diffusion刷新作图速度

  • OneEmbedding:单卡训练TB级推荐模型不是梦

  • GLM训练加速:性能最高提升3倍,显存节省1/3

欢迎Star、试用OneFlow: github.com/Oneflow-Inc/oneflow/icon-default.png?t=N3I4http://github.com/Oneflow-Inc/oneflow/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37310.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codesblocks头文件的正确使用

之前对头文件如何引用一直百思不得其解,现在弄懂了,来复盘一下。关键点在于要建立工程文件。 下面以一个长度转换的程序来简单说明。 第一步,建立C语言项目。 在新建项目点击Console applicaton,接着打上名称,默认设置…

jdbc工具类的定义和使用

DBUtils的定义 导入3个jar包 代码实现 public class DBUtils {//1.配置数据库连接信息(MySQL)//数据库驱动private static final String DRIVER "com.mysql.jdbc.Driver";//数据库名private static final String DATABASE "test_db&q…

Servlet的介绍与使用

Servlet简介 servlet是运行在服务器上的应用程序, 它的作用是实现前端与后台的数据交互。 Servlet生命周期 三个方法 init():初始化 service():处理客户端请求 destroy():终止 工作原理 客户端向服务器发送一个http请求服务器…

python破解md5_python怎么使用md5加密解密

python采用hashlib这个标准库实现MD5加密解密。方法是:1、updata传数据;2、利用hexdigest进行16进制转换; update(arg)传入arg对象来更新hash的对象。必须注意的是,该方法只接受byte类型,否则会报错。这就是要在参数前添加b来转换类型的原因。 同时要注意,重复调用update…

分布式任务调度平台XXL-JOB的简单使用

推荐使用xxl2.2.0版本 参考地址: 分布式任务调度平台XXL-JOB xxl-job安装到本地打开项目工程对yml配置文件进行修改 主要修改数据库地址和告警邮件地址 将服务注册到xxl-job -如果在xxl里配置了accessToken 服务里就需要使用同样的Token 注册到xxl-job-admin之后打开xxl可视…

selenium获取页面数据入数据库

Selenium是一个用于Web应用程序测试的工具,但是也可以爬取页面中的数据。 开发环境是内网(局域网),项目工程是web项目,jdk使用的1.8,tomcat使用的 8。 web项目: 启动时使用tomcat,…

ChatGPT 教我用 200 行代码写一个简版 Vue 框架 - OpenTiny

AI 是未来最好的老师 最近,我正在准备一份关于 Vue 基础的学习材料。期间我突发奇想:能否利用现在热门的 ChatGPT 帮我创建学习内容?其实 Vue 本身不难学,特别是基础用法,但是,如果你想深入掌握 Vue&#…

阿里云AliGenie开发天猫语音功能-入门篇

文章目录结构如下 登录应用开发平台 创建语音技能 云开发部署后端技能服务 语音技能测试 下线不必要的应用 一、登录应用开发平台 1.登录云开发平台。打开网址 https://workbench.aliyun.com/,使用阿里云账号登录,按照提示创建团队,点…

ESP8266对接天猫精灵-多路继电器控制

上面是我的微信和QQ群,欢迎新朋友的加入。 资源和烧录我就不管了,和https://blog.csdn.net/Jun626/article/details/109150006一模一样 把那个kaiguan的lua改一下代码 DEVICEID "19539" APIKEY "17aaa8a16" INPUTID "…

php对接AliGenie天猫精灵服务器控制智能硬件esp8266③ 渗入熟悉AliGenie 对接协议,揭开第三方云平台是如何让天猫精灵是发送消息到私有服务器的!

本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。 1、 php对接AliGenie天猫精灵服务器控制智能硬件esp8266① 在阿里云购买搭建私有云服务器&…

智能家居领域小米,涂鸦,天猫精灵的 “中台之战”

深圳是跨境电商之都,仅一个华南城就云集了不少了全球排名前五十的亚马逊大卖家。总部不在深圳的跨境电商通常都会在深圳设立主抓供应链的分部。在今年这样疫情叠加外部环境不确定性的当下,大卖家们的日子按道理说不会好过,然而事实却大大出乎…

ESP8266-天猫精灵(智能家居)

本次更新与2018年10月2日 (弊端:wifi的配置在程序里边,设备更换所连接的wifi,还需要重新烧录初始化程序)——问题已解决,更新于博客最下方。 1:使用器材 天猫精灵、esp8266、LED(继电器) &am…

六级备考23天|CET-6|写作技巧1|开头段模版

目录 1 考前注意事项 2 真题参考 3 六级作文三段式 第一段 第二段 第三段 4 名言解释型作文 5 开头段的模版 why 型 6 选择型开头模版 7 国内学校/出国读书 8 团队精神和交流 9 作业 10 抽象意志品质类开头 ​ 11 信任的重要性​ 1 考前注意事项 定位错误 常识干扰 拼凑…

雅思英语作文计算机和历史,雅思考试|历史真题帮你搞定雅思写作3大高频话题-科技篇...

科技类 题目1 计算机让人们在家工作学习的利弊 Computers enable people to be able to work at home and children to study at home. Some people believe that it is convenient and cost-saving. Do you think the phenomenon positive or negative? 题目解读:…

六级备考21天|CET-6|写作技巧2|13:00~14:40

目录 【一】写作技巧1的作业 [1]Creativity [2]谚语:值得做的就值得做得好 [3]Star chasing 追星​ [4]team spirit&communication 团队精神和交流 [5]谚语:理解​ 【二】谚语重要性开头模版 [1]谚语:Understand 理解 【三】社会…

通过python批量获取阿里云账号余额并发送到钉钉群

脚本执行结果如下图 亲测可用 首先更新安装python版本 默认2.7.5太低无法使用 这里使用3.7.9版本 安装编译插件 yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel…

【python】使用apikey查询OpenAi可用余额

2023.04.02似乎官方禁用了之前的获取方式,通过https://api.openai.com/dashboard/billing/credit_grants将会得到如下回复 Your request to GET /dashboard/billing/credit_grants must be made with a session key (that is, it can only be made from the browse…

ChatGPT 可能会阻碍网络安全行业的发展

自 2022 年 <> 月推出以来&#xff0c;人工智能 &#xff08;AI&#xff09; 聊天机器人 ChatGPT 因其令人惊讶的人性化和准确的响应而引起了不小的轰动。 自动生成系统在推出仅两个月后就达到了创纪录的 100 亿月活跃用户。然而&#xff0c;虽然它的受欢迎程度持续增长…

CAD做图常用的命令

1.熟练掌握一些常用的命令,并理解各参数的用法,也就20-40个命令, 2.掌握常用命令的快捷键,对有些命令可以了解. 3.边做边学,我用cad已经2年了,有些命令也不完全了解,用时再查看资料学习. 4.对照教科书一步一步,反复的做,一定要注意多回头想想 5.熟练掌握图层的用法 6.尽量在学习…

CAD绘图软件_常用指令

CAD软件介绍 CAD首先它是一个可视化的绘图软件&#xff0c;许多命令和操作可以通过菜单选项和工具按钮等多种方式实现。而且具有丰富的绘图和绘图辅助功能&#xff0c;如实体绘制、关键点编辑、对象捕捉、标注、鸟瞰显示控制等&#xff0c;它的工具栏、菜单设计、对话框、图形…