少样本让回答对数从 4 提升到 8(Prompt 工程)
10 道简单数学题,用直接提问模板只答对 4 道,加上两个示例的少样本模板答对 8 道。Prompt 模板的差别直接决定了回答质量。
本文基于 B 站 Prompt Engineering 教程中少样本提示和思维链 COT 提示章节,用纯 Python 模拟不同模板的效果,给出可直接套用的模板写法。
三种模板的构造方式
直接提问最简单,但模型容易犯错。少样本通过在问题前加几个示例,让模型明白期望的输出格式。思维链 COT 则要求模型展示思考过程后再给出答案。
def build_fewshot_prompt(question: str) –> str:
examples = [
("2 + 3 = ?", "5"),
("10 – 4 = ?", "6"),
]
prompt = "示例:\\n"
for q, a in examples:
prompt += f"{q} -> {a}\\n"
prompt += f"现在回答:{question}"
return prompt
少样本模板的关键是选对示例。示例要和当前问题的类型一致,格式要完全匹配。如果示例和问题类型不匹配,反而会误导模型。
实测结果
10 道题分别用三种模板测试,每个模板运行一次(种子固定 42),结果如下:
| 1 | 2 + 3 = ? | 4 | 4 | 5 |
| 2 | 10 – 4 = ? | 5 | 6 | 6 |
| 3 | 3 * 7 = ? | 21 | 21 | 20 |
| 4 | 20 / 4 = ? | 6 | 5 | 4 |
| 5 | 15 + 8 = ? | 22 | 23 | 23 |
| 6 | 100 – 25 = ? | 75 | 76 | 75 |
| 7 | 6 * 9 = ? | 54 | 54 | 54 |
| 8 | 36 / 6 = ? | 6 | 6 | 5 |
| 9 | 7 + 13 = ? | 21 | 20 | 20 |
| 10 | 50 – 17 = ? | 34 | 33 | 32 |
直接提问正确数:4/10(40.0%)
少样本(Few-shot)正确数:8/10(80.0%)
思维链(CoT)正确数:6/10(60.0%)
少样本的效果最明显,正确率直接翻倍。CoT 的预期效果没有完全发挥出来,可能是因为示例中的思考过程不够完整,模型没有真正学会「思考」这个步骤。
我怎么用它
实际项目中,我会优先用少样本模板。原因有三:
我踩过的坑是示例选得不好。一开始我选的示例和问题类型不一致,结果少样本模板的效果还不如直接提问。后来确保示例和问题同类型、同格式,效果才提升上来。
另一个坑是示例数量。示例太少(1 个)模型没学会,示例太多(5 个以上)又容易让模型困惑。2-3 个示例是最佳实践。





