假设我们有一个线性方程:
y = ax + b
现在,a 和 b 都不知道,但我们掌握了两组数据:
- 当
x = 1时,y = 3; - 当
x = 2时,y = 5。
把它们代入方程,可以得到:
a + b = 3
2a + b = 5
两个方程相减,得到 a = 2;再代入第一个方程,得到 b = 1。原来的方程也就确定了:
y = 2x + 1
现在,即使有人问“当 x = 10 时,y 是多少”,我们也能算出答案是 21。
这个看起来很普通的数学题,其实已经包含了理解机器学习和大模型最关键的思路。
方程就是一个简单的模型
在这个例子中,y = ax + b 可以看成一个模型。它描述了输入 x 和输出 y 之间可能存在的关系。
其中:
x是输入;y是输出;a和b是需要确定的参数;(1, 3)和(2, 5)是已知数据,也就是用来学习的例子。
我们根据已知数据求出 a 和 b,这个过程可以理解为最简单的“训练”。训练完成后,再给模型一个新的 x,让它计算对应的 y,这个过程就叫“推理”。
把它概括一下就是:
训练:数据 + 模型结构 → 模型参数
推理:新输入 + 模型参数 → 输出结果
大模型中的权重是什么
在 y = ax + b 中,a 决定了 x 对结果的影响有多大。准确地说,a 可以类比为权重,b 可以类比为偏置,它们都属于模型参数。
大模型中的权重,作用和这里的 a 很相似:它控制一部分输入信息会以多大程度、什么方向影响后续结果。
只不过,大模型面对的不是一个数字,也不是只有一个权重。它会先把文字切分成一个个较小的单位,通常称为 token。一个 token 可能是一个字、一个词,也可能只是一个词的一部分。随后,模型通过一层又一层的计算,处理这些 token 之间的关系。
如果把其中一个很小的计算单元简化,可以写成:
输出 = 输入 1 × 权重 1 + 输入 2 × 权重 2 + …… + 偏置
大语言模型就是把大量类似的计算组合起来,并不断重复。它拥有的不是一个 a,而是由大量数字组成的权重矩阵。
大模型是怎样训练的
大模型训练时,会反复完成一个看起来很简单的任务:根据前面的文字,预测接下来最可能出现什么。
例如,给模型一句话:
今天天气很好,我准备去公园……
接下来可能是“散步”“跑步”,也可能是其他符合上下文的内容。
训练初期,模型的权重通常是随机或近似随机的,预测自然不准确。系统会把预测结果和训练文本中的实际内容进行比较,计算误差,再根据误差对权重做一点调整。
整个过程可以简化为:
- 给模型一段文本;
- 让模型预测后面的 token;
- 将预测与实际内容比较;
- 计算误差并调整权重;
- 换一批文本,继续重复。
一次调整通常微小得几乎看不出作用。但经过大量文本和大量重复后,模型会逐渐找到更合适的权重组合。
程序员并不是把每一条问答逐字写进模型,而是提供训练方法和数据,让模型通过调整参数,自己学到语言中反复出现的规律。
知识藏在哪一个权重里
在线性方程中,我们可以明确地说 a = 2,它表示这条直线的斜率。但在大模型中,单独拿出某一个权重,通常很难说它具体代表哪一条知识。
模型不会把知识整齐地保存成一张“问题—答案”表。更接近真实的理解是:一条知识往往分散在许多权重之间,而一个权重也可能同时参与许多不同内容的计算。
当模型回答“法国的首都是巴黎”时,并不是先找到某个专门保存这句话的权重。它会综合词义、语法、上下文以及训练中形成的大量关联,共同计算接下来应该输出什么。
所以,大模型里的知识更像一张复杂的关系网,而不是一本可以逐页查阅的百科全书。
为什么大模型会一本正经地说错话
理解了训练方式,也就更容易理解大模型为什么会产生“幻觉”。
大模型最基础的工作,是根据上下文计算下一个 token 的概率。它擅长生成语言上连贯、形式上合理的内容,但“看起来像正确答案”和“事实一定正确”并不是一回事。
当问题超出训练中形成的可靠规律,或者上下文信息不足时,模型仍然可能继续生成一个听起来很顺的答案。只是这个答案未必真实。
因此,在医疗、法律、财务、新闻和精确数据等重要场景中,不能只看回答是否流畅,还需要核对可靠来源。
和大模型聊天,会改变它的权重吗
通常不会。
我们在聊天框里输入的内容,会成为模型当前的上下文。模型会参考这些信息生成回答,但一次普通对话通常不会永久修改模型本身的权重。
可以把它理解为:
- 权重是模型在长期训练中形成的能力;
- 上下文是模型当前正在参考的信息;
- 微调或继续训练才会真正修改权重。
这有点像一个人参加开卷考试:桌上的资料可以帮助他回答当前问题,但不代表资料里的内容已经永久变成了他的长期记忆。
大模型和线性方程有什么不同
y = ax + b 只有两个参数,而且我们提前假设了输入和输出是直线关系。给出两个合适的点,就能确定这条直线。
大模型的结构要复杂得多,参数数量也庞大得多。更重要的是,语言并不存在一条简单、确定的直线规律。同一句话在不同语境中可能有不同含义,同一个问题也可能有多种合理答案。
不过,两者最核心的思路仍然相通:
先确定一个模型结构,再通过数据寻找合适的参数,最后用这些参数处理新的输入。
参数越多,模型就一定越聪明吗
不一定。
参数越多,通常意味着模型有更大的空间去表示复杂规律,但最终能力还取决于模型结构、训练数据、训练方法和计算资源等因素。就像方程写得更复杂,并不代表它一定更接近真实世界;关键在于结构是否合适,以及参数有没有被训练好。
因此,“参数量”可以帮助我们了解模型规模,却不能单独代表模型的实际能力。
总结
从 y = ax + b 到大语言模型,规模和复杂程度发生了巨大变化,但最基本的思想没有变。
在线性方程中,我们根据两个已知点求出 a 和 b;在大模型中,训练系统根据大量文本和预测误差,不断调整内部权重。
所谓机器学习,可以先用一句普通话理解:
从大量已有例子中调整内部参数,让模型面对新的输入时,能够给出更合适的输出。
当然,大模型不只是一条被放大很多倍的直线。但从这条直线出发,我们已经能够看懂模型、参数、权重、训练和推理之间最基本的关系。
Discussion
评论
评论由 GitHub Discussions 提供,需要使用 GitHub 账号参与。