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

解码(Decoding):模型不是想好再说,是说一步看一步

一句话定义:解码指模型算完一次前向传播、得到“下一个 token 的概率分布”之后,按照某种规则从中挑出一个 token,把它接回输入末尾,再算下一次,如此循环,直到生成结束符或达到长度上限。

为什么需要“解码”这一步

语言模型每次计算只做一件事:看一眼现有的全部文字,输出一张词表上的概率表,例如“下一个词是‘因为’的概率为 0.3,‘所以’的概率为 0.2……”。这张表就是 logits 经过 softmax 后的结果。模型本身不会把整段答案预先写好再打印出来,它一次只负责一个 token。所以“怎么从这张表里挑”就成了独立的一环,这就是解码,也叫采样策略(sampling strategy)。

打个比方:玩文字接龙时,你每说一个词,就把整句话重新念给下一位听,他只想下一个词。没有人先在脑子里写好整段。也正因为如此,前面挑得偏了一点,后面就一路跟着偏;“一步错,步步歪”在这里是字面意思。

和几个容易混淆的概念的区别

  • 训练 vs 解码:训练是在调参数,解码是用已经调好的参数生成。训练一次要跑很久,解码则每个 token 跑一次。
  • 编码 vs 解码:编码(encoding)是把输入变成内部表示,对应读题;解码(decoding)是一步步往外吐字,对应答题。现在主流模型只有一套网络,“prefill 读 prompt + decode 逐 token 输出”是同一套网络的一种分工,不是两个模块。
  • 概率表 vs 解码策略:前者是模型给的原料,后者是你选的挑法。换个挑法,同一个模型能写出完全不同的文字。

常见挑法对比

策略怎么挑特点
贪心(greedy)每次取概率最高的那个稳定,但容易重复、句子死板
束搜索(beam search)同时保留若干条候选路径,最后选整体得分最高的翻译等任务常用,开放对话里常显得平庸
温度采样(temperature)按概率随机抽,温度调低会让分布更集中,调高会更平坦低温度保守可用,高温度发散有创意
Top-k / AI 词典:Top-p">Top-p(nucleus)只在概率最高的一小撮候选里抽,砍掉长尾兼顾多样性与不胡说,最常用的组合

对实际工作的意义

对工程师来说,解码直接决定产品手感:要稳定输出就调低温度,要创意就调高;要固定格式的 JSON,就得用约束解码(constrained decoding)把不符合语法的 token 概率压到零。线上服务里,prefill 阶段吃算力、decode 阶段吃显存带宽,所以“首 token 延迟”和“每 token 延迟”是两个要分开优化的指标,批量并发、KV cache 这些手段主要是在省 decode 阶段的重复计算。

对普通使用者来说,理解解码能解释两件事:为什么同一个问题问两遍答案不一样,以及为什么模型会“开头很对、中间跑偏”。让它分步思考、先给例子,本质上是在帮它每一步的概率分布收得更紧,少走岔路。具体参数和接口行为各家不同,以官方页面为准。

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