18 · Sampling · 取象抉择之道
一、它解决什么问题?
Temperature 调整了概率分布的形状。 但还有一个问题: 从这个分布里,具体怎么选词?
二、三种主要 Sampling 策略
① Greedy Sampling(贪心采样)
永远选概率最高的词
② Top-K Sampling
只保留概率最高的 K 个词,其余归零,再从 K 个里随机选
③ Top-P Sampling(Nucleus Sampling,核采样)
从累计概率达到 P% 的词里选
三、三种策略对比
| 策略 | 候选范围 | 灵活性 | 常用程度 |
|---|---|---|---|
| Greedy | 固定1个 | ❌ 最低 | 低 |
| Top-K | 固定K个 | 中等 | 中 |
| Top-P | 动态变化 | ✅ 最高 | 高(主流) |
实际使用中,Top-P + Temperature 组合是最常见的配置。
四、Temperature 和 Sampling 的关系
先捏好面团(Temperature),再用模具切形状(Sampling)。
五、易经映射
| 取象方式 | 对应策略 |
|---|---|
| 只取最旺之象 | Greedy |
| 取前几个旺象 | Top-K |
| 取旺象直到气数足够 | Top-P |
补充学习:采样策略实际示例
我们用一个具体的概率分布来直观对比三种策略的选词过程:
| 候选词 | 概率 | 累计概率 |
|---|---|---|
| 公园 | 35% | 35% |
| 吃饭 | 28% | 63% |
| 看电影 | 15% | 78% |
| 图书馆 | 10% | 88% |
| 博物馆 | 5% | 93% |
| 火星 | 0.01% | 100% |
不同策略的选词范围:
- Greedy:永远选「公园」(概率最高的唯一一个)
- Top-K=3:从「公园、吃饭、看电影」三个词里随机选
- Top-P=0.9:累加概率到90%为止,包含「公园、吃饭、看电影、图书馆」四个词,从这四个里随机选
- Top-P=0.95:累加概率到95%,多包含一个「博物馆」,从五个词里选
补充学习:参数调优指南
Top-K 调参建议
| K值范围 | 效果 | 适用场景 |
|---|---|---|
| K=1 | 等同于贪心采样,完全确定 | 代码、数学题 |
| K=3-10 | 候选范围小,输出稳定 | 客服、公文、事实查询 |
| K=20-50 | 候选范围中等,平衡稳定和创意 | 日常对话、通用写作 |
| K>100 | 候选范围大,创意性强 | 诗歌、故事创作、头脑风暴 |
Top-P 调参建议
| P值范围 | 效果 | 适用场景 |
|---|---|---|
| P<0.5 | 只选概率极高的少数词,输出非常保守 | 精确问答、医疗/法律等专业场景 |
| P=0.7-0.9 | 动态候选范围适中,平衡质量和创意 | 绝大多数通用场景(主流默认值) |
| P=0.9-0.98 | 候选范围大,允许更多低概率词出现 | 创意写作、发散性思考 |
| P=1.0 | 考虑所有词,完全随机 | 特殊创意场景,容易出混乱内容 |
补充学习:最佳实践指南
常用组合推荐(Temperature + 采样策略)
| 场景 | Temperature | 采样配置 |
|---|---|---|
| 代码生成 | 0.1-0.3 | Greedy / Top-K=1 |
| 知识问答 | 0.2-0.4 | Top-P=0.6 / Top-K=5 |
| 公文写作 | 0.3-0.5 | Top-P=0.7 / Top-K=10 |
| 日常对话 | 0.6-0.8 | Top-P=0.9 / Top-K=40 |
| 文案创作 | 0.8-1.2 | Top-P=0.95 / Top-K=80 |
| 创意写诗 | 1.2-1.5 | Top-P=0.98 / Top-K=100 |
进阶优化参数
很多大模型还支持额外的采样优化参数:
- Frequency Penalty(频率惩罚):降低已经出现过的词的概率,减少重复
- Presence Penalty(存在惩罚):只要出现过一次就降低概率,鼓励输出新内容
- 重复惩罚:专门惩罚n-gram重复,避免说车轱辘话
补充学习:常见误区澄清
❌ 误区:Top-P和Top-K不能同时用 ✅ 真相:绝大多数大模型都支持同时开启两个限制,比如Top-P=0.9 + Top-K=50,既保证动态范围,又不会选到概率极低的垃圾词,效果更好。
❌ 误区:P=1就是完全随机 ✅ 真相:P=1只是考虑所有词,但还是按概率采样,高概率词还是更容易被选到,完全随机是所有词概率相等的时候才会发生。
❌ 误区:采样策略越复杂越好 ✅ 真相:大部分场景Top-P=0.9就足够好,过度调参收益很低,内容质量主要还是靠模型和Prompt。