大语言模型的解码策略:贪婪解码与波束搜索

在自然语言生成任务(如机器翻译、文本摘要、图像描述等)中,语言模型通常会输出一个词的概率分布 ,但模型本身并不会自动告诉你应该选哪些词作为最终的输出句子。因此,我们需要设计一个"解码策略"来从这些概率中生成可读文本。

一、什么是序列解码?

以语言模型为例,给定起始 token,比如 "<BOS>",模型会预测下一个词的概率分布:

复制代码
P(w1 | <BOS>) = {"I": 0.5, "You": 0.3, "He": 0.2}

然后在预测了 "I" 之后,模型继续生成:

复制代码
P(w2 | <BOS>, "I") = {"am": 0.6, "was": 0.4}

我们希望最终得到完整的句子如:

复制代码
"I am happy"

二、贪婪解码(Greedy Decoding)

1. 原理

贪婪解码策略非常简单粗暴:每一步只选当前概率最大的词,不考虑未来潜在更优路径。

复制代码
sequence = [<BOS>]
while not sequence ends:
    next_token = argmax(P(token | sequence))
    sequence.append(next_token)

3. 举例说明

假设某语言模型输出如下(简化为概率):

  • Step 1: {"I": 0.5, "You": 0.3, "He": 0.2} → 选 "I"

  • Step 2: {"am": 0.6, "was": 0.4} → 选 "am"

  • Step 3: {"happy": 0.4, "sad": 0.3, "angry": 0.3} → 选 "happy"

最终生成:"I am happy"

三、波束搜索(Beam Search)

1. 原理

波束搜索是一种启发式搜索策略 ,在每一步保留概率最高的前 k 个序列候选(称为 beam),然后依次扩展,直到生成 <EOS> 或达到最大长度。

相比贪婪解码,它可以更好地探索多条路径,从而获得更优结果。

复制代码
beam = [("<BOS>", score=1.0)]

for step in range(max_len):
    new_beam = []
    for seq, score in beam:
        next_tokens = top_k(P(token | seq), k)
        for token, prob in next_tokens:
            new_seq = seq + token
            new_score = score * prob
            new_beam.append((new_seq, new_score))
    beam = top_k(new_beam, k)

3. 举例说明(beam size = 2)

假设第一步:

  • "I": 0.5

  • "You": 0.3

保留 "I" 和 "You"

第二步扩展:

  • "I" → {"am": 0.6, "was": 0.4}

  • "You" → {"are": 0.7, "were": 0.3}

组合成候选路径:

  • "I am": 0.5 × 0.6 = 0.30

  • "I was": 0.5 × 0.4 = 0.20

  • "You are": 0.3 × 0.7 = 0.21

  • "You were": 0.3 × 0.3 = 0.09

取 top 2:保留 "I am" 和 "You are" 继续扩展。

相关推荐
空堂与归6 分钟前
序列数据怎么喂给神经网络?用循环神经网络RNN拆开一个时间步
人工智能·rnn·神经网络·nlp
尺度商业9 分钟前
大变革下的电力新序章:供需重塑、错配破解与价值重估
人工智能
天远Date Lab13 分钟前
零信任架构实战:基于天远车信盟出险构建自动化汽车消费贷合规网关
人工智能·机器学习·计算机视觉·ocr
知见漫记16 分钟前
AI文档总结折叠手机推荐,联想moto razr Fold让信息处理更高效
人工智能·智能手机
虎虎(_ _)。゜zzZ19 分钟前
Qdrant向量数据库工程实战
数据库·人工智能·大模型·向量数据库·rag·qdrant
DM今天肝到几点?20 分钟前
GPT-6 Astra 发布:ARC-AGI-3 从 7.8% 跳到 99.9%,OpenAI 宣告「欢迎进入 AGI 时代」
人工智能·gpt·深度学习·agi
智途 Tech26 分钟前
2026年分析多个Excel、CSV和网页数据的AI工具清单:Tabbit 浏览器多源引用
大数据·人工智能·excel
李妍.27 分钟前
PyTorch GPU 版安装记录(RTX 5060 + Python 3.14)
人工智能·pytorch·python
海天一色y28 分钟前
注意力机制的进化:MHA → GQA → MLA → CSA → HCA
人工智能·注意力机制
广慈新医知32 分钟前
当健康问题越来越复杂,AI更适合先帮我们“把问题问清楚”
人工智能·python