模型内部的数字,通常以十亿计,并在训练期间被调优。模型“知道”的一切都存放在这些数字中。训练负责设定参数;推理则原样使用它们。参数也称为权重。
从运作机制上说,参数正是把输入转化为输出的东西。下一 Token 预测本质上是一场巨大的计算:上下文窗口中的 Token 被送入模型,经过参数层层相乘运算,最终得到对下一个 Token 的预测。模型内部没有事实数据库,也没有代码查询表——只有这些数字;它们的排列方式使计算更倾向于产出有用结果。模型能复述的训练所得事实,例如标准库 API,属于参数化知识:它存储在参数中,并非从任何外部来源检索而来。
真正需要理解并记住的是:训练结束后,参数就被冻结了。你在一次会话中做的任何事都不会改变参数——无论你如何纠正、给它展示什么代码库,或让它从什么错误中吸取教训。每次会话使用的都是同一组数字。这就是模型为何无状态、其内置知识为何停留在知识截止时间,也是任何项目特定信息都必须通过上下文提供的原因。改变参数的唯一方式是继续训练——而那实际上会得到一个不同的模型。
用法:
“我们能用自己的代码库对它进行微调吗?”
“那会更新参数——完成后得到的其实是另一个模型。只为一个项目时,把代码库作为上下文加载进来,几乎总比重新训练更便宜。”