【中科院计算所】WSDM 2024冠军方案:基于大模型进行多文档问答

news2024/11/20 14:20:06


作者:李一鸣 张兆 中科院计算所

会话式多文档问答旨在根据检索到的文档以及上下文对话来回答特定问题。 在本文中,我们介绍了 WSDM Cup 2024 中“对话式多文档 QA”挑战赛的获胜方法,该方法利用了大型语言模型 (LLM) 卓越的自然语言理解和生成能力。

在方案中,首先让大模型适应该任务,然后设计一种混合训练策略,以充分利用领域内的未标记数据。 此外,采用先进的文本嵌入模型来过滤掉潜在的不相关文档,并为模型集成设计和比较了几种方法。 凭借所有这些技术,我们的解决方案最终在 WSDM Cup 2024 中排名第一,超越在很大程度上是其竞争对手。

关键词:问答;大语言模型;文本嵌入模型;混合训练

Github开源地址:https://github.com/zhangzhao219/WSDM-Cup-2024

方案简介

对话式问答旨在根据对话中识别的用户意图生成正确且有意义的答案,在现代搜索引擎中发挥着至关重要的作用和对话系统。 然而,这仍然具有挑战性,特别是对于当前或趋势主题,因为在语言模型的训练阶段无法获得及时的知识。 尽管提供多个相关文档作为上下文信息似乎可行,但该模型仍然面临着被大量输入淹没或误导的风险。 基于来自小红书的真实文本数据,WSDM Cup 20241提出了“对话式多文档QA”的挑战,以鼓励对问题的进一步探索。

最近,ChatGPT 等大模型在多项自然语言处理任务上表现出了令人印象深刻的性能。 通过利用大模型的理解和推理能力,有望解决这一挑战。 然而,包括训练配置的设计和不相关文档的存在在内的许多因素仍然阻碍了生成质量的提高。

在这项工作中,为了激活 LLM 的能力,我们首先将任务表述为具有不同 LLM 的多轮条件生成问题。 然后,进行多阶段混合训练管道,将未标记的评估集合并为额外的训练语料库。为了删除潜在的不相关信息,我们实施了某些策略,包括最先进的嵌入模型,即 Nomic Embed 计算输入和文档之间的相似度得分。 最后,在选择最佳响应作为模型集成的最终答案之前,考虑了几种方法来近似评估各种大模型生成的答案的质量。 实验结果表明,我们的解决方案在每个评估指标上都取得了最高分,远远超出了我们背后的团队,而消融研究也表明了所提出技术的有效性。

对话式多文档问答挑战赛

「对话式多文档问答」挑战赛 Conversational Multi-Doc QA

赛题任务

每个月有数以亿计的用户在小红书上分享和发现生活的美好,并在小红书海量笔记中获取相关信息和实用的生活经验。小红书利用先进的 AI 技术,如深度学习及时下流行的大语言模型等,提升用户个性化的互动体验,更好地满足他们对高效、准确信息获取的需求。

在多轮对话场景中,为用户的查询提供准确且全面的回答是一项充满挑战的任务,在本次比赛中,我们将模拟真实的多轮对话场景,提供对话历史、当前查询 query、以及搜索系统检索到的相关笔记。参赛者的系统被要求依据这些输入信息,理解用户查询意图并输出面向查询 query 的文本回答。我们将评估回答的准确性与完善性。通过这个挑战,期待能探索和提高对话系统在面对多轮上下文和多样化搜索结果时,生成更准确,完善回答的能力,更好地理解和满足用户的需求,获取更加高效、准确的信息。

数据集

数据集包括训练/验证/测试数据,每个都将以“json”格式给出,每个样本包含以下字段:

  • uuid:字符串,每个示例的唯一标识符
  • history:字符串元组列表,顺序 QA 对
  • documents:字符串列表,最多5个参考文档
  • question:字符串,用户问题
  • answer:字符串,参考答案(未在评估/测试数据中给出)
  • keywords:字符串列表,最好在参考答案中提及的参考关键字(训练/评估/测试集中均未给出)

数据样例如下:

{
"uuid": "xxxxx",
"history": [
	{"question": xxx, "history": xxx},
	{"question": xxx, "history": xxx},
	...
],
"documents": 
[
"Jun 17th through Fri the 21st, 2024 at the Seattle Convention Center, Vancouver Convention Center.", "Workshops within a “track” will take place in the same room (or be co-located), and workshop organizers will be asked to work closely with others in their track ...", 
...
],
"question": "Where will CVPR 2024 happen?",
"answer": "CVPR 2024 will happen at the Seattle Convention Center, Vancouver.",
"keywords": # Will not be given.
[
"Vancouver", "CVPR 2024", "Seattle Convention Center"
] 
}

评估指标

指标:

  • 关键词召回:答案是否包含事实以及精确匹配的特定关键词。
  • 字符级 ROUGE-L :通过模糊字符级匹配,答案是否与参考答案相似。
  • 单词级ROUGE-L :通过模糊单词级匹配,答案是否与参考答案相似。

排名规则:

  • 整体表现将通过检查第二阶段(测试集)排行榜上上述指标的平均排名来确定。
  • 如果团队平均排名相同,则优先考虑单词级 ROUGE-L分数较高的团队。

方案思路

基于LLMs实现多文档问答

为了使 LLM 适应这项任务,我们仔细设计了输入格式,并按以下顺序将每个文本部分连接在一起:
u = { q 1 } { a 1 } { q 2 } { a 1 } . . . { q n } { a n } { q } { d 1 } { d 2 } . . . { d n } { a } u=\{q_{1}\}\{a_{1}\}\{q_{2}\}\{a_{1}\}...\{q_{n}\}\{a_{n}\}\{q\}\{d_{1}\}\{d_{2}\}...\{d_{n}\}\{a\} u={q1}{a1}{q2}{a1}...{qn}{an}{q}{d1}{d2}...{dn}{a}

请注意,我们在上面的拼接中排除了特殊字符(例如<s>、[INST])。

然后,可以通过最大化整个序列的对数似然来训练模型 θ \theta θ:

L g e n = − ∑ i = 1 u m i l o g p ( u i ∣ , u < i : θ ) L_{gen}=-\sum_{i=1}^{u}m_{i}log p(u_{i}|,u<i:\theta) Lgen=i=1umilogp(ui,u<i:θ)

其中 p ( u i ∣ , u < i : θ ) p(u_{i}|,u<i:\theta) p(ui,u<i:θ) 代表在第i步选择来自于 u < i u<i u<i之前字符 u i u_{i} ui 的概率, m i m_{i} mi代表针对第i字符的loss mask。其中有两种训练模式

  1. 单轮模式:当 u i u_{i} ui属于 a {a} a, m i = 1 m_{i}=1 mi=1
  2. 多轮模式:当 u i u_{i} ui属于 a {a} a或者 a i {a}_{i} ai, m i = 1 m_{i}=1 mi=1

我们基于Llama2-13B-base做了实验,发现多轮模式会带来更好的性能,可以使LLM更加关注上下文信息

在决定输入格式和掩码模式后,我们比较了许多现成的 LLM,它们要么仅经过预训练,要么经过指令调整。 如表 2 所示,SOLAR-10.7B-Instruct 模型在评估数据集上远远超过了同类模型,该模型使用深度放大来缩放 LLM,并针对指令跟踪功能进行了微调。 因此,在后续的实验中选择它作为我们的backbone。

混合训练

来自相似分布的适当标记文本可能对大模型生成性能的提高做出很大贡献。 在第二阶段,我们建议利用精调的模型为评估数据集生成(伪)答案,然后将它们添加到原始训练集以从头开始微调新模型。 上述混合训练策略的出发点有两个,一方面,它可以被视为对域内未标记数据的知识蒸馏过程,另一方面,因为我们只在a中生成最终目标${a} 伪标记方式, 伪标记方式, 伪标记方式,{ai}$仍然是官方注释的,这可能有利于多轮设置。 请注意,我们不会进一步涉及混合训练的测试数据集,因为它可能会过度拟合模型,从而削弱最终评估中的模型性能,这也通过我们的实验进行了验证。

噪音文档过滤

毫无疑问,高质量的参考文档不仅可以帮助减轻幻觉现象,还可以提高大模型的推理质量[6]。 仔细观察整个数据集后,我们发现主要有两种类型的噪声文档,如图1所示:在这里插入图片描述

  • 文档几乎重新表述了该问题,该问题与文档具有极高的相关分数。

  • 文档包含了不相关的信息,因此它们与问题或历史记录的相关分数极低。

因此,在不存在真实答案的情况下量化相关性至关重要。 从语义和词汇的角度来看,我们得出以下两个指标:

  • 嵌入级余弦相似度 我们采用高级文本嵌入模型Nomic Embed 来计算文档与相应问题(或与对话历史记录一起)之间的余弦相似度。
  • 单词或字符级ROUGE-L 如前所述,ROUGE-L 分数可以被视为词汇相关性标准。

实际上,我们对每个指标分别设置较高的阈值 τ h \tau_{h} τh和较低的阈值 τ l \tau_{l} τl,然后筛选出参考文档,其对应分数≥ τ h \tau_{h} τh或≤ τ l \tau_{l} τl进行手动检查。结果,我们在第2阶段过滤掉了193个噪声文档。

此外,之前的工作表明,大模型可以更好地理解位于输入开头或结尾的重要段落。 然而,我们发现文档索引和官方注释答案中出现的相对顺序之间存在很强的相关性,这意味着对参考文档重新排序可能会导致严重的性能下降。

模型融合


模型集成已被证明在判别任务中是有效的,但是,很少在生成环境下进行探索。 在这项工作中,我们建议近似评估不同模型生成的答案的质量,然后选择最好的作为最终结果。 假设给定一个测试样本,我们有 M M M个候选响应进行聚合,对于每个候选 r i r_{i} ri ,我们计算 r i r_{i} ri r j r_{j} rj 之间的相关性分数 s ( r i , r j ) ( j = 1 , . . . , M , j ≠ i ) s(r_{i} ,r_{j} )(j=1,...,M,j\neq i) s(ri,rj)(j=1,...,M,j=i),将它们加在一起作为 r i ( q i = ∑ j s ( r i , r j ) ) 的质量分数 r_{i}(q_{i}=\sum_{j}s(r_{i},r_{j}))的质量分数 ri(qi=js(ri,rj))的质量分数q_{i}$。 类似地,相关性量化器可以是嵌入级余弦相似度(表示为 emb_a_s)、单词级 ROUGE-L(表示为 word_a_f)和字符级 ROUGE-L(表示为 char_a_f)。动机是最终答案应该是与最多候选模型达成一致性的代表。

实验

实验设置

训练代码使用modelscope的swift,超参数设置如下:

实验结果

表3列出了本次比赛的最终结果。 如图所示,我们的解决方案汇总了 8 个不同模型的结果,与第二名相比,W-ROUGE-L、C-ROUGE-L 和 KR 的绝对性能分别提高了 1.6%、0.9% 和 2.3%。 此外,值得注意的是,我们的单模型也可以比其他模型产生更好的性能,这表明我们的模型是有效的策略。

在这里插入图片描述

消融实验

文档过滤的消融实验:表 4 显示了我们的单一模型在使用和不使用噪声文档过滤的情况下推断的实验结果。 我们发现它略微提高了最终分数,因为提供的文件是由杯赛组织者精心挑选的,大模型可以在一定程度上区分潜在的干扰因素。

混合训练策略的消融实验:我们在表 5 中验证了所提出的混合训练策略的效果。如图所示,将评估集与相应的伪目标相结合可以很大程度上提高生成质量,特别是对于关键字召回分数。 但进一步加入测试集几乎没有什么效果,这验证了我们的设计选择。

模型融合的消融实验:我们首先比较不同的集成方法,如图 2 (a) 所示。 尽管上述方法在 ROUGE 分数上都具有竞争力,但 emb_a_s 在关键字召回方面带来了更多改进,因此被选为我们最终的集成方法。 然后,对整体候选数量进行参数分析。 从图 2 (b) 中可以看出,更多的候选者通常会带来更好的性能。 由于时间和预算有限,我们最终将数量定为8。


在本文中,我们详细介绍了 WSDM Cup 2024 中“对话式多文档 QA”任务的获胜解决方案。利用法学硕士的能力,我们使用 SOLAR-10.7B-Instruct 模型作为骨干,结合混合模型 训练、噪声文档过滤器,并通过评估最终提交的 8 个结果的质量来选择最佳响应。 我们的解决方案在公共排行榜上获得了第一名。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pyhton的组合数据类型

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命对某些人来说是美丽的&#xff0c…

二分查找讲解

关于我为什么要写单独开一篇文章写二分,实际上那么多困难的算法,比如线段树,并查集等等都没有难倒我,我最近却被二分难倒了,而且是两次,两次在赛场上做不出来二分的应用题,于是我决定写一篇二分查找的算法总结.刚接触算法的时候本来是要写一篇的,但后面因为各种原因搁置了,现在…

lv20 QT主窗口

熟悉创建主窗口项目 1 QAction 2 主窗口 菜单栏&#xff1a;fileMenu menuBar()->addMenu(tr("&File")); 工具栏&#xff1a;fileToolBar addToolBar(tr("File")); 浮动窗&#xff1a;QDockWidget *dockWidget new QDockWidget(tr("Dock W…

云上攻防-云服务篇弹性计算服务器云数据库实例元数据控制角色AK控制台接管

知识点: 1、云服务-弹性计算服务器-元数据&SSRF&AK 2、云服务-云数据库-外部连接&权限提升 章节点&#xff1a; 云场景攻防&#xff1a;公有云&#xff0c;私有云&#xff0c;混合云&#xff0c;虚拟化集群&#xff0c;云桌面等 云厂商攻防&#xff1a;阿里云&am…

Pytorch学习 day01(Jupyter安装

Jupyter 安装过程中遇到的问题&#xff1a; Anaconda的base环境会自动安装Jupyter&#xff0c;但是如果我们要在其他环境中安装Jupyter&#xff0c;就需要注意&#xff0c;该环境的python版本不能高于3.11&#xff0c;且用以下代码安装&#xff1a; conda install nb_conda_…

深度学习 精选笔记(8)梯度消失和梯度爆炸

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

微信小程序 vs 公众号商城:亿发解密线上业务的最佳选择之道

在拓展线上业务的道路上&#xff0c;搭建线上商城成为企业首要选择。然而&#xff0c;在选择小程序商城和公众号商城时&#xff0c;很多企业陷入了两者之间的纠结。本文将深入解答小程序商城和公众号商城的概念、区别&#xff0c;并为您提供明智的选择建议。 一、小程序商城和公…

Flutter开发之Slider

Flutter开发之Slider 本文是关于介绍Slider相关属性的含义。 class SliderThemeData {/// slider轨道的高度 final double? trackHeight; /// 滑块滑过的轨道颜色 final Color? activeTrackColor; /// 滑块未滑过的轨道颜色 final Color? inactiveTrackColor; /// 滑块滑过…

多人同时导出 Excel 干崩服务器?我们来实现一个排队导出功能!

考虑到数据库数据日渐增多&#xff0c;导出会有全量数据的导出&#xff0c;多人同时导出可以会对服务性能造成影响&#xff0c;导出涉及到mysql查询的io操作&#xff0c;还涉及文件输入、输出流的io操作&#xff0c;所以对服务器的性能会影响的比较大&#xff1b; 结合以上原因…

李沐动手学习深度学习——3.2练习

以下是个人理解&#xff0c;希望进行讨论求解。 练习 1. 如果我们将权重初始化为零&#xff0c;会发生什么。算法仍然有效吗&#xff1f; 根据SGD算法公式如上&#xff0c;第一次迭代的值可知w只与b相关&#xff0c;而对于b的迭代更新&#xff0c;只是与b的初始值相关&#x…

什么是物联网?

今天这篇文章写的相关内容就是带领大家了解什么是物联网&#xff0c;之前写的文章大多都是一些物联网的未来&#xff0c;行业的解决方案等&#xff1b;话不多说开始进入正题吧! 物联网(IoT)是一个包罗万象的术语&#xff0c;指的是越来越多的电子产品&#xff0c;它们不是传统的…

【2022 J1】乘方

本主又双叒叕来更新了&#xff0c;一圈三连不用说了吧&#x1f601; 本题是J组第二轮的题&#xff1a; 题目描述 小文同学刚刚接触了信息学竞赛&#xff0c;有一天她遇到了这样一个题&#xff1a;给定正整数 a 和 b&#xff0c;求 &#xfffd;&#xfffd;ab 的值是多少。 …

Java优先级队列--堆

目录 1. 优先级队列 1.1 概念 2.优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 堆向下调整 2.3.2 堆的创建 2.3.3 建堆的时间复杂度 2.4 堆的插入与删除 2.4.1 堆的插入 2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 3.常用接口介绍 3…

Windows下使用C++调用海康威视SDK获取实时视频流进行检测

目录 准备海康威视的SDK官网下载下载后解压 Vs 2022创建项目创建32位的环境 将相关文件复制到工程目录下工程配置海康威视SDK配置包含目录配置库目录将dll文件添加到环境中在附加依赖项添加如下内容 工程配置OpenCV配置工程配置包含目录配置库目录 测试 准备海康威视的SDK 官网…

深入理解Linux线程(LWP):概念、结构与实现机制(1)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;会いたい—Naomile 1:12━━━━━━️&#x1f49f;──────── 4:59 &#x1f504; ◀️ ⏸ ▶️ ☰ &a…

JavaScript | 拼客JavaScript的P211-循环精灵图 精灵图及个人手敲代码分享

拼客JavaScript的P211-循环精灵图 JavaScript前端课程-dom-bom-js-es6新语法-jQuery-数据可视化echarts黑马pink老师前端入门基础视频教程(500多集)持续 视频中的拼客老师使用的是淘宝首页的精灵图资源24-595图片 精灵图24-595 我还找到另一张大一点的精灵图&#xff0c;内容…

【力扣 - 杨辉三角】

题目描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] 提示: 1 < numRows < 30 方法一&#xff1a;数学 思路…

一图总结:华为销售体系(铁三角组织LTC流程)

《华为铁三角工作法》阅读了多遍&#xff0c;花了些时间整理了一张图对本书的框架性总结&#xff0c;从流程&#xff08;LTC&#xff09;、组织&#xff08;铁三角&#xff09;、激励和管理三个大方面概览华为销售体系。 核心是一靠流程&#xff0c;二靠团队&#xff0c;而前提…

云尚办公-0.1.0

二、用户管理接口 1. 建表 角色与用户是多对多的关系&#xff0c;所以除了角色表和用户表外&#xff0c;还需要第三张表表示这两者间的对应关系。关系表中的用户id和角色id分别以对应表中的id作为外键。 CREATE TABLE sys_user (id BIGINT(20) NOT NULL AUTO_INCREMENT COM…

Windows Docker 部署 SQL Server

部署 SQL Server 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 SQL Server 服务&#xff0c;这里安装的是 2022 年版本 docker run -e "ACCEPT_EULAY" -e "MSSQL_SA_PASSWORDSQL123abcABC!&qu…