Appearance
6.10 模型差异与反模式清单
同一个提示词,在不同模型上效果可能差很多。这节讲怎么按模型调整提示,并用一张反模式清单给整章收尾——避开这些坑,你的提示水平就已经超过大多数人了。
推理模型 vs 普通模型:提示方式相反
这是最重要的一条差异(1.7):
| 普通模型 | 推理模型 | |
|---|---|---|
| 要不要 CoT | 要,引导它"一步步想"提升准确率 | 不要,它自带思考,硬塞反而干扰、啰嗦 |
| 复杂任务 | 你帮它拆步骤、给思路 | 直接给目标和约束,让它自己规划 |
| 提示风格 | 多引导、多给结构 | 简洁说清需求即可,别过度指挥 |
普通模型:"请先分析这段代码的逻辑,列出数据流,再指出 bug"(引导路径)
推理模型:"找出这段代码的 bug 并修复"(直接给目标,它自己会想)⚠️ 给推理模型堆一堆"请仔细思考、逐步分析、考虑各种情况",常常适得其反——它本来就在深度思考,你这些话只是噪声。
中文 vs 英文提示
- 国产模型 + 中文任务:直接用中文写提示通常最自然、效果最好(0.5,它们中文语料足)
- 复杂结构化指令:有时英文更紧凑、歧义更少;但对中文强的模型,中文一样能写清楚
- 术语:技术术语保留英文原文("用 React 的 useEffect"比硬翻成中文更准)
- 结论:别迷信"英文提示一定更强"——用你和模型都顺的语言,把意思说清楚才是关键
各家模型的脾气不同
不同模型对提示的"遵循度"和习惯有差异:
- 对 System Prompt 的服从度不同(有的很听话,有的容易飘)
- 默认输出风格不同(啰嗦/简洁、爱不爱用 Markdown)
- 工具调用、JSON 模式的支持和严格度不同(1.9 提过)
- 本地小模型(1.10)遵循复杂指令的能力明显弱
💡 实务建议:换模型 = 重新验证提示(6.6 的测试集这时就值钱了)。别假设在 A 模型上调好的提示,搬到 B 模型上还一样好。
反模式清单(避开这些就赢了一半)
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 堆"魔法咒语" | 碰运气、版本敏感 | 理解四杠杆,针对任务设计(6.1) |
| 一堆"不要…" | 负面指令效果差、还强化了不想要的 | 多写"该做什么"(6.2) |
| 指令自相矛盾 | "简洁但详细""自由发挥但严格按格式" | 想清楚优先级,去掉冲突 |
| 一个提示塞太多任务 | 模型顾此失彼 | 拆成多步/多个提示(6.3) |
| 用形容词代替范例 | "要专业要地道"它领会不到 | 给一个范例(6.3) |
| 不给上下文让它猜 | 脑补出错误前提 | 给足背景和约束(6.1) |
| 把数据当指令拼进去 | 注入风险、混淆 | 分隔符圈数据 + 标注(6.5) |
| 不留"不知道"的出口 | 逼出幻觉 | 允许说"不确定/转人工"(6.4) |
| 给推理模型堆 CoT | 噪声、啰嗦 | 直接给目标(本节) |
| 用字数硬控长度 | 模型对字数不敏感 | 给结构(一句话结论+N点) |
| 改了提示不验证 | 随机游走、线上翻车 | 建测试集、改一处全量跑(6.6) |
🛠️ 实战练习:跨模型 + 反模式自查
- 跨模型:拿你一个常用提示,在 DeepSeek(云端)和本地 Ollama 小模型上各跑,看遵循度差别;若有推理模型,把它的 CoT 指令去掉再试
- 自查:对照反模式清单,逐条检查你最近写的几个提示,中了几条?挑最严重的一条改掉
期望结果:你建立起"提示要随模型调整"的意识,并能用清单快速自检、避开高频坑。
📌 关键结论
- 推理模型和普通模型的提示方式相反:普通要引导 CoT,推理别堆思考指令、直接给目标
- 国产模型做中文任务直接用中文最自然;术语留英文;别迷信英文提示更强
- 各家模型脾气不同,换模型必须用测试集重新验证提示
- 避开反模式清单(魔法咒语/负面指令堆砌/塞太多/形容词代范例/不留出口/改了不验证…)就赢一半
- 提示工程的内核:理解原理(6.1)+ 结构化表达(6.2-6.4)+ 稳定可靠(6.5)+ 数据驱动迭代(6.6)
🎉 第 6 章完成,提示词工程从心法到分场景 Playbook 全部讲透。去练练?→ 🎯 复习巩固 · 词汇速查 · 或回看 6.1 心法