Building Open-Retrieval Conversational Question Answering Systems by Generating Synthetic Data and Decontextualizing User Questions
本文提出了一种从纯文本文档中自动生成合成的、带有标注的开放检索对话式问答(OR-CONVQA)数据集的流水线,随后利用这些数据集训练高效的问题重写器,从而使现有的检索系统和大型语言模型能够处理具备对话感知能力且以文档为依据的回答。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图在一座巨大且布满灰尘的图书馆里寻找一个特定的事实,但你面对的是一位从未听说过该图书馆布局的图书管理员。如果你问:“它多少钱?”图书管理员可能会感到困惑,因为他们不知道“它”指的是什么。这就是**对话式问答(Conversational Question Answering)的核心问题:人类说话时喜欢使用简写,使用像“它”、“那个”或“他”这样的词汇,这些词只有在记住我们刚才聊了什么时才有意义。为了解决这个问题,计算机使用了一种被称为检索增强生成(RAG)**的技巧。把 RAG 想象成给图书管理员一把神奇的放大镜,让他们在回答问题之前,能瞬间找到图书馆中正确的那一页。但问题在于:图书管理员需要知道如何向这把放大镜清晰地提出问题,并且他们需要大量的练习对话来学习如何这样做。
问题在于,对于新话题——比如某家特定保险公司的规则或一份新的软件手册——没有人已经写下了成千上高速的练习对话。雇人来编写既慢、又贵,还很枯燥。这篇论文正是针对这个痛点展开研究的。作者提出了一种巧妙的方法,利用公司现有的原始文档来为这些“AI 图书管理员”构建一个“训练健身房”。他们不仅仅是简单地复制粘贴句子;他们首先将文档拆解成微小、清晰透明的“事实卡片”(他们称之为命题/propositions)。然后,他们使用一个超级聪明的 AI 来想象人类会针对这些卡片问什么,从而创造出虚构但真实的对话。他们发现,这种将杂乱文档转化为清晰事实卡片,并从这些卡片生成合成对话的方法,比直接使用原始、杂乱的句子让 AI 寻找答案的效果要好得多。
合成对话工厂的故事
那么,当你没有数百万条真实的真人聊天记录可以展示时,你该如何教一个机器人成为一名优秀的对话者呢?本文的作者构建了一条由两步组成的流水线,将枯燥的文档转化为令人兴奋、真实的练习对话。
第一步:事实卡片工厂
想象你有一本关于新电子游戏的厚重说明书。里面充满了冗长复杂的句子,比如:“如果你在按住控制器的同时按下红色按钮,角色就会跳跃,但前提是电池电量较低。”这对搜索引擎来说简直是场噩梦。作者的流程首先获取这些文档,并要求一个强大的 AI(他们使用了名为 Claude 3.5 的模型)对其进行拆解。这个 AI 就像一位一丝不苟的编辑,将长句切碎成短小、独立的“事实卡片”。它去除了像“它”或“那个”这样令人困惑的指代,并确保每张卡片都是一个完整、自洽的思想。
至关重要的一点是,AI 被告知只能为人类真正关心并可能提问的内容制作卡片。它会忽略掉像“请拨打 555-0199 联系我们”这类无聊的部分,除非有人真的可能问到它。通过他们的文档集,他们为私有公司数据生成了超过 11,000 张事实卡片,并为公共政府文档生成了超过 14,000 张。这些卡片成为了 AI 图书管理员最终要搜索的“真相”。
第二步:对话模拟器
现在他们拥有了一堆事实卡片,于是流程要求 AI 想象一场对话。它选取一小组这些卡片,并指令道:“假装一个人正在针对这些事实进行提问。”随后,AI 生成一段来回互动的聊天。这里有一个神奇的技巧:对于“人类”提出的每一个问题,AI 都会编写两个版本。
- 真实人类版: 这是人们实际说话的方式,充满了简写和省略。例如:“它多少钱?”(指的是前面提到的某个东西)。
- 清晰版: 这是将同一个问题重新改写,使其在脱离上下文时也能完全理解,例如:“这份保险单多少钱?”
系统还会追踪究竟使用了哪些事实卡片来回答每个问题。这便创造了一个完美的训练数据集,其中计算机既知道那个混乱的问题,也知道清晰的版本、答案以及来源。
为什么“事实卡片”优于“原始句子”
作者并不仅仅满足于制造对话;他们还测试了一个重大假设。他们想知道:使用这些干净的“事实卡片”来训练 AI,是否比直接将原始文档切分成句子效果更好?
这就像是在草堆里找针。如果你使用原始句子,草堆里充满了多余的稻草——无关的词汇、冗长的解释和混乱的上下文。如果你使用事实卡片,你已经把稻草都剔除掉了,只剩下了针。
当他们测试时,结果非常明确。基于干净事实卡片构建的对话带来了更好的搜索结果。AI 能够显著更快、更准确地找到正确的信息。相比之下,使用原始句子就像是在一个被胶水粘在一起的草堆里找针;搜索引擎会被噪音搞糊涂。作者发现,虽然原始句子在保持对话流畅性方面表现尚可,但在帮助 AI 真正“找到”答案方面却表现糟糕。
教会机器人独立思考
一旦拥有了这些成千上万的合成对话,他们就用它们来训练“轻量级”AI 模型。与用于生成数据的那些庞大超级 AI 相比,这些模型更小、更快、更便宜。
他们训练了两类助手:
- 重写器(The Rewriter): 一个小型模型,学习如何将一个混乱、依赖上下文的问题(如“它多少钱?”)转化为一个清晰的问题(如“保险多少钱?”)。
- 检索器(The Retriever): 一个小型模型,学习如何根据清晰的问题,瞬间在图书馆中找到正确的资料卡片。
结果令人印象深刻。这些经过合成数据训练的小型、廉价模型,其表现几乎与每次都使用那个巨大的、昂贵的 AI 进行重写的模型一样出色。事实上,在某些测试中,在他们的合成数据上训练的小型模型,甚至比在难以获取的大规模人类编写数据集上训练的模型表现得还要好。
他们还发现了一个巧妙的捷径。他们教重写器去检查一个问题是否已经足够清晰。如果用户问的是“这份保单的价格是多少?”(这本身就很清晰),重写器就会学会说“无需重写”,并跳过这一步。这节省了时间,使许多问题的处理时间缩短了一半。
它在现实世界中有效吗?
为了确保这不仅仅是一种在虚假数据上奏效的方法,他们将系统应用于来自政府网站(如保险和学生资助)的真实数据集。他们特意丢弃了这些真实数据集中的人工编写训练数据,以证明其方法可以从零开始运作。
结果经受住了考验。他们仅用生成的合成对话训练出的这些小型模型,在处理真实文档时,寻找正确答案的能力远高于直接使用原始、混乱的问题。虽然使用大型 AI 进行实时重写会稍微好一点,但也明显更慢、更贵。他们的小型训练模型找到了一个平衡点:快速、廉价且高度准确。
总结
这篇论文表明,我们不需要等待人类写出数百万个完美的对话来构建智能 AI 助手。相反,我们可以利用现有的文档,将其转化为干净、易碎的事实,并让强大的 AI 去想象这些对话。这种合成数据足以训练出能够有效处理现实世界问题的更小、更快的模型。
然而,作者也谨慎地指出,这并不是一根万能魔杖。他们的系统仍然依赖于一个大型、昂贵的 AI 来生成初始训练数据。而且,虽然小型模型在寻找答案方面表现出色,但它们仍然需要那个大模型来为用户撰写最终的回复。但在处理从海量文档中寻找正确信息这一难题时,这种“合成工厂”的方法似乎是一个游戏规则的改变者,它能将杂乱的手册转化为清晰、可搜索的知识,而无需配备专门的人工标注团队。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。