跳到主内容
快讯直播
AI智模界
AI 词典

前向传播:数据穿过模型的那一趟

一句话说,前向传播(Forward Pass)就是输入数据从模型的第一层进去、被一层层加工、最后从输出层吐出结果的那一趟计算。你问聊天机器人一句话,它每吐出一个字,背后都是一次前向传播。

神经网络是一摞叠起来的层。每一层做的事其实很朴素:拿上一层交过来的数字,乘上一组权重,加上偏置,过一个激活函数(activation function),再把结果交给下一层。前向传播就是把这套动作按顺序从头做到尾。

打个比方:像一条工厂流水线。原料从第一道工序进去,每道工序切一刀、拧一下、上点漆,最后从末端出来一个成品。前向传播跑到终点时,你手里拿到的是那个成品——下一个词是什么、这张图是猫还是狗、这个客户会不会流失。全程它只做一件事:读参数、算乘加。它本身不改变模型。

它和反向传播(AI 词典:Backpropagation">Backpropagation)的关系

训练一个模型时,一轮完整的流程是:先做前向传播拿到预测;再用损失函数(loss function)衡量预测和标准答案差多远;然后反向传播从最后一层往前推,算出每个参数该往哪个方向调、调多少;最后优化器(optimizer)把参数更新一遍。

所以关键的区别在这里:训练时,前向传播只是前半段;推理时,它就是全部。

这也是为什么同一个模型,训练和推理的开销完全不是一回事:

训练时的前向传播推理时的前向传播
在流程中的位置前半段,后面还有反向传播从头到尾就是它
中间结果(激活值)必须全部存下来,反向传播要用用完即弃
参数会被更新只读,一动不动
显存占用高得多低得多
随机性dropout 等开着通常关掉,结果确定

第一条最容易被忽略。训练时显存里装的不只是模型参数,还有每一层的中间激活值,因为反向传播要用它们算梯度。推理时,上一层的结果交给下一层之后就可以扔掉。这就是为什么一个模型可以在一张消费级显卡上跑推理,训练同样规模却要一堆卡。

第二条是计算量。反向传播的运算量和前向传播通常是同一量级,甚至更多,因为它要算一大堆梯度。推理只需要跑一遍。

对从业者和普通人的意义

对做工程的人:推理优化手段(量化、批处理、键值缓存 KV cache)之所以存在,就是因为推理阶段约束少、空间大——参数只读、激活值不留、可以只算需要的那部分。而训练侧的显存规划,很大一块要留给激活值。

对普通用户:你和模型聊天,每次走的都是前向传播。模型不会因为你多问几句就"记住"你——除非产品层把对话历史重新塞回输入,或者另存了一份数据。它本身在这一趟里什么都没变。

想把模型看作一个函数的话:前向传播就是调用它一次,反向传播才是修改它。调用很便宜,修改很贵。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。