LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

这篇具有很好参考价值的文章主要介绍了LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在前面两篇博文中已经粗略介绍了增强语言模型和Tool Learning,本篇文章看四篇代表性的自动化框架,HuggingGPT、AutoGPT、WebGPT、WebCPM。

  • Augmented Language Models(增强语言模型)
  • Toolformer and Tool Learning(LLMs如何使用工具)

HuggingGPT
HuggingGPT是tool learning中tool-augmented learning的一类,具体来说,它是一个以LLMs为控制器来管理来自Huggingface社区中诸多小模型的框架,其中用户的自然语言请求将视为一个通用接口,再经过LLMs的解析和规划后,再根据Huggingface小模型工具的描述进行模型选择,执行完每个小模块的任务后,再对结果进行处理和返回给用户。
LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)
如上图所示,其执行步骤分为4步:

  • Task Planning。任务规划,其利用ChatGPT分析用户的请求,并将用户请求分解为一系列可解决的子任务。不过复杂的请求往往涉及多个任务,还需要确定这些任务的依赖关系和执行顺序,因此HuggingGPT 在其提示设计中采用了基于规范的指令和基于演示的解析,如下图所示,对于输入的"Look at /exp1.jpg, Can you tell me how many objects in the picture?",模型最终得到两个子任务。
[{"task": "image-to-text",
  "id": 0, "dep": [-1], 
  "args": {"image": "/exp1.jpg"}}, 
  
{"task": "object-detection",
 "id": 0, "dep": [-1], 
 "args": {"image": "/exp1.jpg" }}]

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

  • Model selection。模型选择,根据分解后的子任务和对模型描述的理解(描述包括模型功能、体系架构、支持的语言和域、许可等信息),由ChatGPT选择托管在Hugging Face上的各类专家小模型。如下图所示,模型的选择会首先根据任务召回一些可以做当前子任务的模型,然后下载量选择前K名的模型作为候选,然后将其作为prompt上下文输入给ChatGPT进行选择。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

  • Task execution。任务执行,调用并执行每个专家小模型,并将结果返回给ChatGPT。
  • Response generation。响应生成,HuggingGPT先将前三个阶段(任务规划、模型选择和任务执行)的所有信息整合成一个简洁的摘要,包括计划任务列表、模型选择和推理结果。然后使用ChatGPT整合所有小模型的预测结果并返回给用户。如下图所示。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

由于HuggingGPT可以调用在社区中的所有模型“工具”,因此它也可以执行多模态任务。不过HuggingGPT的主要缺点有:

  • 效率问题。HuggingGPT的每一阶段都需要与LLMs交互,导致效率低下。
  • 上下文长度。LLMs最大tokens数量有限。
  • 系统稳定性。一是LLMs的预测和输出错误;二是小专家模型的不可控和错误。

paper:HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in HuggingFace
arxiv:https://arxiv.org/abs/2303.17580
code:https://huggingface.co/spaces/microsoft/HuggingGPT
code(半平替代码,chatGLM+百度小模型):https://github.com/SolarWindRider/All-In-One


AutoGPT
作为github在短短时间内就破20w星的开源项目,AutoGPT实在太火了。AutoGPT也是一个拆解任务并执行的模型,和HuggingGPT很像,但更加强大。其不需要强制性人类输入(无人值守),能更加自动地为自己分配目标,利用互联网和其他工具在自动循环中完成任务,甚至还可以利用数据库/文件管理短期和长期记忆、使用搜索引擎和浏览网页、语音输出等,它更加通用更加智能。

AutoGPT主要有以下特点:

  • 基于GPT-4。使用 OpenAI 的 GPT-4 作为系统的核心,负责完成任务,根据完成的结果生成新任务,并实时确定任务的优先级。
  • 基于Pinecone。Pinecone是一个矢量搜索平台,为高维矢量数据提供高效的搜索和存储能力。在AutoGPT的系统中, Pinecone 被用来存储和检索与任务相关的数据,例如任务描述、约束和结果。
  • 基于 LangChain。 LangChain 框架允许AI 代理具有数据感知能力并与其环境交互,从而产生更强大和差异化的系统。
  • 任务管理。系统将维护一个任务列表,其由双端队列表示,用于管理任务和确定任务的优先级。系统根据完成的结果自动创建新任务,并相应地重新排列任务列表的优先级。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

具体来说,来自GPT4绘画的执行原理图如上,AutoGPT共包括以下几步:

  • provide objective & task。提出问题,设定一个目标。
  • complete task。拆解主任务,并维护一个优先级task queue。
  • send task result。执行task queue中最优先的任务,然后得到结果。如果有必要,这个结果会被存在Pinecone中。
  • add new tasks。当一个任务执行完成后,根据完成任务的结果会生成新的子任务,并确保这些新任务不与现有任务重叠。同时,系统会根据生成的新任务及其优先级重新确定任务列表的优先级,并使用 GPT-4 协助确定优先级。

AutoGPT可以执行的一些操作如下所示,搜索引擎、网页浏览都支持:

Google Search: "google", args: "input": "<search>"
Browse Website: "browse_website", args: "url": "<url>", "question": "<what_you_want_to_find_on_website>"
Start GPT Agent: "start_agent",  args: "name": "<name>", "task": "<short_task_desc>", "prompt": "<prompt>"
Message GPT Agent: "message_agent", args: "key": "<key>", "message": "<message>"
List GPT Agents: "list_agents", args: ""
Delete GPT Agent: "delete_agent", args: "key": "<key>"
Write to file: "write_to_file", args: "file": "<file>", "text": "<text>"
Read file: "read_file", args: "file": "<file>"
Append to file: "append_to_file", args: "file": "<file>", "text": "<text>"
Delete file: "delete_file", args: "file": "<file>"
Search Files: "search_files", args: "directory": "<directory>"
Evaluate Code: "evaluate_code", args: "code": "<full_code_string>"
Get Improved Code: "improve_code", args: "suggestions": "<list_of_suggestions>", "code": "<full_code_string>"
Write Tests: "write_tests", args: "code": "<full_code_string>", "focus": "<list_of_focus_areas>"
Execute Python File: "execute_python_file", args: "file": "<file>"
Task Complete (Shutdown): "task_complete", args: "reason": "<reason>"
Generate Image: "generate_image", args: "prompt": "<prompt>"
Do Nothing: "do_nothing", args: ""

prompt setting如下所示,包括执行任务的规范(constraints)、可用的资源(resources)、和效果评估与反思(performance_evaluations)。

constraints: [
  '~4000 word limit for short term memory. Your short term memory is short, so immediately save important information to files.',
  'If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.',
  'No user assistance',
  'Exclusively use the commands listed below e.g. command_name'
]
resources: [
  'Internet access for searches and information gathering.', #互联网搜索
  'Long Term memory management.', #长期记忆管理
  'GPT-3.5 powered Agents for delegation of simple tasks.', #GPT-3.5
  'File output.' #文件输出
]
performance_evaluations: [
  'Continuously review and analyze your actions to ensure you are performing to the best of your abilities.', # 分析自己的行为,确认尽到最大努力
  'Constructively self-criticize your big-picture behavior constantly.', # 从大局自我反思
  'Reflect on past decisions and strategies to refine your approach.', # 反思过去的决定和策略,优化方法
  'Every command has a cost, so be smart and efficient. Aim to complete tasks in the least number of steps.', # 每个命令都有成本,所以要聪明而高效,要以最少的步骤完成任务
  'Write all code to a file.' #将所有代码写入文件
]

github:https://github.com/Significant-Gravitas/Auto-GPT


WebGPT
OpenAI出品,基于GPT-3来模仿人类浏览网页的行为(点击、滑动滚轮等),通过搜索信息得到答案.解决的场景是长文本开放问答(Long-form Question Answering, LFQA),这个任务相比于传统机器阅读理解或文本问答,它在给出答案时,不只根据单篇段落或者文档,而是需要在某个文档集合甚至整个web中快速且准确地寻找答案(检索),并需要有信息整合能力以生成长段落(整合)。

但目前LFQA 最大的问题在于它只能从原始问题出发,并不是一个交互式的体系,对比人类是可以通过实时搜索来筛选出高质量信息的。特别是对于复杂问题,还会拆分子任务依次搜索等等,因此一个可以交互搜索的模型至关重要。因此WebGPT旨在通过模仿人类浏览网页的行为进行信息搜索和整理,以完成复杂的问题。训练环境基于微软的Bing搜索,数据基于ELI5(Explain Like I’m Five),界面如下所示,
LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

模型模仿人类的行为主要有如下图所示的:启动Bing API、点击链接进行跳转、滑动滚轮、做标记等等,通过这种方式,模型从网页中收集段落,然后使用这些段落来撰写答案。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)
训练方法跟OpenAI一系列作品的InstructGPT、ChatGPT类型,使用人类反馈+RLHF进行学习。具体来说,WebGPT基于GPT-3主要有760M、13B和175B三种版本的模型,训练方式跟InstructGPT、ChatGPT的思路是一致的,名字稍有不同。

  • Behavior cloning (BC) ,行为克隆。使用监督学习进行微调,其中人类指令将作为标签。
  • Reward modeling (RM) ,奖励建模。基于BC模型训练一个奖励模型,表示某个行为优于另一个行为的概率。
  • Reinforcement learning (RL) ,强化学习。仍然使用PPO算法对BC模型进行微调。
  • Rejection sampling (best-of-n),拒绝采样。RM优化的替代方法,该步骤会直接从BC模型或RL模型中抽样固定数量的答案(4、16或64),然后由RM选出打分最高的结果。

paper:https://cdn.openai.com/WebGPT.pdf


WebCPM
WebCPM是清华基于BMTools的模型,与上一篇博文的Tool Learning作者是同一批人,也是首个基于交互式网页搜索的中文问答开源框架,虽然思路上和WebGPT很像,但它开源了[旺柴]。

解决的场景跟WebGPT一样,是长文本开放问答(Long-form Question Answering, LFQA),目前解决 LFQA 的方法一般采用检索 - 综合方式,主要包括信息检索(从搜索引擎中收集相关信息)和信息综合(将收集到的信息进行整合以生成答案)两个核心环节。但它们是非交互式的方法,无法像人类一样通过多轮收集、筛选来搜索更多样的信息。加上WebGPT的相关细节并未完全公开,因此完全开源的WebCPM仍然是很有价值的。

其界面如下所示,动作和WebGPT类似,包括搜索必应、返回、浏览页面,滑动页面,标注等等。
LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)
模型框架如下图,仍然包括搜索(Question and Facts)和整合模块(Answer),其中包括四个小模块。

  • Action Prediction Module(灰色)。搜索行为预测,即决定要执行具体的什么行为动作,执行10个动作的多分类即可。
  • Query Generation Module(蓝色)。查询语句生成,生成用于bing搜索的 Q ( t + 1 ) Q_(t+1) Q(t+1)
  • Fact Extraction Module(紫色)。支持事实摘要,通过浏览网页Quote出相关的信息。
  • Synthesis Model(绿色)。根据收集到的信息生成连贯的答案。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

以论文中的例子可以详细理解这一过程。

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

paper:https://arxiv.org/abs/2305.06849
code:https://github.com/thunlp/WebCPM文章来源地址https://www.toymoban.com/news/detail-461887.html

到了这里,关于LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI大模型在效率工具、内容平台、商业流程自动化、机器人、操作系统、智能设备等场景的应用

    随着人工智能技术的快速发展,越来越多的公司开始利用AI大模型来解决各种问题和挑战。AI大模型是指参数量巨大、拥有训练好的模型的人工智能系统,通常需要大量的数据和计算资源进行训练。本文将介绍AI大模型在效率工具、内容平台、商业流程自动化、机器人、操作系

    2024年02月07日
    浏览(28)
  • 自动化工具 WEB 自动化工具

    使用自动化测试框架编写用例的时候,维护元素信息以及脚本较为麻烦。对应新手来说,编写脚本的能力有限,使用工具会更容易入手。最重要的是可视化操作让我觉得体验舒服。 地址:hippo 账号:test 密码:A123456. 首次访问稍慢一些 已有 demo 例子,由于部署在服务器,只能

    2024年02月01日
    浏览(31)
  • python自动化测试- 自动化框架及工具

    手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的  测试自动化  也将围绕着  接口自动化  来介绍。 本系列选择的测试语言是 python 脚本语言。由于其官方文档已经对原理

    2024年02月22日
    浏览(54)
  • 自动化测试及典型开源的自动化测试工具

    目录 前言: 自动化测试 自动化测试的意义 手工测试的局限性 自动化测试带来的好处 自动化测试的前提条件 自动化测试的方法 自动化测试的不足 自动化测试的应用方向 典型开源的自动化测试工具 自动化测试是一种使用软件工具和脚本来执行测试任务的方法,以取代手动

    2024年02月13日
    浏览(46)
  • 让所有GUI都自动化-PyAutoGUI(GUI自动化工具)

    目录 1、前言 2、简介 3、安装 4、常用函数 5、保护措施 6、鼠标函数 7、键盘函数 8、消息弹窗函数 9、截屏函数 ‍10、示例 在使用 Selenium 进行自动化测试时,鼠标事件可以用 ActionChains 类,键盘事件可以用 Keys 类。本篇将介绍一款自动化工具-PyAutoGUI,除了可以满足鼠标、键

    2024年02月11日
    浏览(30)
  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(90)
  • 案例分享| T-Box功能自动化测试方案: 测试对象和原理分析 | 车内T-Box与手机端的交互流程 | 测试方案设计及实测结果 | T-Box功能自动化测试系统框架 | 软硬件工具组成及作用

    背景 T-Box是实现汽车车联网的一个关键环节,从起初单纯的实现车辆信息采集,已发展到具有车辆信息监测及信息交互(V2X)、车辆远程控制、安全监测和报警、远程诊断、边缘计算等多种离线和在线的应用功能的载体。为保障T-Box功能的正常运转,对其进行功能测试就尤为

    2024年04月13日
    浏览(94)
  • 学会自动化必备工具-Selenium-再想着入坑自动化测试吧

    随着近些年IT行业的发展,软件测试人才的需求越来越大,也有很多小伙伴在考虑入坑,而软件测试中,收入相对较高的就是自动化了,所以这次就专门为大家简单介绍下自动化测试的必备工具Selenium。 Selenium是一款基于Web应用程序的开源测试工具 ,直接运行在浏览器中,支

    2024年01月23日
    浏览(43)
  • 如何实现WinApp的UI自动化测试?自动化工具如何选择人?

    WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp,其扩展名基本都是*.exe,运行后也都会有一个漂亮、易用的UI界面,本章就

    2024年02月04日
    浏览(45)
  • Ansible自动化部署工具

    1、运维工具特点 Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。 Ansible 安装使用非常

    2024年02月01日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包