每日面试题-5.21
全部评论
检索增强,给它外挂知识库参考;提示约束,要求带引用或分步推理;结果验证,让另一个实例交叉检查。
增加RAG或知识库检索,让回答基于真实数据;增加结果校验和规则约束,例如关键词过滤、数据一致性检查;对于高风险场景引入人工审核;通过优化Prompt和减少模型自由生成范围来降低幻觉概率。

接入高质量向量库,生成前先检索,只基于检索结果回答。用提示词工程的方式降低幻觉概率——加约束:“不知道就说不知道,禁止编造”;强格式:要求分点+引用来源+置信度(0-1);思维链:强制step-by-step推理,每步给依据。
我之前遇到过 Agent 会自己编 API、编字段名,后来发现是 prompt 里没给明确 schema。后面改成 JSON Schema + function calling 之后稳定很多。所以很多幻觉其实是“约束不够”。
如果 Agent 老是一本正经胡说八道,我会先看是不是 prompt 太模糊了。因为模型其实特别喜欢“猜”。像“如果不确定请直接返回未知”这种约束,很多时候比疯狂堆提示词更有效。
我自己的处理方式是尽量让 Agent “少自由发挥”,比如限制回答范围、要求必须引用来源、不能自己补全未知信息。很多时候规则一收紧,效果就会稳定很多。
部署时我会加入一键反馈机制,用户可以标记“这句话像编的”或“这看起来不对”。每次标记都会记录上下文和Agent输出,形成幻觉数据集,定期用于惩罚性调优。这样系统会在真实使用场景中不断自我修正,越用越可靠。
我会在微调阶段专门构造一批典型的幻觉样本(例如故意给出矛盾或虚构信息),并与正确样本组成对比对进行训练。让Agent反复识别哪些回答是“可能错了”,逐步建立起对不确定问题的敏感度和主动拒答倾向。这是从模型内部提升鲁棒性。
在工程实践中,我会为Agent设置一个置信度评分模块,低于90%的输出自动转为“不确定”或“需要人工确认”状态。这让Agent学会对不知道的事情说不知道,而不是强行编造。毕竟,诚实的“未知”远比漂亮的谎言安全。
我会强制Agent为每个结论附上推理链条和参考来源的指针。一旦发现无法溯源的片段(比如编造的数据、论文或不存在的链接),就将其判定为幻觉并丢弃。这种方式能有效过滤掉“说得很真但无出处”的内容,保证系统输出透明可验证。
遇到Agent输出可疑内容时,我会同时调用另一个不同架构或训练数据的Agent进行交叉验证。如果两者结论不一致,立即标记为潜在幻觉,触发回退机制——要么重新生成,要么直接拒绝回答。这就像写论文时引用多个信源,避免单点错误。
首先需要调整模型的topK,topP,temperature参数;其次要优化prompt,需要明确输入输出的格式还有约束;再次,利用上下文中间可能缺失的特点,尽量的保证把有效信息放在首尾位置,确保关键信息不会丢失;然后需要建立一个外部的知识库,通过RAG检索,确保信息的准确性;最后,需要模型的自我反思能力,对于输出的内容做出一个自我评判,用来调整。
可以使用提示词约束:如“必须用”,可以将复杂问题拆成子任务,验证子任务的结果正确性,可以用另一个agent来作为参考,比较两个agent的输出,对比生成内容与已知是否存在逻辑矛盾
引入外部事实锚点 (Grounding)、设计严密的提示词、引入“自我反思”与“多智能体博弈、调整模型采样参数
相关推荐
查看2道真题和解析 点赞 评论 收藏
分享