这个 GitHub 新项目,能让 ChatGPT 完成复杂任务,GPT3.5 和 GPT-4 都支持。
它通过将问题拆解,并调用外部资源,提高了 GPT 的工作能力。
在它的调教下,GPT-4 回答的准确率从 68% 提高到了 85%。
这个项目名叫 SmartGPT,这个名字很直白地告诉了我们它的作用。
无论是直观感受还是量化数据,GPT 在它的加持之下回答正确率都有提高。
我们不妨看看几个经典的问题。
晾干 5 件衣服需要 5 个小时,那么晾 30 件需要多长时间呢?
这是一个来自 OpenAI Playground 的经典问题。
只见 GPT 一顿操作猛如虎,又是推理又是列方程……
然而最后给出的答案是 30 个小时。
而经过 SmartGPT 调教之后,不仅得到了正确答案,还指出了此前的思路为什么会出错。
再来举个栗子,同样是来自于 OpenAI Playground 的问题。
假设有 6 升和 12 升的罐子各一个,如何量取 6 升水?
GPT 的答案嘛…… 麻烦不说,能不能解释下第五步的 2 升是怎么剩下的?
经过调教之后嘛…… 虽然不理解为什么不直接用 6 升的,但也有很大进步了。
我们也用倒拔垂杨柳的问题进行了测试,提供了诸葛亮、孙悟空和林黛玉三个选项。
第一轮,GPT-4 给出的答案是…… 孙悟空。
经过调教之后,GPT-4 终于发现了三个选项都是错误的。
同时还指出了孙悟空虽然没有倒拔垂杨柳但是有相似的情节。
需要说明的是,由于没有 GPT-4 的 API,测试是按照开发者介绍的方法手工完成的。
当然了,个例并不能说明它的表现,还是要用数据集测试一下。
开发者使用了 MMLU 数据集分别对调教前后的 GPT-4 进行了测试。
结果显示,未经调教的版本只答对了 68%,而调教后的版本答对了 85%。
顺便提一句,真人专家在测试中的平均成绩是 89.8%。
数学方面,同样使用 MMLU 数据集进行测试,开发者从中选择了 15 个大学难度的数学问题。
虽然准确率只有 60%,但也是及格了,而且比原版 GPT 的 40% 已经好了太多。
化整为零,逐步解决
开发者将 SmartGPT 中的环节形象地比作了职场中的角色:
“甲方”:SmartGPT 用户。
“经理”:和“甲方”对接,把任务拆分成高级子任务并逐一汇报给“老板”。
“老板”:制定计划,将高级子任务再次拆分,并分发给“员工”。
“员工”:接收任务,编写伪代码,交给“小黄人”执行。
“小黄人”:将伪代码优化成 LUA 脚本并运行。
作为“甲方”的用户,需要做的只是像使用普通 GPT 一样输入自己的问题,而不必给出额外指令。
SmartGPT 会帮助用户把问题拆分,然后按照步骤提交给 GPT。
此前有人发现,在输入给 GPT 的指令中加入“let’s think step by step”可以提高回复的准确率。
同时,GPT-4 具有回溯能力,能够发现并指出自己此前回答中的错误。
以上两个特性为 SmartGPT 的工作提供了重要支撑。
在用户输入完指令后,SmartGPT 对其进行处理拆分,包括添加“let’s think step by step”类似的表述。
然后它会将处理好的指令传至 GPT 的 API,并重复多次获取不同的答案。
接着,SmartGPT 会向 API 发送要求其回溯答案并选择最优解的指令。
最后,将 GPT 自己选择的最佳答案展示给用户。
上述步骤受到了三篇学术论文的启发。
这三篇论文的内容分别关于“链式提示方式”、“动态记忆及让 LLM 自我回溯”和“用对话提高 LLM 完成度”。
和其他工具相比,SmartGPT 好在哪
AutoGPT 等工具同样可以用来优化 GPT,SmartGPT 比它们好在哪里呢?
由于其工作原理是将任务进行拆分,会形成逻辑链条,因此 SmartGPT 拥有更强大的推理能力。
实用性方面,SmartGPT 由独立的子模块组成,使用者可以对它们进行任意排列、组合和删改。
此外,无论对于用户还是开发人员,SmartGPT 的配置过程都更为简单。
不过开发者也坦言,这个项目刚推出不久,因此稳定性有待考证,在内存优化方面还有所欠缺,消耗的环境资源也更多。
在项目推出之后,有网友表示我们低估了 GPT 的潜力,甚至包括 OpenAI 自己。
那么,你期待 GPT 未来的表现吗?
SmartGPT 目前暂无开箱可用版本,需要自行在 Linux 环境搭建,动手能力强的读者可根据下面的项目页面中的指示体验:
项目涉及到的论文:
参考链接: