从概率分布中选择单个词元(采样、解码):中学生版
#2025/12/29 #ai
目录
核心概念
想象你在玩一个“猜下一个词“的游戏。大语言模型就像一个非常聪明的玩家,它不会直接告诉你答案,而是给出每个可能的词的“得分”。
举个例子
假设你写了一句话:“我正在开一辆……”
模型会思考:“接下来应该是什么词呢?“然后给出这样的得分:
🚗 车 (car) → 40% 可能性
🚚 卡车 (truck) → 13% 可能性
🐘 大象 (elephant) → 2% 可能性
两种选择策略
1️⃣ 贪心解码(总选最高分)
- 规则:
- 永远选择概率最高的词
- 结果:
- 每次都会选“车“
- 特点:
- 结果固定,没有惊喜
- 就像考试永远选 A,虽然保险但缺乏创意
2️⃣ 随机采样(按概率抽奖)
- 规则:根据概率随机选择
- 结果:
- 40%的概率选“车“
- 13%的概率选“卡车“
- 2%的概率选“大象“(虽然小但也可能)
- 特点:
- 有随机性,更自然有趣
用代码理解
# 假设这是模型给出的概率
词元概率 = {
"车": 0.40,
"卡车": 0.13,
"自行车": 0.08,
"大象": 0.02
}
# 贪心解码:总选最高的
def 贪心选择():
return "车" # 每次都一样
# 随机采样:像抽奖
import random
def 随机选择():
# 根据概率随机抽取
return random.choices(
list(词元概率.keys()),
weights=list(词元概率.values())
)[0]
为什么需要随机性?
想象如果AI作家总是选最保险的词:
- ❌ “今天天气很好” → 每天都这么写
- ✅ 有时写“今天天气晴朗“,有时写“今天阳光明媚“ → 更自然
关键要点
- 模型输出:
- 不是直接给答案,而是给每个词的“可能性得分“
- 解码策略:
- 决定如何从这些得分中选出最终的词
- 温度参数:
- 控制随机程度(
温度=0就是贪心解码)
- 控制随机程度(
- 实际应用:聊天机器人通常用
随机采样,让回答更自然多样