前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文带你揭密 AutoGPT 底层实现原理

一文带你揭密 AutoGPT 底层实现原理

作者头像
Luga Lee
发布2024-01-10 14:10:47
1.6K0
发布2024-01-10 14:10:47
举报
文章被收录于专栏:架构驿站架构驿站

Hello folks,我是 Luga,今天我们继续来聊一下人工智能(AI)生态领域相关的技术 - AI Agents(AI 代理) ,本文将继续聚焦在针对 AutoGPT 的技术进行解析,使得大家能够了解 AutoGPT 底层实现机制以便更好地对其进行应用及市场开发。

我们可以看到,随着 ChatGPT 问世以来,各大社区开始不断涌现出各式各样的、内容丰富、复杂且创新的解决方案,旨在提高 AI 生产力。其中之一便是著名的 AutoGPT AI Agent。作为一个基于 GPT-3 的自动化生成工具,AutoGPT 主要应用于生成各种文本格式,包括诗歌、代码、脚本、音乐作品、电子邮件、信件等。

01

关于 AutoGPT AI Agents 的更多解析

在之前的文章中,我们已有针对 AutoGPT AI Agents 进行过详细的解析,具体可参考如下文章链接:

从本质上来讲,‍‍‍‍‍‍‍AutoGPT 是一种基于 GPT-4 的自动化生成框架,能够独立完成各种任务,具体涉及如下:

1、搜索和获取信息

2、处理和分析信息

3、生成文本、代码、脚本、音乐作品、电子邮件、信件等

之所以能够实现这些任务,是因为 AutoGPT 具备以下核心能力,具体可参考:

1、独立访问和处理信息

2、理解和应用复杂的规则

3、生成创意和有渲染力的文本

基于上述这些核心能力,使得 AutoGPT 能够在一定程度上独立完成任务,不再需要人类的干预。因此,从某种意义上而言,我们可以认为 AutoGPT 被视为使 GPT-4 完全“自治”的一种创新尝试。

02

AutoGPT 底层逻辑架构实现

这里,我们来看一下整个 AutoGPT 逻辑架构实现流程。从宏观角度来看,AutoGPT 是一个拥有整体架构的先进系统,可以说它具备某种主循环机制,专门用于对自主行为进行精确建模和模拟。这个系统以其独特的方式,通过不断迭代和自我学习,能够模仿人类的思维方式,生成高度逼真和有逻辑的文本。

AutoGPT 不仅仅是一个智能语言模型,更是一个强大的自主决策引擎,能够解决各种复杂的问题并提供创造性的解决方案。无论是在自然语言处理、智能对话、文本生成还是其他领域,AutoGPT 都展现出了其卓越的能力和广泛的应用潜力。

针对 AutoGPT 逻辑架构实现流程整体运行情况,我们可参考如下所示:

基于上述的流程图,我们可以看到:

从整个宏观角度来说,AutoGPT 的整体工作流程主要围绕 First Prompt、Propose Action、Execute Action、Embed Data 以及 Vector Database 等 5 个核心阶段自主循环进行。

这种循环机制使得 AutoGPT 能够不断地学习和优化,逐步提升自主行为建模的能力。同时,它能够适应各种场景和需求,并根据不同的情境做出相应的决策,为人类提供高质量、智能化的输出。无论是在人机交互、智能辅助还是智能决策等领域,AutoGPT 都展现出了其巨大的潜力和广泛的应用前景。

在我们深入了解循环序列中的每个步骤之前,还有一个关键步骤,即初始化代理。

在 AutoGPT 完全自主地执行任务之前,首先需要初始化一个代理(Agent)。这个代理的本质是描述了 GPT-4 的身份和其应追求的目标。

Agent 在系统中起到了引导和指导的作用,扮演着一个决策者的角色,为 AutoGPT 的行为提供方向和目标。通过初始化代理,我们能够定义 GPT-4 的身份特征、任务范围以及预期结果,从而确保其行动是有目的性和意义的。

在这个初始化阶段,AutoGPT 会进行代理的设置和准备工作。这包括加载必要的模型参数、构建合适的上下文环境以及为系统提供初始输入。通过这个初始化步骤,AutoPT 能够在循环序列开始之前进入一种准备就绪的状态,确保后续的循环步骤能够顺利进行。

初始化代理是整个循环过程中的关键环节之一,它为后续的步骤提供了一个稳定的起点。通过精心设计和准确的初始化,AutoGPT 能够在每个循环周期中更好地理解和建模自主行为,从而生成更准确、有逻辑性的输出。这个初始化步骤为 AutoGPT 的整体性能和效果奠定了坚实的基础,为其在各个领域的应用提供了强大的支持。

03

AutoGPT 核心阶段解析

Step 1 :First Prompt

在完成初始化代理操作后,Auto-GPT 已经创建了其代理的描述以及明确的目标,那么,基于上述的这些基础,Auto-GPT 现在可以开始执行第一个自主操作,即 “First Prompt”。

在其循环序列的第一步中,AutoGPT 首先会根据当前的状态和环境,生成一个触发操作的提示。该提示可以是文字、代码、图像等任何形式,其作用是指示 AutoGPT 接下来应该执行什么操作。具体可参考如下示意图所示:

Auto-GPT 自治循环周期 Step 1

作为 GPT-4 的重要指南,First Prompt 由三个不同的组成部分组成,每个组成部分在塑造其行动方面都发挥着至关重要的作用:

1. System Prompt

该组件充当基础,定义 GPT-4 可以使用的命令。System Prompt 建立了 GPT-4 可以运行的能力和边界,确保其响应符合预期目的。

通常而言,System Prompt 是 GPT-4 理解和执行任务的关键,它为 GPT-4 提供了背景,有助于其记住应遵循的某些准则。System Prompt 由以下部分组成:

a. 初始化 Agent 的目标和描述

b. 应遵守的约束条件

c. 能够使用的命令

d. 有权访问的资源

e. 评估步骤

f. 有效JSON输出的示例

2. Summary

该组件是 AutoGPT 理解任务和做出决策的关键,为 AutoGPT 提供了任务的上下文和关键信息,帮助 AutoGPT 理解任务的目标和要求。它本质上包含了 GPT-4 掌握手头任务所需的上下文和关键信息的简明概述。这类似于在委派责任之前提供简洁的简报。

通常而言,Summary 可以由手动编写,也可以由 AutoGPT 自动生成。手动编写可以保证准确性和错误,但需要耗费大量的时间和精力。自动生成的 Summary 能够提高效率,但可能存在可以存在准确性和重要性的问题。

在实际业务场景应用中,可以根据任务的具体情况来选择 Summary 的编写方式。如果任务比较简单,可以使用自动生成的 Summary 。如果任务比较复杂,需要保证 Summary 的准确性和缺陷,则建议使用手动进行编写。

3. Call to Action

此组件向 GPT-4 提出直接问题,寻求其针对给定提示使用最合适的命令的决定。它是一个关键的十字路口,促使 GPT-4 利用其对提示和可用命令的理解来选择最合适的行动方案。

Call to Action 的作用是帮助 AutoGPT 明确任务目标,从而做出正确的决策。例如,如果 Call to Action 中提到的操作是生成文章,那么 AutoGPT 就会知道应该生成文字。如果 Call to Action 中提到的参数是文章的主题,那么 AutoGPT 就会知道应该从这个主题出发来生成文章。

通常而言,可以根据任务的具体情况来选择 Call to Action 的编写方式。同时,针对编写或生成的 Call to Action,尽可能满足明确、完整以及简洁等基本特性,以能够更好的提高 AutoGPT First Prompt 中的 Call to Action 的效果,从而帮助 AutoGPT 更好地理解任务并做出决策。

Step 2 :Propose Action

在完成上述步骤后,AutoGPT 会根据上述所定义的提示,对任务进行全面的理解和分析,并根据其解析后的结果,做出执行任务的最佳决策。在做出决策后,AutoGPT 会提出具体的操作方案,指导其执行任务。

Auto-GPT 自治循环周期 Step 2‍

在"Proposes Actions"步骤中,主要涉及六个独立的子步骤,描述了一种称为推理和行动(ReACT)提示格式的方法。以下是对每个子步骤的更详细描述,具体如下所示:

1、Thoughts:在此子步骤中,要求生成一个与给定情境相关的想法或概念。这可以是对问题的理解、背景知识或相关事实的描述。

2、Reasoning:在这一子步骤中,要求对给定情境进行推理。这可能涉及到分析、解释或从已知信息中得出结论。

3、Plan:在此子步骤中,要求提出一个行动计划或策略,用于解决给定的情境或问题。这可以是一系列步骤、建议或指南,以实现特定的目标。

4、Criticism:在这一步骤中,要求对先前的想法、推理或计划进行批评或评估。这可能包括指出潜在的问题、不足之处或可能的改进。

5、Speak:在此子步骤中,要求提出一个具体的行动或建议,以应对给定的情境。这可能是一个具体的建议、指令或行动的描述。

6、Action:在这一步骤中,要求明确描述执行行动的细节和步骤。这可以包括所需的资源、时间安排和实施方式。

以上这些步骤构成了推理和行动(ReACT)提示格式,旨在引导生成模型在给定情境下提供连贯、有条理且可执行的回答。这种格式可以帮助生成模型更好地理解问题、推理解决方案并提供相关的行动建议。

ReACT 是 AutoGPT 的一大亮点特性,允许 GPT-4 模仿人类的思考过程,并进行自我批评,从而使得 GPT-4 能够展示出比直接询问模型更复杂的推理能力,引领 AI 创新走向更高一层。

ReACT 的基本说明性示例

当我们使用 ReACT 框架向 GPT-4 提出问题时,我们会要求它先输出自己的想法 、行动和观察结果,然后得出结论。这是一种模拟人类思考过程的方法,可以帮助 GPT-4进行更全面的推理。

研究表明,这种方法可以提高 GPT-4 的准确性。在一些测试中,GPT-4 在使用 ReACT 框架后,正确率提高了 10% 以上。

Step 3 : Execute Action

AutoGPT Execute Action 是 AutoGPT 在理解任务并做出决策后,执行任务的具体操作。它由以下几个步骤组成:

1、获取操作参数

AutoGPT 首先会获取操作参数,这些参数指示 AutoGPT 执行操作时需要的具体信息。AutoGPT 获取操作参数的方式可以是通过提示、用户输入或模型本身的推理。例如,如果操作是生成文章,那么参数可以通过提示中指定,也可以通过用户输入,或者由 AutoGPT 根据任务的上下文和按键信息进行推理。

2、生成操作计划

AutoGPT 会根据操作参数生成操作计划。操作计划是指示 AutoGPT 如何执行操作的具体步骤。通常,生成文章的操作计划可能包括以下步骤:收集相关信息、组织信息以及内容生成等。

AutoGPT生成操作计划的方式可以是通过规则、算法或模型自身的学习。例如,文章生成的操作计划可以使用以下规则进行生成:

代码语言:javascript
复制
if topic is "香港"
then
    include information about Hongkong
end if

也可以通过如下算法进行生成:

代码语言:javascript
复制
for each information
    if information is relevant to topic
        then include information
    end if

当然,除了上述方式外,我们还可以借助以下模型进行生成:

代码语言:javascript
复制
model = trained on a dataset of articles
plan = model.generate_plan(topic)

3、实施操作计划

AutoGPT 执行操作计划的方式可以是通过调用外部系统、执行代码或模型自身的操作。例如,生成文章的操作可以通过调用文本生成模型来执行,也可以通过执行代码来执行,还可以由 AutoGPT 自身生成文章来执行。

4、评估反馈结果

AutoGPT 评估操作结果的方式可以是通过人工评估、自动评估或模型自身的评估。例如,生成文章的操作结果可以通过人工评估,也可以使用自动评估可以通过模型进行评估,还可以通过 AutoGPT 自身进行评估。

Auto-GPT 自治循环周期 Step 3‍

GPT-4 的系统提示中明确说明了它可以使用网络搜索。因此,在 GPT-4 看来,使用网络搜索是一个有效的操作。这表明,GPT-4 的自主性依赖于它所拥有的工具。如果 GPT-4 唯一拥有的工具是网络搜索,那么它的自主性就会受到限制。

因此,从某种意义上来讲,AutoGPT 的自主性与拥有的工具数量密切相关。如果 AutoGPT 拥有更多的工具,那么它的自主性就会更高。例如,如果 AutoGPT 不仅可以使用网络搜索,还可以访问外部数据库、调用其他服务等,那么它的自主性就会更高。

Step 4 : Embed Data

Auto-GPT 自治循环周期 Step 4‍

此处的 Embed 是基于 OpenAI 的 *text-embedding-ada-002 *模型生成的。该模型是基于自适应注意力模型(Adaptive Attention Model)的具有,增强的学习能力和泛化能力。在很多业务场景实践中,该模型都表现出了优异的性能,例如文本分类、文本生成、自然语言理解等。

AutoGPT Embed Data 步骤是指在 AutoGPT 理解任务并做出决策之前,将任务输入数据转换为模型可以处理的格式。这个步骤通常包括以下几个步骤:

1、数据重构

首先,AutoGPT 会对数据进行重构,包括清理、整理和转换等操作。例如,如果任务输入的数据是文本,AutoGPT 会将其转换为字符串列表或其他适合处理的数据结构。

2、特征提取

接下来,AutoGPT 会从数据中提取特征,这些特征是模型可以处理的信息。例如,如果任务输入的数据是文本,AutoGPT 可以提取文本中的单词、词组、句子等作为特征。

3、特征编码

在这一步骤中,AutoGPT 对提取到的特征进行编码,将其转换为模型能够理解的序列形式。例如,如果任务输入数据是文本,AutoGPT 可以使用词嵌入技术将单词编码为向量表示。

通过这些步骤,AutoGPT 将任务的输入数据转换为适合模型处理的格式,以便进行后续的理解、推理和决策。这个过程有助于模型更好地理解和处理不同类型的任务和数据。

Step 5 : Vector Database

在上述 Step 4 的 Embed Data 生成后,我们需要将其存储在一个可以快速检索的系统中。Pinecone 是一种常用的向量数据库,它提供了高效的查询和相似度搜索功能。当然,如果有其他系统能够满足大家的需求,我们也可以尝试使用。例如,可以使用关系数据库、NoSQL 数据库或云存储服务等以满足检索需要。

Auto-GPT 自治循环周期 Step 5

此处,可能有朋友会问,为什么一定要 Vector Database ?其他的数据库不可以吗?‍‍‍‍‍

矢量数据库是一种将信息存储为矢量或数字数组的数据库。每条信息都表示为一个向量,其中向量中的每个数字对应于数据的特定属性或特征。

在这种情况下,我们可以使用向量作为索引来从数据库中搜索和检索数据。查询向量不需要与数据库向量完全匹配。数据库引擎可以有效地检索由相近向量索引的数据。

基于大型语言模型设计理念,AutoGPT 使用矢量数据库主要有以下几个核心特征考量,具体:

1、提高效率:通常来讲,矢量数据库可以快速搜索相似的处理。这对于AutoGPT来说非常重要,因为它需要在大量的信息中快速找到相关的信息。

2、提高准确性:矢量数据库可以使用相似度搜索来找到最相关的信息。这可以提高 AutoGPT 的准确性,因为它可以避免查找与任务无关的信息。

3、提高灵活性:矢量数据库可以存储各种信息,包括文本、图像、代码等。这可以提高 AutoGPT 的灵活性类型,因为它可以适应各种任务。

具体来说,AutoGPT 可以使用矢量数据库来辅助以下任务:

1、文本生成:AutoGPT 可以利用矢量数据库来获取有关主题的信息,从而生成更准确和更相关的文本。

2、自然语言理解:AutoGPT 可以使用向量数据库来查询有关文本的上下文信息,从而更好地理解文本的含义。

3、知识问答:AutoGPT 可以利用向量数据库来查询有关问题的相关信息,从而生成更全面、更准确的答案。

总而言之,矢量数据库可以为 AutoGPT 提供许多优势,包括高效、准确性和灵活性。因此,至少目前来说,AutoGPT 使用矢量数据库是一种合理的选择。

Reference :

[1] https://www.maartengrootendorst.com/blog/autogpt/

Adiós !

··································

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于 AutoGPT AI Agents 的更多解析
  • AutoGPT 底层逻辑架构实现
  • AutoGPT 核心阶段解析
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档