大模型工具学习探索

导读大模型已经展示出在复杂场景下调动各类工具以解决复杂任务的能力。其深度的语义理解、广泛的世界知识,以及强大的推理和规划能力,共同使得人工智能在模拟人类使用工具的过程中展现出巨大的潜力。在此背景下,基础模型(FoundationModel)的工具学习(ToolLearning)应运而生,该领域的目标是让基础模型能够根据人类的指示和操作来使用工具,以解决特定任务。然而,无论是从理论研究还是实际应用的角度来看,该领域都面临着众多机遇和挑战。本文将介绍清华大学在工具学习领域的一些重要研究成果,并详细介绍其开源的交互式网页搜索中文问答框架WebCPM、BMTools和AgentVerse工具包。希望这些工作能够帮助读者深化对大模型工具学习领域的理解,同时也欢迎更多的研究者和开发者参与到这些工具包的使用和开发中来,共同推进大模型工具学习范式的发展。

1.工具学习背景(Background)

2.工具学习框架(Framework)

3.工具学习应用(Application)

4.问答环节

编辑整理|王帅

内容校对|李瑶

出品社区|DataFun

01

工具学习背景Background

1.工具与智能(ToolsandIntelligence)

工具是人类能力的延伸,旨在提高生产力和效率,以及解决问题。人与动物本质区别在于工具,人可以非常熟练地创造和使用工具。纵观历史,人类一直是工具发明和操作的主要推动者。

GPT-4等基础模型(FoundationModel)展示了其在理解人类意图、自动化复杂过程、解读多模态信息等方面的巨大潜力。同时也引发了如下问题:人工智能是否可以像人类一样使用工具?

基于大模型、基础模型(FoundationModel),上述问题的回答是Yes!主要原因如下:

上图给出了一些工具学习场景的典型应用:

2.工具学习的分类(CategorizationofToolLearning)

现有工具学习主要可以分为两类,工具增强学习(Tool-augmentedLearning)和工具导向学习(Tool-orientedLearning),其核心差异在于学习过程中,是通过工具执行来增强基础模型(工具为AI服务),还是通过基础模型优化工具的使用(AI为工具服务)。

工具增强学习利用各种工具的执行结果,增强基础模型性能。在这一范式中,工具执行结果被视为辅助生成高质量输出的外部资源。将工具作为额外资源辅助模型生成,如解决大模型生成过程中的时效性不足或事实性不准确的问题。如用户想了解今天Twitter的Trending,大模型可以调用Twitter的API,得到这些Trending后,再进行生成。

02

框架Framework

1.工具学习框架

一个通用的工具学习框架,类似强化学习MDP的架构,包含人类用户角色和四个关键组成部分:工具集、控制器、感知器和环境。

工具学习框架的整体流程始于人类用户,具体如下:

(1)意图理解IntentUnderstanding

在ChatGPT之前更多是NLP场景下的任务,大家的共识是模型理解语言比较困难。ChatGPT出现后,大模型基于InstructionTuning技术,具备了非常强的理解人类指令潜在意图的能力,可依据人的指令去解决真实场景下用户的Query问题。

大模型将NLP任务包装为多种instruction格式,进行大规模有监督的精调(Fine-Tuning),实现从指令空间到模型认知空间映射的学习。上述训练后的大模型具备了在未学习过的指令上的泛化能力,且随着模型的增大,训练数据量的增大及diversity的增强,其泛化能力会越来越强。

工具学习场景下意图理解面临两方面的挑战:

(2)工具理解ToolUnderstanding

在大模型中,除了需要模型对人类指令进行准确理解外,模型对工具的理解同样至关重要。首先,模型需要理解工具的功能;其次,模型需要知道如何在特定的任务中使用这些工具。在ChatGPT出现之前,主要的模式是通过记录人类使用工具的行为,并让模型模拟这些行为以实现工具使用的学习。而随着ChatGPT的出现,我们可以通过PromptLearning,即在Prompt中给出工具的描述,让大模型理解并应用工具。这种基于Prompt的方式目前已经成为大模型使用工具的主流方法。具体Prompting有如下两种:

提供一个描述任务的提示(prompt)来引导模型生成正确的输出。在Prompt中描述API的功能、输入输出格式、传参方式等,使得模型理解API如何使用。如下图,Zero-shotPrompting给出了forecastweatherAPI,描述其功能、返回信息等,然后去解决“下周北京的平均气温是多少”的问题。

优点:不需要为每个新任务重新训练模型,节省了大量的计算资源;并且可以快速适应新任务,只需为任务编写新的提示即可。

缺点:性能通常不如使用特定任务训练数据进行Fine-tuning的方法;且编写有效的提示需要一定的技巧和经验。

不仅给出任务描述性提示,还要直接展示少量(few-shot)的使用工具的示例,模型通过模拟人类的行为,理解如何使用工具。如下图,Few-shotPrompting给出了调用API的示例(如何回答问题—明天上海的温度),然后再让大模型利用API去解决问题。

优点:利用少量示例帮助模型理解任务,提高了模型的性能。比Zero-shotPrompting更灵活,可以应对更多种类的任务。

缺点:需要选择有代表性的示例,这需要一定的专业知识和经验。对于一些复杂的任务,可能需要更多的示例才能达到满意的性能。

(3)规划与推理PlanningandReasoning

大模型除了理解工具和人类的指令,还须具备规划和推理能力。

依据规划与环境是否交互,模型的推理分成两种:

大模型首先生成多个候选答案,然后自评估答案的优劣,最后选择最优的答案。

模型生成一个静态规划(给出未来任务列表),不与环境交互,适用于简单的场景。

如果Prompt指令合理,早期的预训练语言模型(PretrainedLanguageModels)已经具备理解和使用上下文的incontext能力,可将high-level的任务有效地分解为mid-level的规划,而无需进一步的训练。

大模型默认解决方案,不断根据每一步的成败以及环境和人类的反馈,动态跟进该规划,直至整个流程完成。

方案1:

上篇论文通过设定valuefunction限定了模型在每种场景下可做的任务,模型在某一场景下,只在上述的限制任务集合中进行选择,可以保证模型的可执行。

方案2:

可解决多步或多工具场景下的复杂问题的模型

不同工具之间的依赖关系

不同工具并行化执行(模型的生成是流式的)

(4)训练策略TrainingStrategies

大模型下,虽然直接Prompting就可以让模型学会使用工具,但在具备一定数据的特定场景下,进行微调通常都会有收益,除非数据的质量有问题。大模型学习使用工具的方式有两种:

2.WebCPM

(1)WebGPT介绍

2021年12月WebGPT的发布标志着基于网页搜索的问答新范式的诞生,该篇工作(Nakano,Reiichiro,etal."WebGPT:Browser-assistedquestion-answeringwithhumanfeedback."arXivpreprintarXiv:2112.09332(2021))可以算是工具学习领域最早期的工作,其做法为基于人类记录的大量搜索引擎使用的行为数据进行有监督Fine-Tune和强化学习,使得大模型学会使用搜索引擎。该文证明只需6000条数据就可让模型很好地学会如何使用搜索引擎,且能力会超越人类专家。

(2)WebCPM介绍

(3)WebCPM搜索交互界面

(4)WebCPM数据集

WebCPM的数据集包含5500对高质量的问题-答案对以及十万多条真实用户网页搜索行为。

LFQA数据样例特点:

(5)LFQApipeline框架

WebCPM建模包含两类模型:

Action预测模块(预测在该平台的下一个action,大约10个action,建模为一个多分类任务)

Query生成模块(生成搜索的query,用文本生成来实现,P(Qt+1|St))

Fact抽取模块(对当前页面抽取摘要)

(6)整体pipeline评测

WebCPM工作是在ChatGPT3.5发布之前,当时的基础模型与ChatGPT还是有一定的差距,随着CPM模型的改进,当前内部测试发现可以远超人类水平。

3.其他工作

(1)WebShop

大模型如何学会使用亚马逊购物网站?可以类似搜索引擎,构建WebShop:

(2)Toolformer

WebCPM和WebShop都需要让大模型学习大量人类标注数据,如何让大模型可以触类旁通学习,降低人类标注成本或降低人类的参与度?

动机:

方法:

步骤:

给定一个纯文本数据集,构建出一个带有API调用的数据集,然后在此数据集上做微调

Toolformer这项工作展示了大模型具备很强的自学的能力,大模型可自主学习工具,并可不断提升工具使用的能力。

(3)ToolCreation

在证实大模型可以使用工具后,我们的ToolCreation工作在整个领域首先提出了模型作为工具创造者的想法。在21世纪之前,通常认为人类是工具创造和使用的主要主体,而基础模型的出现可能颠覆这一观念,创造工具不再是人类专有的能力。

每个任务其实最好都是能用工具解决,现实场景下不一定存在最适合解决该任务的工具,可以通过大模型生成解决该任务的工具。人类创造的工具都是为人类设计,为人类设计的工具不一定是最好的,大模型可以定义更加适合自己的工具接口,该接口不一定适合人类使用。通过初步验证,大模型可以将一个简单工具API升级为具有更好功能的工具,基础模型可能具有自发创造工具的潜力。

所以我们提了这样一个框架,给定任何一个query,我们会让模型先去做一遍工具的生成。具体包含四个步骤:creation、Decision、Execution、Rectification。

这个过程会持续进行,直到模型创造出一个能够有效解决当前任务的工具,就可以跳出这个循环。这种设计使模型具有了持续学习和自我优化的能力,从而提升了其解决问题的效率和效果。

通过实验发现增加工具生成,使得解决实际任务的能力增强,相较PoT和CoT都有显著的提升。

工具的创造过程从本质上说是降低了后续任务的难度。如果只有一个质量很差的工具,那么可能需要付出巨大的精力才能使用这个工具来解决一个复杂的任务。所以,从这个角度出发,引出我们工作的核心理念:先创造工具,再用这个工具去解决任务。

03

应用Application

1.开源平台BMTools

(1)ChatGPT插件

OpenAI发布了支持联网、解决数学计算的插件ChatGPTPlugins,被称为OpenAI的“AppStore”。然而,由于目前其仅支持部分OpenAIPlus用户,大多数开发者仍然无法使用。

(2)BMTools介绍

为解决这个痛点,我们推出了BMTools工具学习包,一个基于语言模型的开源可扩展工具学习平台。

我们将各种调用流程统一到一个框架上,使整个工具调用流程标准化、自动化。开发者可通过BMTools,使用给定的模型(ChatGPT、GPT4)调用多种工具接口,实现特定任务或功能。

BMTools具有如下一些特性:

2.ToolBench

ToolBench项目,可以帮助开发者构建开源、大规模、高质量的指令调优数据,促进构建具有通用工具使用能力的大语言模型。

ToolBench工具包特性如下:

构建过程:

ToolBench基于BMTools,在有监督数据中训练大语言模型。所有的数据都是由OpenAIAPI自动生成并由开发团队进行过滤,数据的创建过程很容易扩展。

ToolLLaMA

通过ChatGPT对LLaMA和ChatGPT的答案和工具使用链进行自动评估。

评估结果如下(分数越高越好),ToolLLaMA在不同场景下与ChatGPT的性能相同或更好。

3.工具学习必读PaperList

04

问答环节

Q1:WebCPM是否针对网络中网页搜索质量低,进行搜索结果过滤等设计?

A1:WebCPM针对页面低质量搜索内容进行了过滤。

Q2:在不同语言上的效果如何,例如在中文任务上的效果怎么样?

A2:WebCPM背后的基础模型CPM是由面壁智能与OpenBMB开源社区开发的百亿参数中文语言模型,占据多个中文领域语言模型排行榜前列。

Q3:WebCPM和WebGLM的区别?

WebGLM则是一个基于大语言模型(LLM)的联网问答聊天机器人,其工作流程是固定且流程化的,包括搜索、页面检索、页面信息摘取和总结等步骤。这一框架为进一步提升每一步骤的能力提供了极好的基础,随着每一步骤能力的增强,最终的模型效果有可能超越现有的大模型。

INTRODUCTION

秦禹嘉

清华大学

博士生

秦禹嘉,男,清华大学计算机系2020级直博生。主要研究方向为大规模语言模型的高效预训练与下游智能化应用,曾在ACL、NAACL、EMNLP、ICLR、NeurIPS等会议发表多篇一作论文。

THE END
1.框架探索如何学习框架如何学习一个新框架1.3 框架的特点 2)如何学习框架? 2.1 常见的前端框架 2.2 常见的后端框架 在工作中,经常会听到,这个项目用了什么框架、为什么不用另外一种框架等等的话语,因此想探究一下框架是什么,如何读懂一个框架,以及应该怎么使用框架。 1)了解框架 1.1 什么是框架? https://blog.csdn.net/m0_37621024/article/details/121514847
2.cuda和深度学习框架怎么配合cudaslamcuda和深度学习框架怎么配合 cuda slam VSLAM方法框架: 整个SLAM大概可以分为前端和后端 ,前端相当于VO(视觉里程计),研究帧与帧之间变换关系。首先提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后利用RANSAC去除大噪声,然后进行匹配,得到一个pose信息(位置和姿态),同时可以利用IMU(Inertial measurement unit惯性https://blog.51cto.com/u_16099272/11154133
3.如何构建完整的知识体系框架?缺少了完整的知识体系框架,你就好似失去了知识间联系的地图,从而迷失在了知识的汪洋中,只能随波逐流地看到一个个孤岛,却不知道这些孤岛其实是导向大陆的一系列航标。 image.gif 1.2 不自觉地陷入在了被动学习当中 你是否产生过这样的迷惑: “我知道我要学习的东西很多很多,但却不知道应该去学什么?” https://www.jianshu.com/p/06e2b1a92a98
4.十八岁自学少年:我的个人网站是怎么做出来的优设网十八岁自学少年:我的个人网站是怎么做出来的 今天介绍的是一位仅18岁,年纪不大但艺惊四座的有为少年@DandyWeng,是一个真正的 Homeschooler。爱好摄影、计算机和数码产品,他的个人简介上写着:整个世界都是我的学校,学自己之所想所爱。自由的身心定能使我成为一个一直朝前行走的行者 : )这是他的文章,分享关于https://www.uisdc.com/dandyweng-designer
5.全面解读STEM专业三维的学习框架: 学科核心概念:每一个学科都有清楚的核心,也就是核心知识是什么。 跨学科概念:跨学科中也有一些主要的概念贯穿了这个学科。 科学实践:怎么把概念整合?这是实践的问题。 物理科学、生命科学、地球与空间科学都有一些基本的核心概念,例如动能、器官、遗传等,如果STEM项目没有涉及到其中任何一个核心课程http://www.edu-job.com/nd.jsp?id=361
6.用字母表示数评课稿范文(通用18篇)二、关于怎么教 12月8日、9日,在海门实验学校开展了全国“学程导航活力课堂”的活动,活动上,特级老师们纷纷上台献课。在这些课中,我们看到好多相似的镜头,比如几位老师在课前交流中,都与孩子们约定,课上要敢说,要敢讲,不要怕出错。课前,特级教师们开始关注孩子们的'已有生活经验学习经验等,会设计课前练习单http://mip.gongwen.cnrencai.com/xinwengao/369676.html
7.学校安全先进个人主要事迹(通用11篇)二、层层签订安全工作责任书,构建安全教育框架 学校始终坚决贯彻执行县局下发的有关学校安全工作的文件精神及学校安全工作的各项规定,学校的各班级均制定了安全工作职责,班主任每学期都要作出本班切实可行的班级安全教育工作计划和总结,切实将安全工作作为第一要务来抓,学校也将此项工作的考核作为衡量教师工作绩效的重要https://www.unjs.com/fanwenwang/shijicailiao/20221219083948_6125197.html
8.什么是Java框架?java教程Java是一种广泛使用的编程语言,因此,有必要了解不同的Java框架,因为在当前行业中,我们已经转向使用框架而不是直接使用编程语言。框架可以帮助开发人员以更少的时间和精力完成更多的工作,因为在这里您不必从头开始编写所有内容。许多事情都可以通过内置库来处理,从而保持 Java 应用程序的完整性和稳定性。 https://www.php.cn/faq/598556.html
9.彻底掌握ONNXRUNTIME框架深度学习模型部署看它!ONNXRUNTIME是主流的深度学习部署框架之一,支持ONNX格式模型在CPU、GPU、ARM等不同硬件平台上加速推理,支持C++、Python、Java、C#、JS等不同语言SDK。C++版本安装包下载如下: 不同版本的ONNXRUNTIME安装文件下载地址: https://github.com/microsoft/onnxruntime/tags https://www.eet-china.com/mp/a340798.html
10.RPC框架:从原理到选型,一文带你搞懂RPC腾讯云开发者社区怎么封装通信细节才能让用户像以本地调用方式调用远程服务呢?对java来说就是使用代理!java代理有两种方式:1) jdk 动态代理;2)字节码生成。尽管字节码生成方式实现的代理更为强大和高效,但代码维护不易,大部分公司实现RPC框架时还是选择动态代理方式。 下面简单介绍下动态代理怎么实现我们的需求。我们需要实现RPCProxyClhttps://cloud.tencent.com/developer/article/2021745
11.武汉大学智能遥感解译LuoJiaNET框架与LuoJiaSET样本库正式上架武汉大学在国家自然科学基金委重大研究计划集成项目的支持下,与华为MindSpore框架团队共同研发了全球首个遥感影像智能解译专用深度学习框架武汉.LuoJiaNET和业界最大遥感影像样本库LuoJiaSET,并在华为昇思社区上线。在中国科学院院士龚健雅教授指导下,项目组建了以胡翔云教授为项目负责人,张觅副研究员、姜良存副研究员分别为Luhttps://rsgis.whu.edu.cn/info/1252/10354.htm
12.自制简易php的mvc框架仅供学习参考编写初衷:原先想用thinkphp框架,后来经过阅读thinkphp代码,发现一个ip获取的欺骗bug以及非常严重的PDO封装还有漏洞,有可能导致注入的BUG,所以决定自己写框架系统,从最简单的方式开始,最基础架构先出来,后期会根据自己业务需求,封装扩展更多的类库及方法。 有关thinkphp的类库的bug,是3.2版本的bug,3.2.1官方根据我的提https://www.thinkphp.cn/code/578.html
13.中世纪史学家格里:历史才是对“欧洲认同”最具威胁的事物联系与隔离:更广阔的框架 除此之外,研究中世纪早期的学者还受到跨区域、去中心化历史研究的影响,也就是,越来越多的西欧制度、社会和文化发展如今被纳入一个更宽广的欧亚历史的框架内来理解。这也就是后殖民历史学家如查克拉博蒂(Dipesh Chakrabarty)所说的“把欧洲地方化”(Provincializing Europe)的一部分。不过,查克https://www.thepaper.cn/newsDetail_forward_1478495
14.字节跳动破局联邦学习:开源Fedlearner框架,广告投放增效209%纵向与横向两种训练模式可以归约于一个框架,既一对 worker 各自执行一个神经网络,并通信中间结果和梯度。为了支持这种模式,Fedlearner 实现了一个基于 gRPC 的通信协议,并以算子的形式集成到 TensorFlow 中: bridge=bfl.bridge.Bridge(50051, 'localhost:50052')bridge.wait_for_remote_startup()g=tf.Graph()withhttps://maimai.cn/article/detail?fid=1550604028&efid=zqj9rqK7Yf_Us-lu-0Wnmg
15.陆川县世客城小学欢迎你!【学校文化框架】 办学理念:让每一个孩子都绽放和雅的光彩 办学方针:弘扬“客家”文化 铸造“和雅”品牌 办学思路:文化立校 课程育人 特色发展 质量强校 办学目标:创优雅校园 塑儒雅教师 育博雅学生 校训:和而不同 各雅其雅 校风:以和为美 以雅为尚 https://www.meipian.cn/2c5q9aw7
16.从心理学的角度分析《严肃的男人》(严肃的男人)影评结合刚学习的心理学知识,分析一下电影《严肃的男人》里面的主角Larry,抛砖引玉,欢迎交流。人物和背景心理咨询师必须了解来访者的背景。电影《严肃的男人》里面的设定是60-70年代,美国内陆明尼苏达州的一个犹太人为主的社区。对中国观众来说,这个时间、地点和社会的设定是比较陌生的,也因为这样,我们不容易对男主人公https://movie.douban.com/review/14368255/