这个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工作流程图
在用户输入完指令后,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环境搭建,动手能力强的读者可根据下面的项目页面中的指示体验: