AI 101: 什么是模型权重
我们在讨论大模型时,经常会听到这样一些说法: “这个模型有 7B 参数。” “把权重下载下来就能本地跑。” “这个模型是开放权重,不是完全开源。” “量化之后权重变小了,但效果可能会下降。” 这些说法里反复出现一个词:权重(model weights)。它听起来很底层,像是机器学习工程师需要关心的东西。但如果你想真正理解大模型是怎么运行的,模型权重其实是最值得先搞清楚的概念之一。 简单说,模型权重就是模型训练之后保存下来的大量数值,它们共同构成了模型“学到的能力”。这句话很短,但背后有不少东西可以展开。 模型不是一段规则,而是一大堆参数 很多人第一次接触 AI 时,会下意识地把模型想象成一套规则系统。 比如: 如果用户问“法国首都是哪里”,就回答“巴黎”。 如果用户问“苹果是什么”,就根据上下文判断是水果还是公司。 如果用户要求写诗,就调用某种写诗模板。 但现代大语言模型不是这样工作的。它不是由工程师手写了亿万条规则,也不是一个巨大的问答数据库。它更像是一个巨大的数学函数。 你输入一段文字,模型把文字切成 token,然后经过一层又一层计算,最后预测下一个 token 最可能是什么。比如你输入: 巴黎是法国的 模型会计算出下一个 token 的概率分布。它可能认为: “首都” 概率很高 “城市” 概率也不低 “总统” 概率很低 “香蕉” 概率几乎没有 这个判断不是来自某一条明确规则,而是来自模型内部海量参数共同参与的计算。 这些参数,就是我们说的模型权重。 权重到底长什么样? 权重在文件里并不像一本百科全书,也不像一堆可读的句子。它们本质上就是大量数字。 大概可以想象成这样: 0.0182 -0.4417 1.2093 0.0008 -2.1349 ... 当然,真实模型里的权重不是简单排成一列,而是组织成很多矩阵和张量。Transformer 的不同模块里都有各自的权重,比如注意力层(attention layer)的权重、前馈网络(feed-forward network / FFN)的权重、词嵌入矩阵(token embedding matrix)的权重等等。 这些名字听起来很工程化,但本质上仍然是一批批数值。它们只是处在模型的不同计算环节纸中:有的负责建模 token 之间的关系,有的负责非线性变换,有的负责把 token 映射成向量表示。 在直觉上,你可以先把它理解成:模型内部有无数个旋钮,训练就是调整这些旋钮,权重就是每个旋钮最终停在哪个位置。 一个 7B 模型,大约有 70 亿个这样的参数。一个 70B 模型,大约有 700 亿个参数。这也是为什么大模型文件那么大,因为你不是下载一段代码,而是在下载几十亿、几百亿个数值。 ...