浅析Auto-GPT

小弟斗胆,尝试浅析一下最近大热的项目Auto-GPT。最近网上也有不少文章介绍如何部署Auto-GPT到本机,docker,以及使用效果等,但是具体实现方式和介绍项目本质的文章并不多,所以想写下一些文字做个简单记录…

什么是Auto-GPT

一句话概括,之前使用ChatGPT,需要自己思考并创建prompt来输入模型让其输出尽可能令人满意的答案。而Auto-GPT,则是只需给定一个目标, Auto-GPT便会自动构造prompt作为输入给到ChatGPT,根据回复再执行各种给定的工具来帮助达到目的,这个过程会不断循环,模型会不断思考,直到其认为任务结束为止。要注意的是,这个开源项目目前还处于试验性质,距离真正实用还有一段距离。但相信随着项目的不断优化和新功能的添加,这一天应该不会太远。

ChatGPT

要实现Auto-GPT,那么ChatGPT,或者是其他的语言模型是必不可少的组件,他相当于整个项目的大脑,所有工具的调度都要经它来决定。关于ChatGPT的模型架构,训练,API等内容,网上有不少介绍文章,这里只做简单概括…

模型架构:和之前的GPT预训练模型差别不大,都是Transformer的decoder only架构,详细的内容可以查阅其他大神的文章,我就不在这里班门弄斧了,包括如何tokenize,embedding,position encoding, self-attention等等概念…

ChatGPT的训练:OpenAI根据在GPT1,GPT2和GPT3预训练模型的基础上,训练出了GPT3.5,具体参数量和训练数据未知。具体GPT预训练过程的详细内容,又是一个大的话题,在这里就先略过了。在GPT3.5的预训练结束后,通过三步对GPT3.5进行微调,令其能讲人话的同时,还能够按照正常人的思路回答问题。第一步是所谓的SFT,OpenAI雇佣一群来自肯尼亚的labeler,想出了一些优质的问答对然后输入原始的预训练模型GPT3.5做supervised fine-tune。第二步重复地从数据库中随机找到一个问题,并把问题输入SFT,输出n次答案,labeler对输出的答案满意度排序,最后把排序的结果作为训练集来训练一个奖励模型reward model,模型会输出一个分数判断答案的满意度。第三步是Reinforcement Learning,把刚才训练出来的Reward model看成是environment,把第一步Fine-tune出来的GPT3.5看成Agent,然后通过PPO算法进行强化学习训练,尽量让Agent(GPT3.5)输出的答案得分(Reward)最高,最后训练出来的Agent,就是ChatGPT了。当然这些只是非常笼统的概括,当中还有大量的细节没有提及。

ChatGPT API:从OpenAI官网获取,https://platform.openai.com/account/api-keys,注意调用API是需要按token数收取费用的,新注册账号只有5美元免费额度。

Auto-GPT

先看一个简略版的图,该图是根据Auto-GPT项目源码,抽丝剥茧把一些不太重要的功能简化(魔改)后得出的大体框架。如果需要添加额外功能,理论上能从上面添加。根据个人理解画出,如与实际有出入欢迎指正~

第一步:运行主程序之后,首先检测OpenAI的API Key的信息是否已提供,然后把初始化的信息,包括:短期记忆,数据库中相关联内容(如果是第一次运行,这两应该都是没有的),组合过的prompt等传入Agent。Agent再根据prompt,memory等信息传入chat_with_ai函数。Chat_with_ai函数会根据used token数量为条件,把组合的信息整合并发送到GPT3.5/GPT4模型并获取返回的回复内容。

第二步:根据第一步返回的内容,Agent会调用名为fix_json_using_mutiple_techniques的函数,把模型返回的结果进一步转成JSON格式。

第三步:根据JSON格式的模型回复,Agent会读取其中的thoughts, reason, plan, criticism。然后调用get_command函数,获取其中包含的command name和对应的argument然后再传入execute_command函数,该函数再根据传入的command name调用对应的预先准备好的工具函数例如google search, read file, write file, execute code甚至是start agent, message agent等等,以此来达到给定任务的目标。具体各工具的实现,可以参阅Auto-GPT开源代码。

第四步:把模型回复的内容通过预训练模型做embedding,然后保存到数据库中,在Auto-GPT的源码里,这个数据库可以是成熟的向量数据库如milvus,pinecone等,但也需要API Key来调用,如果没有第三方数据库,则创建一个local的JSON文档来记录。在数据库中调用相关联的内容时,会把当前短期记忆里的内容做embedding,然后再与数据库中每次保存的内容点积作比较,然后排序把最相关的top 10拿出来作为输入。

第五步:把第三步执行某个command的结果append到一个短期记忆的list里,下一次循环会把它加入到输入中让模型思考下一步。

第六步:重复执行前五步直至模型认为任务完成为止。

最后附上魔改后的代码https://github.com/DeeJ4yNg/Mini-Auto-GPT,这是在4月初项目代码量还不太大的基础上修改的。去掉了原Auto-GPT项目里的参数配置,config,log,plugin等相关模块,可以更清晰的理解其工作原理,另外Memory也取消了第三方的向量数据库,直接搬运local cache,command方面也只保留了文件操作和执行脚本等相关工具,取消了联网搜索功能。附上Auto-GPT开源项目地址:GitHub - Significant-Gravitas/Auto-GPT: An experimental open-source attempt to make GPT-4 fully autonomous.

当然,如果今天想简单地实现Auto-GPT,可以用Langchain,不到30行代码即可拥有:https://python.langchain.com/en/latest/use_cases/autonomous_agents/autogpt.html

个人感想:

从ChatGPT横空出世到Auto-GPT star数飙升,也不过半年时间,不得不感概这半年来深度学习领域技术传播的迅速,让广泛大众开始接触生成式模型带来的便利。也感概如今的大语言模型效果超乎想象。虽然目前Auto-GPT还是一个实验性质的东西,效果大多数时候不太理想还烧美金,但随着各大厂的竞争和大语言模型的持续发展和优化,以及类似Auto-GPT等应用工具在各大社区的不断完善之下,相信类似的工程模式在未来会百花齐放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12787.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blender一些建模技巧与应用

平滑卡线(加线) 卡结构线(加线)时,按E均匀线条会使加线与边线均匀对齐。 投影切割 投影切割:使用调形后的曲线,放到模型表面上方进行投影切割(投影形状是:曲线范围内…

Blender 物理属性 (二)布料和碰撞

文章目录 添加与去除布料查看布料效果布料的预设属性(模拟不同的布料效果)布料与其他物体碰撞布料的自交叉问题布料钉固制作一个窗帘 添加与去除布料 1 添加:物体模式选中一个物体,属性栏/物理属性(蓝色圆圈),选择布料…

Blender 模型合并,贴图变糊解决方法

合并前 合并后 原因:两个模型的uv命名不一样。 解决:命名改成一样。

blender 合并多个模型文件中的动画并导出为fbx格式

blender 合并多个模型文件中的动画并导出为fbx格式 契机步骤导出之前导出为fbx 总结 契机 最近在做和Three.js有关的项目,涉及到同一人物的不同动作切换。然而从mixamo上下载下来的动作文件都是独立的,而three中使用合并在一起的单一模型文件会更方便&a…

Blender导出.fbx模型到Unity贴图丢失

原因: 因为Blender的混合着色器是由很多节点组成的,而目标软件获取不到这些过程shader节点的信息,所以目标软件(如Unity)无法加载正确的贴图。一般方法的导出.fbx模型只能导出一些基本的颜色信息和单一纹理贴图。而不…

blender的使用和常见问题

一、切换成中文 二、常用快捷键 全选:【A】 透视:【Z】 删除:【X】 模型角度:【1】沿x轴方向看、【3】沿y轴方向看、【7】沿z轴方向看 选择与确认:【鼠标右键】选择、【鼠标左键】确认 多选:【shift】【鼠…

【Blender】如何在Blender中添加HDRI环境贴图

​ 什么是HDRI环境贴图 环境贴图或HDRI贴图是在Blender中照亮3D场景并实现逼真效果的最有效和最快捷的方法之一。 HDRIs本质上是现实世界照明的快照,其中包含高动态范围成像(HDRI)的准确照明细节。HDRI是一个包含亮度信息(从暗…

Blender 贴图相关

快捷调整材质贴图方法 纹理坐标选择 UV,进入编辑模式,快捷键 U,块面/柱面/球面/从视角投影: 边缘磨损节点 本地文件:磨损节点.blend 全息材质 可以通过右侧的材质栏修改颜色、粗细、速度(速度为负值时方…

2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。

2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。 答案2023-03-10: 方法一、使用 github.com/moonfdd/ffmpeg-go 库,基于雷霄骅的代码修改。 方法二、使用golang官方库image/jpeg,yuv420p先转换成rgb,再…

致敬马克龙访华?法国品牌手机接入鸿蒙!?---转自百度新闻

马克龙的中国之行收获满满,欧洲新领袖呼之欲出。双方签署了很多商业协议,两国的企业赚得盆满钵满。这个世界的规则有时候就很简单:赚钱。与此同时,有一家自称法式浪漫风格的手机品牌WIKO,宣布接入鸿蒙。 星空君煞有介事…

微软谷歌AI大乱斗,谁又将成为中国的“ChatGPT”?

导读:2023年,ChatGPT已经进入内卷时代。 如果科技圈也有热搜排行榜,ChatGPT无疑稳坐“爆”款头条。 ChatGPT已成为史上用户增长最快的消费级应用(根据投行瑞银集团研究估算),自2022年11月30日推出以来&…

ChatGPT 最强代码解释器突破“封印”:30 秒出片、5 分钟制作游戏、可视化分析...样样精通!...

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 20 美元,雇佣一位非常擅长数据分析的个人 AI 助理,到底值不值? 现在,OpenAI 正在让用户这 20 美元花得更值。 今年 3 月,OpenAI 首次宣布为 C…

2023-03-11:给定一个N*M的二维矩阵,只由字符‘O‘、‘X‘、‘S‘、‘E‘组成, ‘O‘表示这个地方是可通行的平地, ‘X‘表示这个地方是不可通行的障碍, ‘S‘表示这个地方有一个士兵,全

2023-03-11:给定一个N*M的二维矩阵,只由字符’O’、‘X’、‘S’、E’组成, O’表示这个地方是可通行的平地, X’表示这个地方是不可通行的障碍, S’表示这个地方有一个士兵,全图保证只有一个士兵&#xff…

我的ChatGPT学习笔记004

大家好啊,我是了不起! 前一段时间ChatGPT突然火爆,大佬们纷纷下场。我也跟着努力学习,做了一些笔记。 下面将陆续放出笔记,共享给小伙伴们!这是放出的第二篇,和小伙伴们与时俱进哈~~ 笔记四&…

这几天chatGPT为我赚了多少钱

大家好,我是北妈。 一、 这些天chaGPT 有多火你们也看到了。都不用我发文教育你们,给你们传播了,各大媒体,朋友圈都是它的消息了吧。 至于利用它为北妈我赚了多少钱,其实不少了,通过各种渠道和方法。以后可…

[转] ChatGPT热引发年薪千万高管辞职潮

一场技术天花板的创业。 文|《中国企业家》记者 闫俊文 编辑|李薇 图片来源|视觉中国 ChatGPT以及背后的GPT大模型,正在引发一场创业地震。 李开复、王慧文、王小川,不仅这些“退休”的互联网老兵加入了,在…

完蛋!ChatGPT 完全取代了我的 Java 编程工作!

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇:ChatGPT研究框架(80页PPT,附下载)…

ChatGPT思考:探索智能的极限

作者:符尧 yao.fued.ac.uk University of Edinburgh & Allen Institute for AI 海外独角兽和拾象一直抱着开源研究,开放分享的心态,本文是拾象 Fellow 符尧关于 ChatGPT 的新思考。符尧曾写过一篇非常精彩的拆解GPT3起源的文章&#xf…

ChatGPT 给我们 带来的哲学思考

ChatGPT 给我们 带来的哲学思考 ChatGPT 是一种基于 GPT-3 模型的聊天机器人,它可以与人类进行自然、流畅、有趣的对话。ChatGPT 的出现,不仅是人工智能技术的一次重大突破,也是对人类社会和文化的一次挑战。ChatGPT 给我们带来了一些哲学上…

Netflix 总用户达到 2.325 亿;马斯克打脸创建 X.AI 公司;印度首开苹果门店;谷歌老板对 AI 很担心?特斯拉营收增加,但净利润下降…《经济学人 | 第 17 期 | 速读版》

快速阅读版,完整英文解析版见: https://blog.csdn.net/YopenLang/article/details/130375444 中国第一季度经济增长出乎意料 中国第一季度经济同比增长 4.5%,超出了大多数经济学家的预期。 China’s economy grew by 4.5% in the first quart…