Featured image of post (ICLR24)Chain-of-Verification Reduces Hallucination in Large Language Models

(ICLR24)Chain-of-Verification Reduces Hallucination in Large Language Models

Motivation

随着模型参数数量的增加,closed book QA 等任务的性能准确性会提高,并且更大的模型可以生成更正确的事实陈述。然而由于训练预料的长尾效应,即使是最大的模型仍然可能失败。当前大模型趋势于下一个单词的预测,并专注于他们的推理能力。通过鼓励语言模型在响应之前首先生成内部思想或推理链,可以提高推理任务的性能。我们遵循这一研究方向来研究如何以及何时使用基于语言模型的推理来减少幻觉。我们开发了一种称为验证链 (CoVe) 的方法,该方法在给定初始草稿响应后,首先计划验证问题以检查其工作,然后系统地回答这些问题,以便最终生成改进的修订响应。

Conclusion

通过将验证分解为一组更简单的问题,模型能够以比回答原始查询更高的准确性回答验证问题。

控制模型的注意力,使其无法关注之前的答案(分解的 CoVe)有助于减轻复制相同的幻觉

方法仅通过要求同一模型审议(验证)其答案,即可提供显著的性能提升。

Related Work

训练时矫正:强化学习、对比学习、其它

生成时:logits、self-check、置信度

外部工具:RAG、CoT

Method

我们开发了验证链 (COVE) 方法,其中模型首先 (i) 起草初始响应;然后 (ii) 计划验证问题以对其草案进行事实核查;(iii) 独立回答这些问题,以免回答受到其他回答的偏见;以及 (iv) 生成其最终验证的响应。

  1. 生成 baseline
  2. few-shot 生成验证问题
  3. 执行验证:可使用 RAG 或 Tool,本研究中仅使用模型自我验证
    1. Joint:步骤 2 和 3 在同一次对话中进行
    2. 2-step:Joint 中验证答案以初始响应为条件,可能会出现与原始基线回答类似的幻觉。因此将 2、3 分为单独的步骤
    3. Factored:所有问题都作为单独的 prompt 分别回答
    4. Factor+Revise:Factored 基础上集成了步骤 4, 分别验证原回答和验证回答的一致性并输出一致部分
  4. 验证回答

Experiments

  1. Wikidata API:“Who are some [Profession]s who were born in [City]?”共 56 个测试问题,每个问题包含~600 个 gold 实体
  2. WIKI-CATEGORY LIST:使用 QUEST 数据集,加上“Name some 。。。”组成问题,每个问题 8 个答案
  3. MultiSpanQA
  4. 人物传记长文本生成:FACTSCORE

未经指令微调的 Llama 65B + few-shot 作为 baseline,也和 Llama 2 7B Chat + zero-shot 进行了对比。bio 长文本上也测了 FACTSCORE 中的三个模型:InstructGPT、ChatGPT、PerplexityAI

Future Work

目前的工作未能完全消除幻觉,且仅对事实不准确的这一类幻觉

在验证执行步骤中使用检索增强,这可能会带来进一步的好处。CoT 等方法可增加可解释性,但也会加大花费