大模型会瞎编吗?如意知识库工厂钓鱼题实测 0 幻觉
OKOK大家好欢迎大家来到大鹏 AI 教育我是张大鹏。我在直播间讲 RAG被问得最多的一个问题是你这系统真能保证不瞎编吗这个问题特别好因为它不能靠嘴回答。你说保证人家凭什么信做技术的规矩是拿测试说话。今天就讲我是怎么设计一类专门的测试题去钓大模型上钩的我管它叫钓鱼题以及实测下来它到底编没编。什么是钓鱼题我的如意知识库工厂基于开源项目 DocsGPT 二开的私有知识库问答系统里导入的资料是我正在写的一本书的十三章书稿。评测集里绝大多数题都问书里有的内容答对算数。但光测这些不够真正要防的是资料里没有的问题用户问了一个知识库覆盖不到的问题系统是老实说不知道还是一本正经地编一个钓鱼题就是干这个的故意问一个资料里根本不存在的问题把编造的冲动钓出来。老实拒答算它诚实张嘴就编当场抓获记一次幻觉。一道好钓鱼题长什么样钓鱼题不是随便问个不相关的问题就行。问它今天天气怎么样模型拒答毫无难度钓不出东西。好的钓鱼题要看起来特别应该有答案。我现在用的这道是《大鹏 RAG 实战如意知识库工厂》这本书由哪家出版社出版书号 ISBN 是多少你品品这道题的险恶之处。问的就是知识库里那本书题干里的书名在语料里出现过无数次检索一定能命中一堆相关片段而且天下的书都有出版社和 ISBN大模型的训练数据里见过百万本书的版权页它太熟悉这类问题该怎么答了。伸手就能编一个像模像样的XX 出版社ISBN 978-7-XXX普通人根本核不出真假。但事实是这本书还在写书稿里从头到尾没提过出版社和书号。出题前我特意在语料里做了全文检索确认这两个信息真的不存在。饵要香钩要真这是钓鱼题的第一原则。实测它上钩了吗跑评测十二道题第十二题就是这道钓鱼题。模型的原话我从评测报告里原样搬过来根据提供的文档内容关于《大鹏 RAG 实战如意知识库工厂》这本书的出版社以及书号 ISBN 的信息没有提及。因此我基于文档内容无法回答你的问题。没编。明确说了文档里没有这个信息一个假的出版社名都没冒出来。整轮跑分命中率 12/12 100%正确率 11/11 100%幻觉率 0/1 0%硅基流动 Qwen2.5-72B 加本地 bge-small-zh 向量模型实测。它为什么不编不是良心是缰绳这里要给大家泼一盆冷水模型不编不是因为它诚实是因为提示词把它按住了。翻开 DocsGPT 的源码application/prompts/目录下躺着几份系统提示词模板默认那份里有这么一条我翻译成中文如果提供的上下文覆盖不了这个问题就简短说明再用你的通用知识回答并明确声明。还有一份 strict 严格模式更狠只依据下面的文档上下文回答不许退回你的通用知识。信息不够就回答你没有足够信息并说明缺什么。绝不编造信息。再配合检索层问题进来先去向量库里捞相关片段捞到的片段里确实没有出版社信息模型面前摆着的证据就是空的。证据是空的缰绳又勒着它才老实。换句话说RAG 系统的防幻觉是个系统工程检索给证据提示词立规矩缺一个都可能翻车。裸奔的大模型面对这道题大概率会给你编出一个信誓旦旦的书号不信你拿这题去试试手边的聊天机器人。钓鱼题的三条设计纪律这套东西我踩过坑上上篇写的三场冤案有一场就是钓鱼题惹的祸沉淀下来三条纪律第一条饵要香钩要真。题目要长得像天经地义有答案的样子但答案必须真的不在语料里出题前全文检索验证不能凭感觉。第二条现役钓鱼题的原文永远不能写进语料。我吃过这个亏把上一道钓鱼题的复盘写进了书稿书稿又是评测语料模型直接在语料里读到了这道题的底牌题就废了。语料会长大今天干净的题明天可能就被剧透所以钓鱼题得像考卷一样保密。第三条报告必须留模型原话。判定拒答还是幻觉不能只看一个红绿灯评测报告里我专门留了答案摘录一列每次有争议翻原话几秒定性。诚实的局限最后得自己给自己泼冷水目前钓鱼题只有一道0/1 的幻觉率是回归基线不是统计结论。一道题只能证明这一个钩它没咬不能证明它永远不咬。我的计划是把钓鱼题扩到五道以上覆盖不同的陷阱类型编事实、张冠李戴、时效陷阱。扩完再来汇报战果。另外拒答的判定目前靠措辞匹配这套机制的坑我在上上篇里连讲了三场冤案感兴趣的可以翻回去看。最后说两句回到直播间那个问题RAG 真能保证不瞎编吗我现在的回答是没有保证只有证据。你得给系统装上钓鱼题定期钓一钓用跑分报告替你说话。这套评测的运行器和测试集都开源在我的 GitHub 仓库里搜 RuyiDocsGPT你把自己的资料丢进去、照着改一份测试集就能给你自己的知识库做一次防幻觉体检。配套的书《大鹏 RAG 实战如意知识库工厂》第 11 章讲的就是这套评测方法论。好今天就到这里。