「7B 参数」是什么意思?
参数是那些可调整的数字,模型学到的一切都装在里面。参数量为什么重要,又为什么它已经不再代表全部。
模型名字里带着数字:7B、70B、405B。B 是 billion(十亿),被数的是参数(parameter)——模型内部一个个可调整的数字。
一个 7B 模型里有七十亿个这样的数字。每一个都是训练定下来的,它们合起来构成了模型知道和能做的一切。
参数到底是什么
一个参数就是一个数字,参与一次算术运算。
模型内部的计算主要是矩阵乘法:取一个向量,乘上一大块数字矩阵,得到一个新向量。矩阵里的每个元素就是参数。每一个 embedding 值、每一个注意力(attention)权重矩阵、每一个前馈层,都由参数构成。
训练刚开始时,它们是随机的,输出就是噪声。然后几十亿次微小的调整累积起来,每一次都把参数往更好的下一 token 预测推一点,最终同一批数字开始产出连贯的语言。
模型里没有一个单独的事实数据库。参数本身就是知识,以统计结构的形式存储,而不是一条条可以取回的记录。这就是模型没法给出出处的原因——根本没有出处,只有模式留下的残迹。
参数量为什么重要
参数越多,表示模式的能力就越强。从经验上看,更大的模型更擅长多步推理、能记住更多事实细节、遵循指令更可靠,也更扛得住不寻常的措辞。
这种提升并非处处都是渐进的。有些能力在小模型里基本不存在,到大模型里就有了,中间看不到爬坡的过程——正是这一点驱使整个领域不断把规模做大。
参数量为什么不是全部
单看参数量,早就不再是好的质量预测指标了,原因有几个。
数据质量和数量同等重要。 模型可能相对训练数据来说太大了,多出来的容量根本用不上。训练得当的小模型,常常跑赢训练糟糕的大模型。
后训练承担了大部分工作。 指令微调和偏好训练能大幅改变模型的可用性,而参数量一点没变。
并非所有参数都处于激活状态。 专家混合(MoE)架构拥有很多参数,但每个 token 只会经过其中一小部分。一个标称 400B 的模型,每个 token 可能只激活 40B 的参数,这会让成本状况彻底改观。总参数量和激活参数量回答的是两个不同的问题。
架构和训练配方各不相同。 两个规模完全相同的模型,能力可能差得很远。
参数量真正能预测的:成本
参数量直接对应资源需求,这才是它在实际中重要的原因。
内存。 推理(inference)时每个参数都必须待在内存里。按每个参数 2 字节算,7B 模型大约需要 14 GB,70B 模型大约需要 140 GB——这还不算 KV cache,而 KV cache 会随上下文长度增长。
速度。 每生成一个 token 都要把所有激活的参数读一遍。参数越多,生成越慢,单位 token 成本越高。
可行性。 模型是能塞进一张消费级 GPU、一台服务器,还是必须上集群,直接由这个数字决定。
量化用更低的精度存储参数,能缩小内存占用、加快推理,代价是损失一些质量。正是它让更大的模型能跑在普通的硬件上。
怎么读模型名字
Llama-3.1-70B-Instruct 可以拆成四部分:系列、版本、参数量、后训练阶段。Instruct 后缀表示做过指令微调;没有这个后缀,通常说明它是基座模型。
闭源模型往往不公布参数量。厂商提供的档位名——小、中、大——就是实际的替代指标,而该用哪个模型?讲的是按任务而不是按规模来选。
要点回顾
- 一个参数就是一个可调整的数字;它们合起来承载了模型学到的一切。
- 不存在单独的事实数据库——知识弥散在参数之中。
- 参数量能可靠预测成本,对质量只能粗略预测;数据、后训练和架构同样重要。
- 专家混合模型要区分总参数量和激活参数量。
下一篇: transformer 是怎么工作的?