部落冲突幻觉阵容怎么搭配(部落冲突完美阵型)
写在前面
RAG 其本身是增强知识,降低模型幻觉的一种办法,但在实际工程中,我们会面临以下诸多问题:
1.RAG 能降低幻觉,但不能解决幻觉,如何评测、检测模型的幻觉?
2.Prompt 中是让模型严格遵循参考信息作答,还是让模型仅仅参考,并结合自己的知识和理解来作答。这两种方式该如何选择,还是结合起来一起用,怎么用?
3.如果召回模块未提供参考信息,那么模型是自生成回复,还是拒答?
等等
笔者这期通过两篇关于幻觉的论文来探讨一下在实际工程中该如何处理幻觉
论文一:“Learn to Refuse: Making Large Language Models More Controllable and Reliable through Knowledge Scope Limitation and Refusal Mechanism” (Cao, 2023, pp. -)
简而言之,这篇论文讨论的方向主要是让模型在事实问题场景上学会拒答(多说多错,不如不说…)。
注:论文中幻觉的分类为:输入冲突(Input-Conflicting Hallucination),上下文冲突(Context-Conflicting Hallucination),事实冲突(Fact-Conflicting Hallucination),笔者直接直译的。
右边的部分也就是论文的实现方案,关于evidence, reasoning 这一块笔者在前面文章中也有讨论过这里暂不展开,我们这里主要关心“Can answer”的实现。
论文认为LLM 具有根据自己的知识或者提供的信息来判断该问题是否能被回答的能力,笔者贴一下这篇论文的标题:
“Do large language models know what they don’t know?” 后续笔者也会读一下这篇论文~,看到这里基本上思路就明晰了,简单的说就是在回答之前做一下判断,这个问题能不能回答,不能回答就直接 REFUSAL…..
而具体的判断依据主要有两个:
1.召回文本中的相关性分数来判断,低于指定阈值就不回答
2.在生成之前让模型判断一下这个问题能不能回答
论文还写了一些知识库从0构建的过程,大概意思就是“hard judge”这个判断很依赖知识库的准确度。看到这里笔者产生了一个问题,如果问一些LLM 无关紧要的问题,比如“你好”,知识库中不存在该上下文信息,那么”hard judge”是不是判断就不回答了~,针对该类似情况,如果再让模型判断一下能不能回答的话,那么“hard judge”感觉就意义不大了。
果然,论文中还特别表明知识库是有限且经过验证的(换句话说人工标记过的,绝对正确的),实际项目中能达到这个条件的也许只有在指定教科书(多次人工校验且绝对正确)内容的问答上或许可行,其他地方基本上不可能。
其他的内容笔者就不展开了,简单的说这个论文只论证了一件事,生成之前先让模型判断一下是否生成这个流程对于幻觉处理是有效果的。确实是有效果的(特别是在垂直领域,检索的知识有限的情况下),笔者实际工程中很早就用到了该方法,只是没想到这也能发一个论文~~~
论文二:“Correction with Backtracking Reduces Hallucination in Summarization” (Liu 等, 2023, p. 1)
LLM+RAG 的方式本质上是让模型做MRC(阅读理解)然后写 summary ,这个论文提出了一种“Correction with Backtracking”的方案来降低该阶段的幻觉,我们来一起看下具体的实现。
我们还是先来看一下论文对summary 任务中幻觉的定义:“The summary S for a context document C contains hallucinations if there exists a span in S which is not supported by C” ,简而言之,如果生成的文本不能在参考信息中溯源那么就可以认为产生了幻觉。
基于以上幻觉的定义,那么检测的方法必然是围绕着如何判断生成的文本和参考信息中的相关性。来看一下论文的具体方法实现:
从图中就能看出来,整体的流程就是在解码阶段做递归回溯,如果下层节点的所有分值都小于指定阈值,那么就进行回溯找下一个节点。算法原理很简单,这里就不做过多展开了。
这个方法理论上是可行的,但实际效果的上下限就在于分值计算逻辑上,以待生成的文本和参考信息中的文本做一个是否包含的判断还是相对比较简单了。笔者个人觉得这个办法在类似法律相关的严谨场景(幻觉容忍度非常低),再加上拒答机制一起使用,应该会有不错的效果。
写在后面
幻觉其实在某种程度上代表了多样性和创造性,大模型成也幻觉,败也幻觉。实际中还是得根据场景的需求来灵活调整,因为transformers的架构从原理上是不可能彻底干掉幻觉的,而如何细粒度的控制幻觉当前业界并没有一个成熟的解决方案。还是得多尝试…