AI 术语表 · 基础 · 语言模型
损失函数
损失函数是用一个数字计算 AI 模型的预测与正确答案相差多少的规则。训练就是朝着尽量减小这个数字(损失)的方向,逐步修正模型的过程。
通俗解释 它就像飞镖游戏中测量飞镖离靶心多远的尺子。距离越远,得分越差,选手会调整姿势来缩短这个距离。不过,什么算“远”,取决于损失函数如何设定。
工作原理
模型接收输入并给出预测后,损失函数会把预测与正确答案进行比较,给出误差分数。在房价这类预测数值的问题中,常用把预测与正确答案之差平方后取平均的方法(均方误差)。在区分猫和狗这类选择类别的问题,或 LLM 预测下一个 token 的问题中,多用交叉熵:给正确答案的概率越低,惩罚越重。基于得到的损失值,反向传播计算每个参数应朝哪个方向调整,梯度下降再逐步修改参数。这个过程反复进行无数次,损失随之下降。
为什么重要
损失函数是告诉模型“什么叫做得好”的唯一标准。模型无法直接理解人的意图,只会朝着降低这个数字的方向变化。因此,即使数据和模型相同,损失函数设定不同,也可能得到性格完全不同的模型。微调、RLHF、DPO 等方法,归根结底也可以看作是关于如何把某个目标表达为损失(或奖励)的设计。
注意事项
损失低并不总是意味着模型好。如果只在训练数据上损失很低,在新数据上却很高,就应怀疑过拟合。此外,如果损失函数没能准确体现真正想要的目标,模型可能会学到只降低数字的歪门邪道。因此,训练过程中会同时查看单独留出的验证数据的损失和实际评估结果。
示例
在 LLM 预训练中,先给模型看句子的前半部分,让它预测下一个 token,再用交叉熵损失计算它给实际下一个 token 的概率有多高。模型开发团队在整个训练过程中观察这个损失值下降的曲线,以确认训练是否正常。