0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Scaling Law大模型设计实操案例

深度学习自然语言处理 来源:NLP工作站 2023-11-22 16:08 次阅读

写在前面

来自:NLP工作站

nice!这是一个快速了解LLM时代下最新研究的学术分享平台

今天给大家带来一篇《解析大模型中的Scaling Law》,来自知乎@nghuyong

在大模型的研发中,通常会有下面一些需求:

计划训练一个10B的模型,想知道至少需要多大的数据?

收集到了1T的数据,想知道能训练一个多大的模型?

老板准备1个月后开发布会,能用的资源是100张A100,那应该用多少数据训一个多大模型最终效果最好?

老板对现在10B的模型不满意,想知道扩大到100B模型的效果能提升到多少?

以上这些问题都可以基于Scaling Law的理论进行回答。本文是阅读了一系列caling Law的文章后的整理和思考,包括Scaling Law的概念和推导以及反Scaling Law的场景,不当之处,欢迎指正。

核心结论

大模型的Scaling Law是OpenAI在2020年提出的概念[1],具体如下:

对于Decoder-only的模型,计算量(Flops), 模型参数量, 数据大小(token数),三者满足: 。(推导见本文最后)

模型的最终性能「主要与」计算量,模型参数量和数据大小三者相关,而与模型的具体结构(层数/深度/宽度)基本无关。

ec247598-8877-11ee-939d-92fbcf53809c.png

固定模型的总参数量,调整层数/深度/宽度,不同模型的性能差距很小,大部分在2%以内

对于计算量,模型参数量和数据大小,当不受其他两个因素制约时,模型性能与每个因素都呈现「幂律关系」

ec517372-8877-11ee-939d-92fbcf53809c.png

basic

为了提升模型性能,模型参数量和数据大小需要同步放大,但模型和数据分别放大的比例还存在争议。

Scaling Law不仅适用于语言模型,还适用于其他模态以及跨模态的任务[4]:

ec7ba9c6-8877-11ee-939d-92fbcf53809c.png

multi_modal

这里横轴单位为PF-days: 如果每秒钟可进行次运算,就是1 peta flops,那么一天的运算就是,这个算力消耗被称为1个petaflop/s-day。

核心公式

ecacd2e4-8877-11ee-939d-92fbcf53809c.png

第一项是指无法通过增加模型规模来减少的损失,可以认为是数据自身的熵(例如数据中的噪音)

第二项是指能通过增加计算量来减少的损失,可以认为是模型拟合的分布与实际分布之间的差。

根据公式,增大(例如计算量),模型整体loss下降,模型性能提升;伴随趋向于无穷大,模型能完美拟合数据的真实分布,让第二项逼近0,整体趋向于

大模型中的Scaling Law

GPT4

下图是GPT4报告[5]中的Scaling Law曲线,计算量和模型性能满足幂律关系

ecbfe708-8877-11ee-939d-92fbcf53809c.png

横轴是归一化之后的计算量,假设GPT4的计算量为1。基于10,000倍小的计算规模,就能预测最终GPT4的性能。

纵轴是"Bits for words", 这也是交叉熵的一个单位。在计算交叉熵时,如果使用以 2 为底的对数,交叉熵的单位就是 "bits per word",与信息论中的比特(bit)概念相符。所以这个值越低,说明模型的性能越好。

Baichuan2

下图是Baichuan2[6]技术报告中的Scaling Law曲线。基于10M到3B的模型在1T数据上训练的性能,可预测出最后7B模型和13B模型在2.6T数据上的性能

ecf32ae6-8877-11ee-939d-92fbcf53809c.png

MindLLM

下图是MindLLM[7]技术报告中的Scaling Law曲线。基于10M到500M的模型在10B数据上训练的性能,预测出最后3B模型在500B数据上的性能。

ed17ba8c-8877-11ee-939d-92fbcf53809c.png

Scaling Law实操: 计算效率最优

根据幂律定律,模型的参数固定,无限堆数据并不能无限提升模型的性能,模型最终性能会慢慢趋向一个固定的值。

ed422768-8877-11ee-939d-92fbcf53809c.png

如图所示,如果模型的参数量为(图中紫色的线),在数量达到,模型基本收敛。所以在数据量达到后,继续增加数据产生的计算量,没有同样计算量下提升模型参数量带来的收益大(「计算效率更优」)。根据,可以进一步转换成模型参数与计算量的关系,即: 模型参数为,在计算量为 Flops,即 PF-days时基本收敛。也就是右图中紫色线的拐点。

按照上面的思路,下面进行Scaling Law的实操

首先准备充足的数据(例如1T),设计不同模型参数量的小模型(例如0.001B - 1B),独立训练每个模型,每个模型都训练到基本收敛(假设数据量充足)。根据训练中不同模型的参数和数据量的组合,收集计算量与模型性能的关系。然后可以进一步获得「计算效率最优」时,即同样计算量下性能最好的模型规模和数据大小的组合,模型大小与计算量的关系,以及数据大小与计算量的关系。

ed64442e-8877-11ee-939d-92fbcf53809c.png

如图所示,根据左图可以看到计算量与模型性能呈现幂律关系(可以认为数据和模型都不受限制),根据中图和右图,可以发现,即计算效率最优时,模型的参数与计算量的幂次成线性关系,数据量的大小也与计算量的幂次成线性关系。

根据,可以推算出,但是分别是多少存在分歧。

OpenAI[1]认为模型规模更重要,即,而DeepMind在Chinchilla工作[2]和Google在PaLM工作[3]中都验证了,即模型和数据同等重要。

所以假定计算量整体放大10倍,OpenAI认为模型参数更重要,模型应放大 (5.32)倍,数据放大 (1.86)倍;后来DeepMind和Google认为模型参数量与数据同等重要,两者都应该分别放大 (3.16)倍。

ed793ef6-8877-11ee-939d-92fbcf53809c.png

例如在PaLM的实验中,计算量从放大10倍到, 模型参数提升了3.2倍,3.35B->10.7B。

具体最好在自己的数据上做实验来获得你场景下的和。

LLaMA: 反Scaling Law的大模型

假设我们遵循「计算效率最优」来研发LLM,那么根据Scaling Law,给定模型大小,可以推算出最优的计算量,进一步根据最优计算量就能推算出需要的token数量,然后训练就行。

但是「计算效率最优」这个观点是针对「训练阶段」而言的,并不是「推理阶段」

Meta在LLaMA[8]的观点是:给定一个模型的目标性能,并不需要用最优的计算效率在「最快」时间训练好模型,而应该在更大规模的数据上,训练一个相对「更小」模型,这样的模型在推理阶段的成本更低,尽管训练阶段的效率不是最优的(同样的算力其实能获得更优的模型,但是模型尺寸也会更大)。所以尽管根据Scaling Law,10B模型只需要200B的数据,但是作者发现7B的模型性能在1T的数据后还能继续提升。

eda49d4e-8877-11ee-939d-92fbcf53809c.png

所以LLaMA工作的重点是训练一系列语言模型,通过使用更多的数据,让模型在「有限推理资源下有最佳的性能」

具体而言,确定模型尺寸后,Scaling Law给到的只是最优的数据供给,或者说是一个「至少」的数据量,实际上观察在各个指标上的性能表现,只要还在继续增长,就可以持续增加训练数据。

edd551d2-8877-11ee-939d-92fbcf53809c.png

计算量、模型和数据大小的关系推导

对于Decoder-only的模型,计算量(Flops), 模型参数量(除去Embedding部分), 数据大小(token数), 三者的关系为:

推导如下,记模型的结构为:

decoder层数:

attention 隐层维度:

attention feedforward层维度: , 一般来说

首先推导模型的参数量(忽略embedding,norm和bias)计算如下:

transformer每层包括: self-attetion 和 MLP 两个部分:

self-attention的参数为,每个矩阵的维度均为,整体参数量:

MLP的层数的参数为,整体参数量:

所以每层的参数量为: ,全部的层的参数量为: ,即

继续推导模型的前向推理的计算量:

计算量的单位是FLOPs,floating point operations, 对于矩阵,相乘的计算量为,一次加法一次乘法。

假设Decoder层的输入, 为batch size,为序列长度, 为模型维度。

self-attention部分的计算:

输入线性层: ,计算量为:

atention计算: ,计算量为:

socre与V的计算: ,计算量为:

输出线性层: ,计算量为:

MLP部分的计算

升维: ,计算量为:

降维: ,计算量为:

所以整个decoder层的计算量为:,全部层为:

反向传播计算量是正向的2倍,所以全部的计算量为:

平均每个token的计算量为()

所以对于全部包含个token的数据集:

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    436

    浏览量

    10059
  • GPT
    GPT
    +关注

    关注

    0

    文章

    302

    浏览量

    14872
  • OpenAI
    +关注

    关注

    8

    文章

    763

    浏览量

    5918
  • 大模型
    +关注

    关注

    2

    文章

    1543

    浏览量

    1139

原文标题:解析大模型中的Scaling Law

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机考题经典动画播放。

    单片机考题经典动画播放,值得收藏!
    发表于 08-22 11:12

    电子系统设计团体赛考试是怎么回事?

    电子系统设计团体赛我们设计的作品--无线充电系统进决赛了,不知道决赛的的三个环节“考试”是怎么回事?有没有前辈站出来解释一下,让我们有所准备,全力以赴,在此谢谢!!
    发表于 11-28 22:32

    【沙龙】基于MDM9206芯片的GoKit4(G)的应用

    `【沙龙】基于MDM9206芯片的gokit4(G)的应用物联网应用开发之道-Qualcomm& 机智云开发者沙龙摘要:北上广深,四场workshop,Qualcomm和机智云
    发表于 08-24 17:55

    2020年电工考试及电工考试视频

    题库来源:安全生产模拟考试一点通公众号小程序2020年电工(初级)考试及电工(初级)考试视频,包含电工(初级)考试答案和解析及电工(初级)考试视频练习。由安全生产模拟考试一点通
    发表于 06-29 09:05

    工业机器人打磨去毛刺工作站介绍

    ZNL-DM06型 工业机器人打磨去毛刺工作站一、概述ZNL-DM06型 工业机器人打磨去毛刺工作站以真实工厂应用要求为基础,优化功能设计,提高系统灵活度,融入
    发表于 07-01 09:12

    一种工业机器人码垛工作站

    ZNL-MD06型 工业机器人码垛工作站一、概述ZNL-MD06型 工业机器人码垛工作站设备主要开展码垛技术的培训,可满足学生动手能力的强化训练,还可作为高级工、技师能力提升的
    发表于 07-01 13:32

    电工操作

    ZN-890Q电工操作柜(单面双组型)一、概述ZN-890Q电工操作柜(单面双组型)由钢板作制作的多功能安装板(网孔板)训台和电源
    发表于 07-02 07:14

    机电技术综合训系统分享

    ZN-801DY机电技术综合训系统一、概述ZN-801DY机电技术综合训系统根据任务引领式行为导向教学法,以重点培养学生的动手能力,团队协作能力,创新能力等。是面向职业教育的新
    发表于 07-02 06:56

    工业机器人焊接工作站分享

    ZNL-HJ06型 工业机器人焊接工作站一、概述ZNL-HJ06型 工业机器人焊接工作站主要开展焊接技术培训,可满足学生动手能力的强化训练,还可作为高级工、技师能力提升的
    发表于 07-02 06:55

    2021年电工(中级)证考试及电工(中级)考试视频 精选资料分享

    题库来源:安全生产模拟考试一点通公众号小程序2021年电工(中级)证考试及电工(中级)考试视频,包含电工(中级)证考试答案和解析及电工(中级)考试视频练习。由安全生产模拟考试一
    发表于 09-10 09:13

    电工操作柜(单面双组型)有哪些技术指标

    ZN-890Q电工操作柜(单面双组型)是什么?ZN-890Q电工操作柜(单面双组型)有哪些技术指标?
    发表于 09-27 08:36

    工业机器人焊接工作站有哪些特点

    ZNL-HJ06型工业机器人焊接工作站是什么?ZNL-HJ06型工业机器人焊接工作站有哪些特点?
    发表于 09-28 07:39

    IIC模块的类型是什么

    **52单片机学习之路(1)IIC模块的理解与类型**1. IIC模块程序void IIC_Start(void); **IIC总线开始信号**void IIC_Stop(void
    发表于 12-02 06:09

    模型Scaling Law的概念和推导

    对于Decoder-only的模型,计算量(Flops), 模型参数量, 数据大小(token数),三者满足:。(推导见本文最后) 模型的最终性能主要与计算量,模型参数量和数据大
    的头像 发表于 11-29 14:28 1101次阅读
    大<b class='flag-5'>模型</b>的<b class='flag-5'>Scaling</b> <b class='flag-5'>Law</b>的概念和推导

    张宏江深度解析:大模型技术发展的八大观察点

    在大模型的发展史上,Scaling Law(规模律)发挥了核心作用,它是推动模型性能持续提升的主要动力。Scaling
    发表于 03-14 10:41 84次阅读
    张宏江深度解析:大<b class='flag-5'>模型</b>技术发展的八大观察点