首页 > 编程语言 >【Agent系列】从论文到源码解析Self-Ask 以及数据构建带来的启发

【Agent系列】从论文到源码解析Self-Ask 以及数据构建带来的启发

时间:2024-10-18 22:46:04浏览次数:7  
标签:Self 回答 Agent 问题 源码 单跳 LLM Ask


前言

Self-Ask对LLM的推理能力进行了实验评估,并且提出了一种follow-up范式来提升LLM的2跳推理能力,为了进一步提升回答准确率,加入了Google搜索工具来检索更可靠的知识。


一、Self-Ask解决了什么

Self-Ask通过 改进prompt范式+引入外部搜索工具 来提升LLM的2跳推理能力,主要评估了LLM内部推理的机制和提升2跳推理能力。

由于LLM在海量预训练数据上进行训练,所以内部具有庞大的知识库,但LLM运用这些知识的时候呈现“死记硬背”的趋势,对于单跳问题可以准确回答,如“伊丽莎白的出生地在哪?”,但对于2跳问题就容易出错,如“伊丽莎白的出生地的货币是什么?”,因为LLM运用知识本身的能力很强,但是建立多个知识间关联的能力很弱。

从训练数据来看,LLM的预训练数据包含了可以回答很多单跳问题的文本,但很少包括能同时回答2跳问题的文本,尤其当这2跳的跨度很大时,例如“贾斯汀比伯出生那年谁嬴得了大师赛?”。

所以Self-Ask解决的问题是:1. 实验评估LLM在单跳和2跳推理的差距(称为“组合性差距”);2. 提出一种follow-up的方式将2跳问题分解为多个单跳问题,并且借助外部检索工具获得更准确的知识用于回答。

二、Self-Ask的理论实现

Self-Ask建立在CoT的基础上,但Self-Ask并不是输出连续的未划分的思维链,而是让模型在回答问题之前明确地说明它想要问的下一个后续问题。

为了控制LLM的回答规范,首先询问“接下来还需要问什么问题吗:”,如果回答Yes则开始分解问题进行回答。并且在后续回答中插入Follow up:用于放置LLM分解的子问题。Intermediate answer用于放置子问题的中间答案。重复这个过程,直至LLM给出最后答案。

问题:谁活得更久,西奥多·海克还是哈利·沃恩·沃特金斯?

接下来还需要问什么问题吗:Yes

追问:西奥多·海克去世时多大年纪?

中间答案:Theodor Haecker去世时65岁。

追问:哈里·沃恩·沃特金斯去世时多大?

中间答案:哈里·沃恩·沃特金斯去世时69岁。

所以最后的答案是:Harry Vaughan Watkins

问题:超导被发现时,谁是美国总统?

接下来还需要问什么问题吗:Yes

追问:超导是什么时候发现的?

中间答案:超导是在1911年发现的。

追问:1911年的美国总统是谁?

中间答案:威廉·霍华德·塔夫脱。

所以最后的答案是:威廉·霍华德·塔夫脱。

为了利用外部搜索工具,在Follow-up后用Google search api代替LLM来回答子问题。

三、从源码看Self-Ask的实现

Self-Ask的运行代码,比较容易理解,有一点细节是如果Google没有搜索到答案,则向下转化为LLM自己来回答子问题。

Google搜索的代码,主要是使用了https://serpapi.com,为流行互联网搜索引擎提供了API。

四、从实验结果看LLM的内部机制

首先,Self-Ask 评估了LLM的组合性差异,让相同的LLM回答单跳问题和2跳问题。随着LLM规模的增加,这种组合性差异并没有变小,这说明LLM只是学习了知识,但将知识组合起来的能力没有得到增强:

为了保证评估的公平,对于单跳和2跳问题都是用原生prompt:

但这种准确率评估似乎并不能说明LLM真的学习到了回答单跳问题所需的知识,所以又提出了用困惑度来进行衡量,首先测量LLM回答单个问题的困惑度,然后测量回答将两个问题组合起来的2跳问题,发现当回答单个问题的困惑度越小时,2跳问题的正确率越高。

这说明能够回答正确单跳问题并不意味着模型已经完全“学习”了给定的事实,只有当困惑度越小时才说明LLM对回答充满了信心,并且当LLM更自信地回答单跳问题时,它可以以更高的准确率回答两个单跳问题组成的2跳问题:

同时下图使用Self-Ask来回答单跳和2跳问题,LLM的组合性差距显著减小:

Self-Ask和其他方法的对比(回答2跳问题):

其中CoT的实现与原始论文中的略有不同:在输出最终答案之前会指定答案类型(例如,“所以最终答案(这个人的名字)是”,而不仅仅是“所以最终答案是”)。

五、数据集的构建细节

论文使用了四个数据集:Compositional Celebrities (CC)、Bamboogle、2WikiMultiHopQA和Musique。(都是2跳数据集)

Compositional Celebrities (CC):自动生成的数据集。

Bamboogle:手动构建的数据集。

2WikiMultiHopQA和Musique:已有的两个自动生成的数据集。

Compositional Celebrities (CC) 的构建:

这是一个新的自动生成的数据集,名为名人合成数据集,包括8.6k个2跳问题,它将经常陈述的事实以不太可能的方式组合在一起(例如,“贾斯汀·比伯出生那年谁赢得了大师赛?”),数据生成主要遵循以下17个模板。

通过抓取名人的名单以及他们的出生地点/时间来生成它们;同时检索关于每个出生国家(首都、货币、调用代码等)和每个出生年份(当年大师锦标赛或诺贝尔文学奖得主等)的事实,并通过组合成对的事实生成2跳问题:

利维·姆瓦纳瓦萨出生地的首都是哪里?

Ferenc的出生地Puskás的纬度是多少?

朱莉安·柯普克出生地的经度是多少?

诺罗敦·西哈莫尼出生地的顶级域名是什么?

吉尔伽美什出生地的3166-1数字代码是什么?

乔尔·坎贝尔出生地的货币是什么?

安东尼奥·瓦伦西亚出生地的货币缩写是什么?

马立克出生地的货币符号是什么Hamšík?

休·杰克曼出生地的日文名字是什么?

肖邦出生的西班牙语名字是什么?

孔子出生地的俄语名字是什么?

科菲·安南出生的爱沙尼亚名字是什么?

妮琪·米娜出生地的乌尔都语名字是什么?

米拉·乔沃维奇出生地的呼号是多少?

鲍勃·迪伦出生那年,谁是美国大师赛的冠军?

马特·达蒙出生那年谁获得了诺贝尔文学奖?

贾斯汀出生时,美国总统是谁?

Bamboogle的构建:

Bamboogle是一个人工编写的2跳问题数据集,其中所有问题都足够困难,无法通过流行的互联网搜索引擎准确回答,但是可以在维基百科中找到支持其中两个单跳问题的证据。通过这种方式,保证LLM的预训练数据中包含单跳问题的同时,也保证其中没有可以直接回答2跳问题的内容。

具体的构建方式:通过阅读随机的维基百科文章,并编写一个关于它们的2跳问题,最终共包含125个问题的数据集。

怎么保证构建的2跳问题不能在维基百科中找到呢?将构建好的2跳问题输入到谷歌搜索中,如果返回一个错误的Featured Snippet,则说明无法通过互联网搜索引擎搜索到答案,也就大概率不会出现在LLM的预训练数据中:

作为音乐之声(Sound of Music)成立的公司是哪一年加入标准普尔500指数的?

谁是美国人口最多城市的第一位非裔美国市长?

英国汉诺威家族的最后一位国王是什么时候去世的?

开创两届任期限制先例的总统是什么时候离任的?

乳糜泻患者能吃驼肉吗?

世界上最大的航空母舰是以谁的名字命名的?

谁制造了最快的吸气式有人驾驶飞机?

从蜂窝中提取蜂蜜的机器使用哪种物理力?

互联网发源地所在的政府部门是哪一年成立的?

谁建立了几何学创始人居住的城市?

六、资料链接

Self-Ask 论文:Measuring and Narrowing the Compositionality Gap in Language Models

Self-Ask 源码:https://github.com/ofirpress/self-ask

Bamboogle数据集:Bamboogle

2WikiMultiHopQA数据集论文:2WikiMultiHopQA

Musique数据集:Musique

搜索引擎api网站:https://serpapi.com


总结

Self-Ask 主要起到了探索LLM推理能力的作用,虽然针对2跳问题推理提出了一套流程,但显然是具有很大局限性的,对于更多跳问题的推理作者对self-ask的能力持保留态度。更多跳问题的推理关键就在LLM本身对问题的理解和分解是否准确。

但Self-Ask在实验评估和数据集构建方面给了我们一些启发,并且在CoT的基础上提出了分解推理过程,也给在过程中引入外部工具提供了条件。

希望有帮助你多了解一点Self-Ask,如果内容存在错误欢迎随时批评指正,一起变得更强。

标签:Self,回答,Agent,问题,源码,单跳,LLM,Ask
From: https://blog.csdn.net/m0_68116052/article/details/143026580

相关文章

  • NOTE6:Agent/LLM+游戏/LLM中的对齐
    :::hljs-rightDATE:October12,2024:::Agent智能体可能需要包含感知、记忆、规划、反思、互动五个模块图源:https://lilianweng.github.io/posts/2023-06-23-agent/以上图的组件为例,Planning任务分解:使用链式思考(ChainofThought)技术,将复杂任务分解为更小、更简单的......
  • 基于nodejs+vue基于SpringBoot框架的图书分享系统的设计与开发[开题+源码+程序+论文]
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于图书分享系统的研究,现有研究主要以传统的图书管理系统为主,侧重于图书的借阅、归还以及基本信息管理等功能,而专门针对基于SpringBoot框架的图书分享......
  • 基于nodejs+vue基于SpringBoot框架的球鞋洗护平台[开题+源码+程序+论文]计算机毕业设
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景在当今社会,球鞋文化盛行,越来越多的人热衷于收藏和穿着各种球鞋。然而,球鞋的洗护却成为了一个困扰众多球鞋爱好者的问题。关于球鞋洗护的研究,现有研究主......
  • 基于nodejs+vue基于springboot框架的企业合同管理系统设计与实现[开题+源码+程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于企业合同管理系统的研究,现有研究主要以大型企业的综合管理系统为主,专门针对基于SpringBoot框架构建企业合同管理系统的研究较少。在国内外,企业合同......
  • 基于nodejs+vue基于SpringBoot框架的民俗文化交流与交易平台的设计与实现[开题+源码+
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着互联网的发展,文化交流与交易平台在各类文化领域逐渐兴起。关于民俗文化交流与交易平台的研究,现有研究主要以大型综合文化平台为主,专门针对民俗文化......
  • 基于nodejs+vue基于springboot和vue技术实现的电商系统[开题+源码+程序+论文]计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于电商系统的研究,现有研究多集中在大型电商平台的商业模式、营销策略等宏观层面。在技术实现方面,虽然有多种技术组合被用于构建电商系统,但专门针对Spr......
  • 基于nodejs+vue基于springboot和vue技术的视频与图集网站[开题+源码+程序+论文]计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于视频与图集网站的研究,现有研究主要集中在大型综合视频平台或者单一功能的视频网站方面,专门针对结合视频与图集功能的网站研究较少。在国内外,视频网......
  • 计算机毕业设计 | java swing 销售管理系统(附源码)
    1,概述1.1选题背景近几年来,传统商业与电商似乎是水火不容,大有不是你死便是我活的劲头。一直以来舆论都是一边倒的电商将迅速取代传统零售的论调,然而几年过去,电商的发展确实值得侧目,但传统商业虽然受到不小的影响,也依然顽强地挺立。事实上,就零售市场总规模而言,仍然是实体......
  • 计算机毕业设计 | vue+springboot 移动端在线考试系统(附源码)
    1,绪论研究背景与意义在20世纪末期,国家提出了教育要面向四个现代化,同时也提出了要大力发展教育手段和教育方式的信息化建设。在这样的背景和需求下,基于当今的互联网技术和计算机信息技术的课程在线考试系统就应运而生了。人们急切地需要再课程在线考试中利用现代网络技术达......
  • 基于nodejs+vue基于SpringBoot和Vue的农产品智能交易系统[开题+源码+程序+论文]计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着信息技术的快速发展,农产品交易领域也在逐渐走向智能化。关于农产品交易系统的研究,现有研究主要以传统交易模式的改进为主,专门针对结合SpringBoot和......