WebCPM:首个开源的交互式网页搜索中文问答模型

在这里插入图片描述

  论文题目:WEBCPM: Interactive Web Search for Chinese Long-form Question Answering
  论文日期:2023/05/23(ACL 2023)
  论文地址:https://arxiv.org/abs/2305.06849
  GitHub地址:https://arxiv.org/abs/2305.06849

文章目录

  • Abstract
  • 1. Introduction
  • 2. Related Work
    • 2.1 Retrieval and Synthesis in LFQA
    • 2.2 Comparison with WebGPT
    • 2.3 Tool Learning
  • 3. Web Search Environment
  • 4. Data Collection
    • 4.1 Question Creation
    • 4.2 Interactive Web Search
    • 4.3 Answer Annotation
    • 4.4 Quality Control
    • 4.5 Dataset Statistics
  • 5. Framework
    • 5.1 Search Model
      • 5.1.1 Action Prediction
      • 5.1.2 Search Query Generation
      • 5.1.3 Supporting Fact Extraction
    • 5.2 Synthesis Model

Abstract

  长文本问答(long-form question answering, LFQA)旨在用详细的、分段式的回应来回答复杂的、开放式的问题。LFQA的事实范式需要两个步骤:信息检索(information retrieval),搜索相关的支持事实,以及信息合成(information synthesis),将这些事实整合成一个连贯的答案。
  本文介绍了中国首个LFQA数据集WebCPMWebCPM的一个独特之处在于它的信息检索是基于交互式网络搜索的,它实时地与搜索引擎进行交互。仿照WebGPT,作者开发了一个网页搜索界面,招募一些标注员,使用这个界面搜索相关信息,然后回答问题。同时,标注员的网页搜索行为会被记录下来。作者总共收集了5500个高质量的问答对,以及15372个支持事实(supporting facts)125954个网页搜索行为。对预训练的语言模型进行微调,以模仿人类的网页搜索行为,并根据收集到的事实生成答案。LFQA pipeline建立在这些微调模型的基础上,在数据集WebCPMDuReader上分别有32.5%47.5%的情况下,生成的答案并不比人类编写的答案差。

1. Introduction

  LFQA的目标是用详细的、段落长度的回答回答复杂的、开放式的问题。当前的LFQA解决方案一般遵循retrieve-then-synthesize范式,该范式包括两个核心成分:(information retrieval)(information synthesis)。前者搜索外部知识源(e.g., the web)以获得多样性相关的支持性事实,后者将收集到的事实整合成一个连贯的答案。
  传统LFQA范式的一个缺陷是,它经常采用非交互式(non-interactive)检索方法,即使用原始问题作为查询来检索一堆未经整理的信息。相反,人类能够通过与搜索引擎实时互动来执行交互式网页搜索(interactive web search)。对于一个复杂的问题,人类倾向于将其分解为多个子问题,并依次提问。通过识别和浏览相关信息,人类可以提高对主题的理解,并通过提出后续问题或相关术语来完善搜索。这种迭代的过程能够扩大他们的搜索范围,并改善他们得到的结果。总的来说,交互式的网络搜索不仅提供了对多样化信息源的访问,而且反映了人类如何解决问题的认知过程,这就有了更好的可解释性。
  2021年底OpenAI发布的WebGPT是支持LFQA交互式网页搜索的先驱工作。作者首先构建了一个由Microsoft Bing支持的网页搜索界面,然后招募标注员使用该界面收集信息来回答问题之后,他们对GPT-3进行微调,以模仿人类的网页搜索行为,并将收集到的信息组织成答案。在实验中,WebGPTLFQA方面表现出了超群的能力,甚至超过了人类专家。尽管具有令人印象深刻的性能,但WebGPT对大部人研究员们来说依然是个黑盒模型。这是因为WebGPT的接口、数据集和训练模型都没有开源,而且其核心设计元素的内部工作也不透明。这些因素使得该领域研究员很难理解LFQA交互式网页搜索的挑战,也很难继续探索这一研究方向。
  鉴于此,作者认为迫切需要在这方面提供一个无障碍的平台和公众基准。为此,首先构建了一个界面(Figure 1)来记录人类收集长文本问题相关信息时的网络搜索行为。在界面中用户可以执行预定义的动作,进行多轮的搜索和浏览。当在网页上找到相关信息时,他们可以将其记录为支持事实。同时,他们的上网行为也会被记录下来。在收集到足够的信息后,用户可以完成网络搜索,并根据收集到的事实回答问题。

在这里插入图片描述
  在界面的基础上,选择中文作为测试平台构建WebCPM,重点研究中文预训练模型的交互式Web搜索。WebCPM是第一个涉及交互式网络搜索的公共QA数据集,也是第一个针对中国LFOA的数据集。WebCPM包含5500个问答对,15372个支持事实和125954个网络搜索动作。下表()总结了WebCPM和相关QA数据集之间的差异。在现有的中文QA数据集中WebCPM拥有最长的问题、支持事实和答案这表明问题的复杂性和注释答案的丰富性。

在这里插入图片描述
  然后,提出了一个通用框架,包括:
  (1) 一个模仿人类网页搜索行为的搜索模型(search model),用于信息检索。具体来说,搜索模型包含三个模块,在界面上执行一系列预定义的动作:一个动作预测模块(action prediction module),一个搜索查询生成模块(search query generation module)和一个支持事实提取模块(supporting fact extraction module)
  (2) 一个合成模型(synthesis model),用来将收集到的事实为条件,生成连贯的答案。
  作者选择了8个具有代表性的预训练语言模型(PLMs),参数规模高达10B,并评估了它们的交互式web搜索和信息合成能力。作者发现,扩展模型大小对实现更好的性能至关重要。通过为搜索和合成模型选择性能最好的骨干PLM,将它们组合成一个整体的LFQA pipeline,并将其能力与人类进行比较。人工评估显示,LFQA pipelineWebPCM测试集上有32.5%的情况下生成的答案不逊于人类。当应用于百度的DuReader数据集(标注答案超过400个汉字的问题)时,LFQA pipeline在47.5%的情况下生成的答案优于黄金标注的答案,显示出令人满意的分布外泛化性能。实验还表明,作者的搜索模型超越了传统的非交互式检索方法。

2. Related Work

2.1 Retrieval and Synthesis in LFQA

  对于信息检索,之前的工作通常求助于本地存储库(如维基百科)。最近,人们对利用整个网络作为知识源的兴趣激增,这不仅拓宽了信息源的范围,而且使最新知识的实时覆盖成为可能。另一方面如何将检索到的事实组织成LFQA的合理而微妙的答案仍有待探索。一些人研究了人类如何制造复杂的答案,要么通过研究长文本答案的功能结构,要么探索如何在答案中组合例证,其他人则重新审视现有的LFQA评估指标。

2.2 Comparison with WebGPT

  作者在很大程度上遵循了WebGPT,并提出了改进的设计元素(appendix E),包括:
  (1) interface: 修改了WebGPT定义的动作,使其更容易模型学习,更方便用户使用;
  (2) framework:web搜索分解为3个子任务并实现模块化搜索模型。此外,还探索了如何教合成模型忽略无关事实并生成新颖内容;
  (3) evaluation and analysis: 除了评估WebGPT之后的整个pipeline外,还评估每个单独的模块。这种细粒度的评估帮助我们更好地理解这个框架的核心设计元素,以及模型学习到的人类行为。

2.3 Tool Learning

  最近的研究表明,PLMs具有操作工具的潜力,即工具学习(tool learning)PLMs可以在复杂的交互环境中做出顺序决策,例如机器人任务的规划,操纵搜索引擎,在电子商务网站上购物等。通过利用在预训练期间学到的丰富世界知识,PLMs可以执行与现实世界交互的基础操作。作者设想将这个基准作为未来在这一领域探索的测试平台。

3. Web Search Environment

  仿照WebGPT,作者构建了一个纯文本界面以记录人类在为长文本问题收集相关信息时的网页搜索行为。该界面由Bing Search API支持,支持10种主流的网页搜索动作,如(Figure 1)所示。当一个动作被执行时,这个界面会在窗口中做出响应。
  当执行Search动作时,界面进入search mode (Figure 1),它显示Bing为特定查询<query>推荐的链接。每个链接由一个标题和一个特定网页的简短快照组成。每个窗口一次显示三个链接,通过执行Scroll Down动作可以访问更多链接。
  当在当前窗口中找到第i个相关链接时,用户可以执行Load Page <i> 动作。界面将进入浏览模式(browsing mode) (Figure 6),并呈现从第<i>个网页的HTML中清理出来的文本。用户在窗口中一次可以查看的内容被限制在500个汉字以内,通过Scroll动作可以访问更多的内容。用户可以利用Quote动作提取当前窗口中连续的句子作为支持事实。为了能够提取横跨两个窗口的文本,Merge动作旨在将最后两个事实合并为一个事实。同时还为用户展示了所有现有的提取出来的支持事实。
  在浏览第i个页面后,用户可以使用Go Back动作返回到以前的搜索模式来访问其他链接。同时,可以随时发送精细化的查询。一般来说用户可以多次自由地与界面进行交互直到执行Finish动作或触发最大动作数量(例子中是100个)。该界面将自动记录在网页搜索过程中有意义的行为和观察。由于Bing系统的多语言特性,虽然本工作的重点是中文,但这个界面也可以灵活地适应其他语言。有关更多技术细节,请参阅appendix A

4. Data Collection

  作者雇佣了23位来自不同行业的标注员,他们都有丰富的搜索引擎使用经验。要求他们回答长文本问题,首先使用这个界面搜索相关信息,然后写出正确且合理的答案。在质量控制方面,聘请了8名熟悉QA研究的专家作为质量检验员。接下来,介绍数据集的构建过程,详细的注释指南留在appendix B

4.1 Question Creation

  在没有任何参考的情况下从零开始创建新的长文本问题代价较大,因此转向公共QA论坛作为问题来源。具体来说,让标注员参考英语QA论坛Reddit上的问题,然后用中文编写新的问题。这个创建过程的细节在附录appendix C中详细阐述。从经验上发现,以这种方式创建的问题往往需要多轮搜索和浏览,以收集足够的信息。

4.2 Interactive Web Search

  给定一个问题,要求标注员使用这个界面从可信来源搜索准确和相关的信息。这个过程可能包括多次Bing应发送精炼的查询,以及探索他们认为相关的各种网页。要求标注员在提取信息作为支持事实之前仔细判断信息的事实准确性,直到收集到足够的支持事实,搜索过程才结束。在创建的问题中,有26.2%是无法回答的,最终被丢弃,因为标注员无法找到足够的有用信息。

4.3 Answer Annotation

  在收集到足够的支持事实后,标注员会根据他们收集的信息写出合理的答案。作者为他们提供答案注释的指导,包括编写与问题相关且内容丰富的答案,保持逻辑的一致性、清晰性和连贯性,并以公正的方式提供观点。

4.4 Quality Control

  每个标注实例在被选择为最终数据集之前都要经过质量检查员的检查和批准。首先,检查人员将手动检查界面上记录的动作序列,并丢弃低质量的动作序列(例如,在其发出的查询中有明显的书写错误的那些);其次,他们将仔细检查收集到的支持事实,如果这些事实显然不足以回答问题,或与问题无关,或者事实不正确,相应的行动序列就会被放弃,上述程序会移除25%收集到的实例。对于剩余的实例,检查人员会仔细检查他们带注释的答案。如果一个答案与上述说明相矛盾,检查人员会将其返回给标注员,并指出哪个要求不满足。标注员可能会多轮修改他们的答案,直到修改后的答案达到标准。

4.5 Dataset Statistics

  最终,作者收集到了5500个实例,每个实例格式化为元组(question, web search behavior, supporting fact, answer),还记录了每个动作执行时的观察结果。在(Figure 2)中展示了一个示例以供参考,其中呈现了以下内容原始的问题、简化的动作序列、收集到的支持事实以及标注的答案。将数据集划分为{4700,400,400},作为训练、开发和测试集。平均来说,每个问题涉及执行22.9个搜索动作,发送2.5个查询,加载3.3个网页。每个动作的详细比例可视化图可参见(Figure 7)

在这里插入图片描述
在这里插入图片描述

5. Framework

5.1 Search Model

  将web搜索划分为3个子任务:action predictionsearch query generationsupporting fact extraction。每个任务都被转换为text-to-text的格式,使用生成式PLM训练3个单独的模块。通过组合这3个模块,构建了搜索模型,该模型执行一系列动作来收集相关信息。action prediction模块决定每一步执行哪个动作,如果该模块预测SearchQuote为当前动作,然后它调用其他两个模块来生成查询的内容或支持事实。
  每个模块根据时间步长 t t t 时接口的当前状态 S t \mathcal S_t St来执行推理。 S t \mathcal S_t St 包含原始问题 Q 0 \mathcal Q_0 Q0,当前搜索的查询 Q t \mathcal Q_t Qt,过去的动作序列 A t − 1 = { a 1 , … , a t − 1 } \mathcal A_{t-1} = \{a_1, \dots, a_{t-1}\} At1={a1,,at1},上一个和当前窗口中显示的内容 W t − 1 \mathcal W_{t-1} Wt1 W t \mathcal W_t Wt,当前支持事实 F t = { f 1 , … , f ∣ F t ∣ } \mathcal F_t = \{f_1, \dots, f_{|\mathcal F_t|}\} Ft={f1,,fFt},以及剩余动作数。如果执行一个动作,则 S t S_t St 的组件将被更新, W \mathcal W W 可以是搜索模式(search mode)下的三个链接,也可以是(browsing mode)下的特定页面内容,只保持最近的两个观察结果 W t − 1 \mathcal W_{t-1} Wt1 W t \mathcal W_t Wt 显示在窗口中,而不是将所有过去的观察结果串联起来,因为后者可能超过PLM的输入长度限制。

5.1.1 Action Prediction

  这个模块预测接下来要执行的动作。由于总共有10个可能的动作,动作预测可以被视为10类别的分类任务。以Search动作为例,用 { x 1 , … , x n } \{x_1, \dots, x_n\} {x1,,xn} 表示作为Search动作的标记化序列,其中 x ∗ x* x 表示一个特定的标记(token)Search的概率可以用公式表示为 P ( S e a r c h ∣ S t ) = P ( x 1 ∣ S t ) × ∏ i = 2 N P ( x i ∣ S t , x 1 , . . . , x i − 1 ) \mathcal P(Search | \mathcal S_t) = \mathcal P(x_1 | \mathcal S_t) \times \prod _{i=2} ^N \mathcal P(x_i | \mathcal S_t, x_1, ..., x_{i−1}) P(SearchSt)=P(x1St)×i=2NP(xiSt,x1,...,xi1)  在推理过程中,选择具有最高概率的动作在界面上执行。

5.1.2 Search Query Generation

  这个模块生成一个查询 Q t + 1 = { q 1 , … , q n } \mathcal Q_{t+1} = \{q_1, \dots, q_n\} Qt+1={q1,,qn}来进行Bing搜索,也可以用下述公式表示 P ( Q t + 1 ∣ S t ) = P ( q 1 ∣ S t ) × ∏ i = 2 ∣ Q t + 1 ∣ P ( q i ∣ S t , q 1 , . . . , q i − 1 ) \mathcal P(Q_{t+1} | \mathcal S_t) = \mathcal P(q_1 | \mathcal S_t) \times \prod _{i=2} ^{|Q_{t+1}|} \mathcal P(q_i | \mathcal S_t, q_1, ..., q_{i−1}) P(Qt+1St)=P(q1St)×i=2Qt+1P(qiSt,q1,...,qi1)

5.1.3 Supporting Fact Extraction

  假设在browsing mode下,当前窗口的内容是 W t = { w 1 , … , w ∣ W t ∣ } \mathcal W_t = \{w_1, \dots, w_{| \mathcal W_t|}\} Wt={w1,,wWt}。目的是从 W t \mathcal W_t Wt 中提取一个支持事实 f = { w i , … , w j } f = \{w_i, \dots, w_j\} f={wi,,wj},其中 1 ≤ i ≤ j ≤ ∣ W t ∣ 1 \leq i \leq j \leq | \mathcal W_t| 1ijWt。虽然一个朴素的解决方案是直接自动回归生成 f f f 的所有token,但这种解决方案在实践中存在推理速度慢的问题。作为一种替代方案,只生成给定 S t \mathcal S_t St 的前几个和最后几个token,形式上,最大化 P ( [ s ] , w i , … , w i + N f − 1 , [ e ] , w i + N f + 1 , … , w j ∣ S t ) \mathcal P ( [s], w_i, \dots, w_{i+N_f -1}, [e], w_{i+N_f +1}, \dots, w_j | \mathcal S_t) P([s],wi,,wi+Nf1,[e],wi+Nf+1,,wjSt),其中 [ s ] [s] [s] [ e ] [e] [e] 表示事实 f f f 的开始和结束的特殊token。在推理过程中,在解码开始和结束标记后,可以通过文本匹配在 W t \mathcal W_t Wt 中找到所需的序列。如果起始/结束token出现在 W t \mathcal W_t Wt 的多个位置,则总是从 W t \mathcal W_t Wt 中提取最长的序列,一个大的 N f N_f Nf 可以降低这种多位置问题的频率。注意,可以通过连续执行多个Quote动作来提取 W t \mathcal W_t Wt 中的不相交跨度。

5.2 Synthesis Model

  信息合成任务学习将一系列支持性事实组织成一个连贯的答案。然而,训练好的搜索模型并不像人类那样完美,它偶尔会收集不相关的噪声,这会影响生成答案的质量。为了补救这一点,通过引入噪声来破坏合成模型的训练数据中收集的事实。具体来说,给定一系列人类提取的事实 { f 1 , … , f N } \{f_1, \dots, f_N\} {f1,,fN},随机从其他训练实例中选取了一些不相关的事实 { f 1 ′ , … , f N ′ ′ } \{f_1', \dots, f_{N'}'\} {f1,,fN},将所有事实随机打乱后,将它们连接起来作为最终的输入。在训练过程中,对模型进行优化,以生成基于错误支持事实的人工注释答案,即最大化 P ( A n s w e r ∣ Q 0 , f 1 , … , f N , f 1 ′ , … , f N ′ ′ ) \mathcal P (Answer | \mathcal Q_0, f_1, \dots, f_N, f_1', \dots, f_{N'}') P(AnswerQ0,f1,,fN,f1,,fN) 。由于注释的答案不包含 f ∗ ′ f_*' f的信息,模型学会忽略无关的事实,只关注重要的事实进行生成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499946.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化构建平台(三)Linux搭建私有的docker镜像库之Harbor的安装和使用详解

文章目录 前言一、Harbor的安装第一步&#xff1a;安装docker第二步&#xff1a;安装docker-compose第三步&#xff1a;安装Harbor 二、Harbor登录三、Harbor项目管理第一步&#xff1a;创建项目第二步&#xff1a;推送镜像 四、Harbor权限控制五、Harbor自动清理多余的镜像手动…

HOOPS Communicator对3D大模型轻量化加载与渲染的4种解决方案

今天给大家介绍一些关于3D Web轻量化引擎HOOPS Commuicator的关键概念&#xff0c;这些概念可以帮您在HOOPS Communicator流缓存服务器之上更好地构建您自己的模型流服务器。如果您是有大型数据集&#xff0c;那么&#xff0c;使用流缓存服务器可以极大地帮助您最大限度地减少内…

通过jenkins进行部署java程序到centos上

1.通过jumpserver访问到centos上&#xff0c;准备下java环境 // step1: 先编辑下 vim /etc/profile// step2: 编写好环境变量 JAVA_HOME/usr/local/java export JAVA_HOME export ZOOKEEPER_HOME/opt/zookeeper/apache-zookeeper-3.7.0-bin PATH$PATH:$JAVA_HOME/bin:$ZOOKEEP…

IntelliJ IDEA上svn分支管理和使用

IntelliJ IDEA上svn分支管理和使用 从Subversion下载trunk下的代码 选择项目创建分支 右键 Subversion --> branch or Tag … 选择Repository Location:需要创建的项目 选择Any Location 分支的位置和名字 详细查看截图 切换到分支 选择项目右键Subversion --> Update …

DolphinScheduler——蔚来汽车数据治理开发平台的应用改造

目录 一、业务痛点 二、应用现状 三、技术改造 3.1 稳定性 3.1.1 滚动重启黑名单机制精准路由 3.2 易用性 依赖节点优化 补数任务优化 多 SQL 执行 原文大佬的这篇基于调度系统的数据治理案例有借鉴意义&#xff0c;这里摘抄下来用作学习和知识沉淀。 一、业务痛点 蔚…

小程序实现定位城市切换且城市根据首字母A-Z排序后端数据实现逻辑

场景&#xff1a; 话不多说后端提供数据实现步骤&#xff1a; 1.controller层 Api(tags {"[地区]-城市相关接口"}) RestController RequestMapping("region") Slf4j public class RegionController extends BaseController {Resourceprivate RegionServ…

MCBPS配置成SPI

MCBPS配置成SPI 典型的SPI接口 McBSP作为SPI主机 以McBSP为主的SPI接口如图所示。当McBSP被配置为主控器时,发送输出信号(DX)被用作SPI协议的SPISIMO信号,并且接收输入信号(DR)被用作SPISOMI信号。 表列出了将McBSP配置为主控器所需的寄存器位值。下表是有关配置要求…

HQL,SQL刷题,尚硅谷

目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 查询结果排序&分组指定条件 1、查询学生的总成绩并按照总成绩降序排序 2、按照如下格式显示学生的语文、数学、英语三科成绩&#xff0c;没有成绩的输出为0&#xff0c;按照学生的有效平均成绩降序显示 3、查询一…

OJ_二叉树已知先序遍历序列(有空叶子)求中序遍历序列

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> using namespace std;struct TreeNode {char data;TreeNode* left;TreeNode* right; };TreeNode* RecursiveBuildTree(int& i, char str[]) {char c str[i];i;if (c #) {re…

百度SEO工具,自动更新网站的工具

在网站SEO的过程中&#xff0c;不断更新网站内容是提升排名和吸引流量的关键之一。而对于大多数网站管理员来说&#xff0c;频繁手动更新文章并进行SEO优化可能会是一项繁琐且耗时的任务。针对这一问题&#xff0c;百度自动更新文章SEO工具应运而生&#xff0c;它能够帮助网站管…

LeetCode 2120.执行所有后缀指令

现有一个 n x n 大小的网格&#xff0c;左上角单元格坐标 (0, 0) &#xff0c;右下角单元格坐标 (n - 1, n - 1) 。给你整数 n 和一个整数数组 startPos &#xff0c;其中 startPos [startrow, startcol] 表示机器人最开始在坐标为 (startrow, startcol) 的单元格上。 另给你…

Docker中创建nginx-rtmp流媒体服务器

准备工作 需要安装好docker安装好镜像 docker pull alfg/nginx-rtmp docker run -it -p 1935:1935 -p 8080:80 --rm alfg/nginx-rtmp #创建临时容器&#xff0c;容器停止即删除安装好ffmpeg sudo apt update sudo apt install ffmpeg ffmpeg -version安装成功出现如下信息&…