大模型的多少B参数是怎么算出来的,步骤和注意事项

模型与算力

讲清模型名字里的 B 参数到底在数什么、统计口径有哪些差别,以及看参数量时该怎么读、哪些情况下不能直接横向比。

看模型资料或选型报告时,总会遇到「这个模型多少 B」的说法,但不同厂商写出来的数字口径并不统一:有的只算主干,有的把专家层全算进去,有的把嵌入层也算了一笔。这篇按「参数在哪、怎么数、怎么核对」的顺序讲清楚口径,帮你在拿参数量和显存、成本对照之前先确认自己在比什么。

看模型资料或选型报告时,总会遇到「这个模型多少 B」的说法。但不同厂商写出来的数字口径并不统一:有的只算主干,有的把专家层全算进去,有的把嵌入层也算了一笔。这直接导致拿两个数字去比的时候,比的未必是同一个东西。

这篇不讲哪家模型强,只讲参数是怎么被数出来的、统计口径差在哪、读到数字后该怎么核对。顺序是:参数在哪、怎么数、怎么对账、什么时候不能用。

B 到底在数什么东西

B 是 billion 的缩写,指的是模型里可训练权重的个数到了十亿这个量级。它不是训练数据量,不是显存占用,也不是 token 数。一个权重就是一个数字,模型里所有可以学的数字加起来,就是参数总量。所以 B 本身只是一个量级表述,同一档里的两个数字没必要当成精确规格去卡线。

参数量
可训练权重的个数,按个计数,和文件体积无关
模型文件大小
存到磁盘上占多少空间,取决于精度和量化方式,同一份权重能存成不同大小
激活参数
MoE 结构里单次前向实际参与计算的那部分参数,远小于总参数
词表参数
嵌入矩阵按词表大小乘以隐藏维度算出来,词表大的模型这一项占比不低

最容易混的是参数量和显存。参数多,权重占的显存通常也高,但具体占多少还看数值精度、量化方案和是否做了权重共享。用一个数字去推另一个数字,只能推量级,推不出准确值。

参数是怎么被一层层数出来的

粗算的思路很朴素:把模型拆成嵌入层、注意力与前馈层、输出头三块,分别算,再相加。单层里主要是注意力那四个投影矩阵,加上前馈的上投影和下投影,每个矩阵的形状由隐藏维度和中间维度决定,形状的两个数相乘就是一个矩阵的参数个数。

  1. 先算嵌入层词表大小乘以隐藏维度,得到嵌入矩阵的参数个数。注意有些模型的输入嵌入和输出头共享同一份权重,这种情况只算一次,不能重复加。
  2. 再算单层把注意力里的几个投影矩阵、前馈层的上下投影、以及层归一化这类小项的参数量分别算出来相加,得到一层的参数量。
  3. 乘层数单层参数量乘以层数,得到主干部分的量级。这一步的误差通常来自分组查询注意力、偏置项这类细节是否计入。
  4. 补上输出头如果输出头和嵌入不共享,按词表大小乘以隐藏维度再补一笔;共享就不加。
  5. 对数量级把上面几块加起来和官方数字比,差个零头是正常的,说明你抓对了主体;差出成倍,先去查口径,别急着下结论。

这里有个高频坑:混合专家结构。总参数要按全部专家累加,激活参数只按每次实际走的那几个专家算,两个数字能差出数倍。看 MoE 模型时,先确认厂商给的是总参数还是激活参数,否则后面所有对比都会错位。

官方数字和自己粗算对不上怎么办

自己粗算只用来判断数量级是否合理,不要拿它去反驳官方数字,除非你能确认双方口径完全一致。对不上时,按下面这张表逐项排查,多数差异都能落到某一行上。

差异来源怎么确认处理方式
嵌入层和词表是否计入看官方技术文档里的参数拆分说明计入与不计入相差明显,先对齐这一项
输出头是否与嵌入共享查结构描述里有没有权重共享共享则只算一次
多模态分支是否计入看是否含视觉、语音等额外编码器只比语言主干时要把这部分剔掉
MoE 给的是总参数还是激活参数看数字量级和结构说明统一成同一口径再比
训练中途裁剪或扩展看有无结构变更记录以最终发布版本的规格为准

排查完通常会发现,差异不在你的算术上,而在「算不算某一块」上。想省事的话,直接去站内模型库看同一模型不同版本的规格对照,先把口径对齐再比,比自己在草稿纸上重算一遍快得多。

读到 B 之后该怎么用、什么时候不能用

参数量最靠谱的用途是估硬件门槛和成本量级:参数越大,权重占的显存和单次推理的算力通常越高。但它不是能力排名。同一量级里,训练数据的质量、数据配比、结构设计和后训练方式的影响,往往比参数量本身更大,拿数字大小直接下结论很容易翻车。

  • 用来估显存和算力量级:可以,但只当起点,实际部署还要加上上下文长度、并发和框架开销
  • 用来做能力排序:不可靠,同量级模型的实际表现差异要看评测结果,去 /rankings 看当时的对比
  • 稠密模型的总参数对比 MoE 的激活参数:直接对打没有意义,先统一口径
  • 量化或蒸馏后的模型:标称参数量可能没变,实际资源占用已经不同,要按部署形态重新估算
  • 不同厂商的标称数字横向比较:先确认嵌入、输出头、多模态分支是否都按同一规则算进去

还有一个常被忽略的点:上下文长度。参数量只管权重,长上下文带来的激活显存和算力开销是另一笔账。做容量规划时把这两件事分开算,比只盯一个 B 数字稳得多。

下一步把你要比的那几个模型的规格拉出来,先对齐嵌入、输出头、MoE 这三个口径,再去比硬件和成本,结论会靠谱很多。

常见问题

1B 参数大概是多少个数字?

一个 B 就是十亿量级,1B 意味着约十亿个可训练权重。注意这是数量级表述,不同厂商四舍五入方式不同,所以 1.5B 和 2B 往往被归到同一档,别拿它当精确规格去卡显存线。

为什么同一个模型,不同地方写的参数量对不上?

多数是统计口径不同:有的只算主干不算嵌入层,有的把多模态分支单独列,MoE 还会分成总参数和激活参数两种写法。看到不一致先找口径说明,确认是不是同一个东西再比。

参数量越大的模型一定越强吗?

不一定。参数量影响的是容量上限和硬件成本,实际效果还取决于训练数据质量、训练充分程度和对齐方式。同一量级里差距可能很大,跨量级时小模型在特定任务上反超也不罕见,因此还需要看真实任务表现。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。