思维链失效的地方,该换成结构化提示
把一个两百字的客服留言丢给模型做分类,同时加一句「请一步步思考」,准确率反而从 92% 掉到 84%,输出长度翻了一倍,还得再写代码把解释部分剔掉。
思维链曾经是提示词的万能钥匙,但它解决的是特定类型的问题。用错地方,它不提升准确率,只提升成本。
思维链擅长什么,不擅长什么
它的原理是把多步推理展开成中间 token,让模型有机会「在写的过程中算」。数学、逻辑推理、多约束规划受益明显,因为中间状态本身需要被显式表示。
但分类、信息抽取、格式转换这类任务,答案在一次判断里就能给出。强迫模型写推理过程,等于给它制造编造理由的空间:先有结论,再补一段看起来合理的论证。
三种常见的误用
- 给抽取任务加「一步步思考」,模型开始在推理里发明原文并不存在的字段值
- 把「必须输出 JSON」和「详细解释判断依据」写在一起,模型在两个目标间摇摆,格式经常崩
- 一段提示里塞进角色、规则、示例、格式、语气五件事,模型往往只牢牢抓住最后一条
这些问题的共同点是:提示词在描述「我想要什么感觉」,而不是定义「输入输出长什么样」。
结构化提示改了什么
结构化的核心不是写得更长,而是把任务拆成明确的槽位:输入是什么、输出是什么形状、判断依据有哪些、边界情况怎么处理。
同样一个分类任务,改成「只输出标签,标签取自 咨询/投诉/建议;不确定时输出 待定;不要输出任何解释」,准确率和稳定性通常一起上升。
更重要的是,结果可以直接进程序。不需要再写一层解析容错代码,这往往比提升几个百分点更省事。
一个可以直接套用的骨架
业内比较通行的做法是四段式:任务(一句话说清)→ 输入(结构化给出,加分隔符)→ 约束(边界与禁止项)→ 输出格式(给一组真实的输入输出对照)。
示例比描述管用得多。写「输出简洁的 JSON」,每个模型理解都不一样;给一段真实的输入输出对照,格式收敛速度会快一个量级。
什么时候该把推理加回来
当任务需要多步计算、需要在多个约束之间取舍,或者错误答案很难从表面识别时,让模型显式推理是划算的。
此时更稳的做法是拆成两段调用:第一段只要求它推理,第二段单独要求按格式输出结论。把「想」和「写」分开,比在一段提示里同时要求两件事可靠得多。
怎么判断改动真的有效
别用感觉判断。挑 20 条真实输入,覆盖正常、边界、异常三类,人工标注正确答案,改一次提示就跑一遍,记录准确率与格式合规率两个数。
大多数「感觉变好了」的改动,在这张表上会露出原形:某一类提上去了,另一类掉下来了,平均值没变。
把它当成接口协议来写
提示词既不是越长越好,也不是越像人说话越好。它更像一份接口协议:说清输入、输出和约束,剩下的交给模型。
行动建议:从你今天最常用的那个提示开始,删掉所有「请你认真思考」式的形容词,补上输出格式和一组示例,再用 20 条真实样本跑一遍做对比。