西风 发自 凹非寺
量子位 | 公众号 QbitAI
名为
PaSa
,两个Agent分别执行多轮搜索和判断论文是否满足查询要求的任务,模仿人类复杂学术搜索行为。
现在就有Demo可玩。
只需提供研究主题或描述想法,它就会迅速展开搜索并按相关度自动排列组织顺序。
点击标题卡,不用跳转页面,就能显示论文作者和摘要,再点击带有跳转链接的标题就能查看完整论文:
还可以点击每个标题卡后面的小方框,打包下载JSON、BIB格式文件:
更重要的是其召回率和精准性。
实验中,PaSa在召回率和精确率等指标上显著优于
谷歌、谷歌学术、Google with GPT-4o、ChatGPT等基线模型
。
在AutoScholarQuery测试集,与最强基线PaSa-GPT-4o相比,PaSa-7b的召回率提高了9.64%;在团队创建的数据集RealScholarQuery上,与最佳基于Google的基线Google with GPT-4o相比,PaSa-7b在召回率@20、召回率@50和召回率@100上分别提升37.78%、39.90%和39.83%。
磕盐党狂喜~
两个Agent组成
目前学术搜索系统,如谷歌学术搜索,常难以有效处理复杂的查询,导致研究人员需花费大量时间手动文献搜索。
比如询问”Which studies have focused on non-stationary reinforcement learning using value-based methods, specifically UCB-based algorithms?”。
(哪些研究聚焦于非平稳强化学习中基于值的方法,特别是基于UCB算法的研究)
虽然利用LLM来增强信息检索的研究越来越多,但学术搜索不仅需要检索,还需要深入阅读论文和检查引用,完成全面的文献调查。
为此,研究团队开发了PaSa系统,主要包含两个大模型Agent:
Crawler
(爬虫)
、
Selector
(选择器)
。
Crawler负责处理用户查询,生成多个搜索命令,并检索相关论文。
具体来说,它执行一个基于token的马尔可夫决策过程
(MDP)
。动作空间A对应于LLM的词汇表,其中每个token代表一个动作。LLM充当策略模型,Agent的状态由当前的LLM上下文和论文队列定义。
Crawler使用三个注册函数进行操作:
当动作与函数名称匹配时,将执行相应的函数,进一步修改Agent的状态。
例如,如下图所示,Agent首先接收用户查询,将其纳入其上下文并开始执行动作。如果生成的token是[Search],则LLM继续生成搜索查询,Agent调用搜索工具来检索论文,然后将这些论文添加到论文列表中。
如果token是[Expand],则LLM继续从其上下文中的当前论文中提取子节名称。Agent随后使用解析工具提取该子节中引用的所有论文,并将它们添加到论文列表中。
如果token是[Stop],则Agent将其上下文重置为用户查询以及论文队列中下一篇论文的信息,这些信息包括标题、摘要以及所有部分的概述。
Selector则负责仔细阅读每篇论文,评估是否满足用户查询要求。
它接收两个输入:一个学术查询和一篇研究论文
(包括其标题和摘要)
,
生成两个输出:
一个单一的决策token,可以是“True”或“False”,表示论文是否满足查询,以及一个理由,包含m个支持该决策的token。理由有两个目的:通过联合训练模型生成决策和解释来提高决策准确性,并通过在PaSa应用中提供推理来提高用户信任。
实验中优于所有基线
团队使用包含来自AI顶会收录论文的35k个细粒度学术查询及其对应论文的合成数据集AutoScholarQuery,通过强化学习优化PaSa。
此外,还开发了一个收集真实世界学术查询的基准数据集——RealScholarQuery,用于在更现实的场景中评估PaSa 的性能。