用模型干活时最怕它一本正经地编:编文献、编接口、编价格。这篇不重复讲幻觉定义,直接讲怎么判断这次胡说属于哪一类,然后按提示层、检索、参数、输出校验四步改,什么情况下改提示也没用、该换模型或加环节。
用模型干活最怕的不是它不会,是它一本正经地编:编文献、编接口、编价格,语气还特别笃定。这篇不解释幻觉是什么,直接讲怎么判断这次胡说属于哪一类,然后按提示层、检索、参数、输出校验四步改。哪些情况改提示有用,哪些情况改了也白改、只能换模型或加环节,后面单独说。
先把一个预期摆正:模型不会因为你说「别编」就真的不编了,它是按概率往下接话的,拦住它的是结构和材料,不是态度。所以你调的不是「让模型更诚实」,而是「让它没机会填空、有空查证、错了能被挑出来」。这三件事分别对应提示层、检索层和校验层,缺一层就会漏。
先分清三类胡说:不会、不想、被逼
同一句胡话,成因不同,解法完全不一样。上来就改提示是常见误区:模型根本没这个知识,你把提示写得再温柔它也编;模型知识够但你逼它必须给结论,它也只能凑。先花两分钟做归类,比盲目调半小时划算。
- 不会
- 知识没覆盖,或者覆盖的内容过时了,模型只好用语言直觉拼一个「看起来像」的答案,这类错误通常错得很流畅且稳定。
- 不想
- 模型没被明确要求说不知道,它把「答得顺」当成「答得对」,遇到边界问题不踩刹车直接往前开。
- 被逼
- 提示里带了预设前提、要求固定格式、必须给结论,模型为了把空填满而编,换个人来答也难受。
判断方法就一个思路:制造扰动,看答案漂不漂。换个问法、去掉「是不是」「对不对」这类引导、要求它先列证据再下结论,如果答案跟着变,大概率是被逼或不想;如果答案稳稳地错,换几种问法都一样,那基本就是不会,属于知识或能力盲区。
提示层:把边界和退路写进提示
提示层能做的是两件事:给退路、拆前提。退路是明确告诉它可以说「不确定」「需要查证」,并给出具体句式,别只说「不要编」,那句话没有可执行的动作。拆前提是让它先复述它理解的事实和假设,你确认没跑偏,再让它往下答。很多胡说其实是一开始就理解错了题。
- 给句式:比如「若材料不足,请只输出『无法确认』并说明缺什么信息」,把退路写成可执行的格式;
- 先复述后排雷:让它用一两句复述问题里的前提与假设,你扫一眼有没有被它偷偷补全;
- 依据优先:要求先说依据、再说结论,没依据的结论自己标成待验证,而不是藏在一堆漂亮话里;
- 分开放:事实性问题与创作性要求分两次问,混在一起它会用创作的自由度去答事实题;
- 加一道自检:让它答完再自评哪些部分把握低,只用来降低漏检,不能当成正确性证明。
适用边界要说清楚:事实抽查类问题,比如「这个接口参数是什么」「这个政策怎么规定」,加这些约束效果很明显;开放创作类,比如写文案、起标题、编故事,别硬塞「无依据不许说」,会把回答写得又干又僵,反而更难用。该放开的地方放开,是调提示的一部分。
检索兜底:让它读材料而不是靠记忆
知识边界外的问题,提示救不了,只能喂材料。把权威文档、规格表、政策页切成块放进上下文,明确要求「只依据给定材料回答,材料里没有就说没有」,然后要求答案带出处片段编号。这一步的价值不在让模型变聪明,而在于把「它记不记得」换成「材料里有没有」,前者你没法查,后者能回查。
- 筛源只放一手材料:官方文档、原始规格、盖章文件。二手转述、论坛问答、几年前的博客先剔掉,旧材料会制造更隐蔽的错误。
- 切块并编号按语义段落切,给每块一个可引用的编号,块别太大,一块塞三四个主题进去,模型引用时会对不准。
- 限定作答范围提示里写明只依据材料作答、结论后标注引用的块编号,材料没有覆盖的问题直接说无法确认。
- 回查抽几条答案顺着编号回原文看一眼,编号对不上或原文意思被扭曲,说明切块或提示有问题,先修材料再修提示。
不适用的情况也得说:材料本身是吐槽帖、竞品软文、互相矛盾的问答时,模型会把噪声当事实,而且引得很像那么回事。这时候问题不在模型,在源没筛干净。检索是放大器,源不对,放大的是错误。
参数与模型:调什么、什么时候该换
参数里对胡说影响最直接的是随机性那一项,调低它对事实类问答有帮助,答案更收敛、更少即兴发挥;但对创意写作会明显变呆,句式重复、想法平庸。所以别全局调低,按任务分开用。另一个常被忽略的是上下文长度:往窗口里塞一大堆无关材料,注意力会跑偏,先精简再追问,比堆料有效。
| 现象 | 先查什么 | 大概率原因 |
|---|---|---|
| 答案稳定地错,换问法也一样 | 模型能力/知识边界 | 不会,该换模型或上检索 |
| 答案忽对忽错,问法一改就变 | 提示里的预设与格式约束 | 被逼或不想,调提示 |
| 同一提示偶尔离谱 | 随机性、上下文噪声 | 参数偏高或材料太杂 |
| 昨天还行今天全崩 | 渠道与接口是否一致 | 渠道被换或被降级 |
做法很土但有效:同一份提示,换一到两个模型对照跑。如果稳定错的题在每个模型上都错,那是能力盲区,不是调法问题,认了换方案;如果只有某一个模型错得离谱,先怀疑渠道。参数术语各家叫法和默认值不一样,别凭记忆写,去 /ai-dict/category/tips 对一遍再改。
输出校验:把不确定的挑出来
前面几层都是降低出错率,这一层是兜底。思路是把「整段对不对」拆成「哪几处必查」:数字、日期、链接、人名、接口名和参数名、引用来源。这几类错代价最高、也最好查,逐项过一遍比通读全文有效得多。自我核查那一步可以让模型做,但只当降低漏检率的手段,不能当正确性证明——它检查自己的答案,等于让考生自己阅卷。
- 数字与单位:价格、比例、限额一律回原始页面核对,别信模型复述的数字,站内价格类数据到 /price-watch 看当时的数字;
- 链接与引用:逐条点开,编出来的文献往往有像模像样的作者和标题,就是查不到;
- 接口与参数:以官方文档为准,函数名、参数名、默认值最容易张冠李戴;
- 关键业务加规则校验或人工抽检,抽检比例按出错的后果定,后果越重抽得越密;
- 工具辅助:/tools/quality-check 做基础质量抽查,/tools/quality-monitor 做持续观察,两者看的是趋势,不是给你一个「合格」结论。
校验环节的常见错误是把它做成形式:抽一条过了就说整体没问题。更稳的做法是按风险分档,高风险内容全查,中风险抽样,低风险只看趋势。校验的目的是让你知道哪里不确定,而不是拿到一个放心的理由。
按场景套用:客服、代码、报告、长文
不同场景的胡说长得不一样,套用同一套办法效果打折。下面这张对照表可以直接拿去用,左边是你干的活,右边是先加哪道闸。
| 场景 | 最典型的胡说 | 先加的措施 |
|---|---|---|
| 客服问答 | 自由发挥价格与政策 | 检索加「材料没有就说没有」,价格类问题直接引站内页面 |
| 代码补全 | 编不存在的接口名和参数 | 要求引用现有函数签名,跑测试再合并 |
| 数据报告 | 凭空生成的统计值和百分比 | 所有数字给计算过程与来源,没来源的一律作废 |
| 长文写作 | 事实段落里混入编造的细节 | 观点段落放开,事实性段落单列并单独核对 |
代码场景值得多说一句:编接口名是重灾区,因为语法通顺、命名习惯也对,看代码时不跑根本发现不了。要求它引用仓库里已有的函数签名,配合跑一遍测试,能把这类问题拦在合并之前。客服场景相反,重点是别让它「灵活」,宁可答得死板也别答错政策。同一套模型,闸门位置不同。
什么情况调提示也救不回来
有三种情况别再折腾提示了。一是知识边界外又没有材料可查,任何提示都只是让它更会编,编得还更自信。二是任务本身超出了它的能力,比如精确计算、实时价格、内部业务数据,该换工具、换检索、换人来做。三是渠道本身有问题,模型被换过或降级,你怎么调都不稳。
判断渠道有个简单标准:同一份提示,在官方接口和当前渠道上表现差得离谱,先查渠道再查提示。别一边怀疑自己提示写得烂,一边在一个不可靠的通道上反复试。先用 /tools/verify 做一次在线实测,确认接口背后是不是你以为的那个模型,再回来调提示。
下一步如果你是给业务选接口,先到 /sites 和 /rankings 看各家渠道的实测与说明,再结合 /price-watch 核对当时的数字;提示写法和参数术语去 /ai-dict/category/tips 对一遍,别凭记忆改。→常见问题
让它"不要编造"有用吗?
有一点用,但不持久。更有用的写法是给它一条明确的退路句式,比如材料里没写就回答暂未收录,并说明需要查什么,比单纯禁止更容易被遵守。
降低随机性参数能消灭胡说吗?
不能。低随机性只是让输出更保守、更重复,知识空缺依旧存在,反而可能更自信地重复同一个错答案。它适合事实问答,不适合需要发散的场景。
加了知识库还会胡说怎么办?
多半是检索阶段没捞到对的片段,或材料本身有矛盾。先看召回内容,再要求答案标注片段来源,最后把定不了的问题转人工,不要一味改提示词。
为什么同一个问题换个模型答得不一样?
训练数据和后训练方式不同,知识覆盖与保守程度也不同。把稳定答错的题整理成小样本集,在候选模型上跑一遍,比凭感觉换模型靠谱,也便于后续复测。
怎么区分是模型胡说是还是渠道问题?
先用同一提示在官方接口和可疑渠道各跑一遍,对比是否出现答非所问、风格突变或明显降级;再用 /tools/verify 实测,两项都异常时先处理渠道。