大模型模型大小与推理性能的关系-scale law

一、目录

  1. 不同大小的模型,参数应该如何确定?
  2. scale law 预训练解析
  3. 模型参数、计算量、数据量大小的关系。

二、实现

  1. 不同大小的模型,参数应该如何确定?
    1. gpt3 不同大小模型参数:在这里插入图片描述
  2. llama 系列 参数统计(根据版本不同,算法会发生改变,参数估算量不同,但隐藏层、层数、注意力头数等超参数相同)在这里插入图片描述
  3. baichuan系列:在这里插入图片描述
  4. qwen系列在这里插入图片描述5. chatglm 系列在这里插入图片描述
  5. scale law 预训练解析
    以baichuan2 为例:
    2.1 Log Flops: 什么意思?
    Flops: 浮点运算次数。
    2.2 为什么开始用1万亿token 训练,预测大模型时用2.6万亿 token 预测训练?
    1万token 是自定义的,为了保证数据充足,宁可多,不可少的原则,进行训练,采用1T的tokens.
    2.6万亿token 则是训练后,根据scale law 定律计算出来的。
    2.3 10M、50M、100M 参数如何确定? 即如何确定才能保证符合scale law 定律。
    见下文,scale law 反向推理。
    2.4 scale law 操作流程:
    1. 准备充足的数据,如1T;
    2. 准备不同参数量的模型,并独立训练各个模型,使每个模型都训练到基本收敛。
    3. 训练过程中,分别统计 loss 性能与flops 的关系、模型参数量与flops的关系(收敛时flops)、tokens 大小与计算量flops的关系。(tokens如何确定?)
    在这里插入图片描述
  6. 根据绘图、预测大模型需要的tokens, 大模型的性能。

2.5 baichuan2 报告中,使用loss与flops的关系、模型参数量与flops的关系,预测大模型的性能loss、与数据量。
1. 准备充足的数据,如1T;
2. 准备不同参数量的模型,并独立训练各个模型,使每个模型都训练到基本收敛。
3. 训练过程中,分别统计 loss 性能与flops 的关系、模型参数量与flops的关系(收敛时flops)。
4. 拟合loss 与flops 曲线,并根据参数量与flops 的关系,计算tokens、loss。
如: 根据参数量与flops 的关系,获取flops 的大小,再根据scale law,C=6ND, 获取训练tokens.
参考:https://zhuanlan.zhihu.com/p/667489780

2.6 10M、50M、100M 参数如何确定?
根据scale law 定律,C=6ND, N~C^a, D~C^b, a+b=1。
超参数,实验确定?

  1. 模型参数、计算量、数据量大小的关系。

对于decoder-only 的模型,计算量C、模型参数N(除去embedding)、数据量大小D,三者关系为C=6ND
3.1 假设decoder 层为l, attention dim=d, attention feedward=d_ff, d_ff=4d, 求参数量:
self attention 包含Wq,Wk,Wv,Wo四个矩阵,参数为4
d^2
MLP 层 W1=R^dd_ff, W2=R^d_ffd, 参数为2dd_ff=8d^2
总参数量为12ld^2

3.2 假设输入X=(Batch,seq_len,hidden),Batch=b, seq_len=s,hidden=d, 求计算量?

输入线性层:XWq,XWk,XWv 的参数量为 2bsdd3=6bsd^2
attention QK^T= 2
bsds=2bds^2
score: SV=2
bssd
输出层:2
bsdd
MLP 层 XW1=2
bsd4d
XW2=2
bsd4d
所以decoder 总计算量为C=24lbsd2+4lbds2
优化时,反向计算是正向的两倍,全部计算量为C=3
C_forward=72lbsd2+12lbds2.

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值