> 自媒体 > AI人工智能 > 自主 AI 来了?一文详解火爆全网的 AutoGPT
自主 AI 来了?一文详解火爆全网的 AutoGPT
来源:CSDN
2023-05-22
238
管理

最近,开源 AI 项目 AutoGPT 在开发者圈中掀起了不小的热潮,“无需人类插手,自主完成任务

”的特点吸引来了很多人的关注,为此本文作者将就 AutoGPT 的工作原理进行深入解析。

原文链

接:https://sudoapps.substack.com/p/technical-dive-into-autogpt

未经授权,禁止转载!

作者 | SAMIR KHOJA

译者 | 弯月 责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

你是否曾听说过开源项目 Auto-GPT?该项目使用各种技巧打造的 GPT 可以围绕某个特定的目标自主完成任务,还为 GPT 提供了一个可执行命令列表,帮助它朝着总体目标持续迈进。

我尝试使用 Auto-GPT 获得了一些有趣的结果,我还深入查看了项目的整体架构,GitHub 上 10 万 的 Star 数表明了其巨大的发展潜力。

为了更好地理解 Auto-GPT 的概念及其工作原理,我们将深入探讨以下核心领域:

▶ 该项目使用了哪些模型?

▶ 如何让 GPT 具备记忆力?

▶ 如何提高 GPT 的响应可靠性?

▶ 如何解析 GPT 的响应?

▶ 如何指定 GPT 可以执行的命令?

如何让 GPT 具备记忆力?

GPT 模型的设计并没有考虑记忆力,然而 Auto-GPT 使用外部记忆模块消除了这个限制。在深入了解如何让 GPT 具备记忆力之前,我们先来介绍几个概念:

▶ 嵌入

▶ 向量存储与搜索

▶ OpenAI 的聊天补全 API

嵌入是文本的向量表示,可以更轻松地用于各种机器学习的模型或算法。Auto-GPT 使用了 OpenAI 的嵌入 API 根据 GPT 文本输出创建嵌入。

我们可以使用的向量存储服务有很多。Auto-GPT 使用的是:本地存储、Pinecone(第三方服务)、Redis 和 Milvus(开源服务)。Pinecone 和 Milvus 优化了向量搜索算法,可以根据相关上下文搜索文本嵌入。

Auto-GPT 将嵌入存储到这些向量存储服务之一,然后通过搜索当前任务会话的相关向量将上下文注入到 GPT。下面是这段代码的核心部分:

图片源自:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/prompts/prompt.py

我们看到在这些提示的引导下,GPT 的自主性和自力更生能力都得到了提高,还能看到很多通过持续反馈循环来帮助 GPT 自我改进输出的案例。我不确定下面的自我绩效评估提示是否能达到同样的效果,但至少这段代码奠定了基础:

解读响应

这可能是理解 Auto-GPT 内部工作原理最重要的方面。如果不能有效地解释响应,就不应该让 GPT 执行命令(即允许它访问外部世界)。Auto-GPT 使用了一种非常简单但很强大的提示技术来确保 GPT 以固定的 JSON 格式响应,然后通过代码进行解析:

图片源自:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/prompts/generator.py

在测试中,我使用了固定格式的响应,从结果看来 GPT-3.5-turbo 非常高效,尽管偶尔也有一些幻觉(相比之下 GPT-4 更可靠)。我们通过这种方法指示 GPT 执行命令,还需要检查结果。在 GPT 执行命令时,响应的信息包含在 command 对象中。

与现实世界互动

自主代理要想真正发挥作用就必须能够完成实际的工作,并与现实世界交互,比如文件系统或互联网等。Auto-GPT 必须编写能授权 GPT 执行的每个命令,在生成约束和自我评估的初始提示时,还可以提供可执行命令及其参数的列表。下面是将命令添加到提示符的类函数:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/prompts/generator.py

基本的提示生成器中有一个预定义的命令列表:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/stable/autogpt/prompt.py

这是 GPT 引用命令的格式,可以使用参数执行命令。以下代码可以将最终提示格式化为 GPT 的字符串:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/prompts/generator.py

如你所见,这段代码集合了上述所有功能。这个提示可以为 GPT 提供约束条件、自我评估的方向、资源、命令以及响应格式。接下来,在解析 GPT 返回的响应时,我们就很清楚它所执行的命令和参数了。最后一步是执行命令:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/stable/autogpt/app.py

在这段代码中,在解析 GPT 的响应后,每个命令都获得了自己的参数,然后执行。GPT 的命令之一是 task_completed,如果在连续模式下运行,程序将在 GPT 实现目标后关闭或退出:

图片来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/app.py

BabyAGI

BabyAGI 也使用了类似的概念,但大大简化了实现(整体功能较少)。它支持 LLaMA 和 OpenAI 作为模型输入,在提供目标和初始任务后,创建三个代理来执行目标:任务执行代理、任务创建代理和任务优先级代理。每个代理都有自己的提示和约束,包括来自每个相关任务执行的上下文。这个过程将循环执行,直到没有剩余的任务并且目标完成。

Auto-GPT 和 BabyAGI 都获得了大量关注,并且正在不断改进。

总结

毋庸置疑,很多人为这些项目做出了努力,并在不断改进它们。这些项目是 AI 领域向前迈出的激动人心的一步,我们距离 AI 自主完成任务并在生活方方面面协助我们的未来更近了一步。我要强调的不仅仅是一些核心概念,这些概念可以帮助我们了解其内部运作方式,并为自主代理的新世界做出贡献。

2
点赞
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与华威派无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非华威派)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@goodmaoning.com
关于作者
阳光下的微笑(普通会员)
点击领取今天的签到奖励!
签到排行
2
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索