链载Ai

标题: Adobe公司RAG实践——检索增强生成用于领域特定问答 [打印本页]

作者: 链载Ai    时间: 昨天 09:36
标题: Adobe公司RAG实践——检索增强生成用于领域特定问答

摘要

问答(QA)已成为大型语言模型先进发展中的重要应用。通用预训练的大型语言模型用于问答并未经过专门训练以正确理解特定领域(如金融、医疗保健、教育和产品客户服务)的知识或术语。为了更好地满足领域特定理解的需求,我们为Adobe产品构建了一套内部问答系统。我们提出了一个新颖的框架,用于编制大型问答数据库,并开发了检索感知微调大型语言模型的方法。我们展示了微调检索器会显著改善最终生成结果。我们的整体方法在生成过程中减少了幻觉,同时保持最新检索信息以进行上下文基础。

引言

随着先进的自然语言处理技术,大型语言模型(LLMs)在许多领域和应用中展现出令人印象深刻的能力,包括聊天机器人、语言翻译、文本摘要和个性化机器人辅助。问答已成为大型语言模型(LLMs)的重要应用,增强了聊天机器人在医疗保健、金融、教育和客户服务等多个领域的能力。

然而,传统的问答系统和基于LLMs的通用问答系统并未经过专门训练以理解特定领域的知识和术语。它们在有效检索和呈现相关信息方面会面临挑战,尤其是在动态更新的数据库中。例如,用户对Adobe产品的问题更多涉及如何使用和产品特性。而针对Adobe产品之外的问答系统并未经过专门训练以正确理解Adobe术语。此外,应用和功能经常变化,现有系统通常无法获取有关Adobe产品的最新信息。因此,它们无法提供产品内交互(例如,将答案中提到的菜单项链接到产品中的实际菜单项)。如果产品数据基于云,隐私风险也是一个问题。此外,外部解决方案难以跟上Adobe产品的最新变化(例如,功能从测试版转为正式版)。

在这项工作中,我们开发了一个新框架,以找到用户对Adobe产品提出的关于Adobe产品的问题的答案(例如,“如何在Acrobat中删除PDF中的所有高亮显示”)。为了解决这些挑战,我们的方法建立在基于检索的问答系统之上。我们的智能检索系统检索最有用的最新相关内容。检索系统以基于Adobe数据和用户行为数据(点击)的自监督方式进行训练。我们发现,将检索器在领域特定文档和点击数据上微调会显著改善检索结果的nDCG和质量。然后,我们提出了一种新颖的检索感知微调大型语言模型的方法,以获得用于Adobe产品的问答系统。我们系统地增强此系统以提高其问答性能,确保用户获得及时准确的信息。

总的来说,这项工作的贡献可以总结如下:

相关工作

基于LLM的问答系统 最近大型语言模型已得到很好的发展,在许多领域和应用中表现出色。具有数十亿参数并经过大量数据训练的模型可以帮助人类完成简单的语言理解或生成任务。为了适应特定任务或与人类偏好一致,这些模型通常需要进行微调。Bakker等人对大型语言模型进行微调以使摘要输出与人类一致。在我们现实生活中的应用中,Singhal等人评估了PaLM在医疗问答和理解任务中使用多种提示策略。使用多种提示策略,Flan-PaLM在基准MultiMedQA的每个数据集上均取得了最先进的准确性。Yu等人探索了基于理由的提示机制与大型语言模型在法律问答任务中的应用。Zhou等人提出,强大的大型语言模型已经获得了知识和能力。该模型只需要少量数据进行指导微调。

检索增强问答系统 尽管大型语言模型可以生成流畅或自然的文本,但可能对源内容不忠实,即产生幻觉。参数化知识偏见是大型语言模型产生幻觉的原因之一。为了减轻幻觉,一些工作致力于将检索增强架构纳入系统中。Lewis等人提出了RAG,一种用于检索增强生成的通用微调方法。RAG结合了预训练的参数化和非参数化存储器,以实现更好的语言生成。Li等人提出了医疗聊天模型ChatDoctor,使用医疗领域知识在LLaMA上进行微调。该模型使用真实患者-医师对话和介绍中的医疗数据进行微调。借助外部知识库,ChatDoctor模型可以检索在线和离线的医疗领域知识,回答关于最新医学术语和疾病的医疗问题,减轻了LLMs中的幻觉和错误。

图1:我们提出框架的概述。

方法

本节将更详细介绍我们的框架。我们首先介绍我们的检索系统,该系统检索最有用的最新相关内容。预训练模型会混淆Photoshop和Photoshop Express,Premiere Pro和Premiere Rush等。我们提出通过产品识别进行查询增强,以提高生成的整体准确性和质量。我们根据Adobe数据和我们训练的检索器微调大型语言模型,以理解用户的问题和上下文,并提供有用的回应。

框架概述

我们使用多个数据源,包括Adobe Helpx文档标题和描述、Adobe社区问题、LLM生成的Helpx文档问题以及YouTube视频转录,利用我们微调的语言模型生成向量存储。当用户提出问题时,会执行相似性搜索,以在我们的语料库中找到最接近的问题匹配项。将最相关的答案与用户查询一起传递给我们微调的LLM,然后LLM为用户提供上下文响应。图1显示了我们提出框架的概述。

检索器

检索器训练数据集

Adobe Helpx(helpx.adobe.com)每年吸引数百万独立访问者,寻找与Adobe产品相关的教程和学习内容(Adobe Helpx文章、Adobe帮助视频)。为了理解用户行为,我们利用用户查询helpx和Adobe社区内容文章的点击日志生成我们的数据集。我们使用2022年1月至2023年6月的日志作为训练和评估集。该数据集提供了一个庞大且多样化的数据池,对于学习用户查询和我们的检索文档的良好表示至关重要。表1展示了数据集中的一个示例行,表2总结了整体数据集统计。

对于每个文档,我们利用文档标题和描述来表示文档的要点。标题通常为5-20个词,而描述通常为20-50个词,整个文档可能有多页长。我们的数据集中的每个文档都专注于特定任务,因此我们发现标题和描述是文档的恰当表示,而不是传递完整文档文本。

表1:检索器训练数据集中的示例行。

表2:数据集的总结。

标题和描述的一个示例如下:

这一点很重要,因为对于一个查询,可能有多个点击的文档,我们希望更关注点击次数较高的对。我们取最大点击比率的对数,因为这样可以使点击次数较少的文档也参与学习过程。

检索模型训练

为了准确学习查询和文档的语义表示,我们利用对比学习。对比学习是一种技术,允许在表示空间中对相似样本进行紧密建模,而无需明确标签。该模型以自监督方式训练,我们利用单个模型来表示查询和文档。这使我们能够将它们都带入相同的表示空间。

我们利用在句子相似性任务上预训练的transformers(MPnet),因为它们擅长使用注意力理解长文本。我们在训练时使用Adam优化器和均值池化。我们还尝试了最大池化,以及第一个令牌池化(类似于cls池化),发现均值池化效果最好。

此外,我们利用我们的相关性度量(方程1中的最大点击比率的对数),并将其用于加权的交叉熵损失函数。这使我们能够根据文档对查询的相关性对查询-文档损失进行加权。这一点很重要,因为它在相关文档集合内添加了固有的排名信号。

图2:检索器的训练过程。

图2展示了我们的训练过程。查询和文档文本一起传递到网络的训练批次中,并从生成的表示中计算余弦相似度。基于句子相似性分数最小化均方损失。两个transformer实例之间共享相同的权重,从而使我们能够一起学习查询和文档的表示。

检索索引创建和数据库

为了创建我们的检索索引,我们利用主要来源(Adobe Helpx文档、Adobe社区问题)以及派生来源(生成的问答对)提供丰富多样的检索集。我们使用我们微调的模型生成所有来源的表示。我们利用以下来源:

  1. 主要来源






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5