从去年年初,gpt横空出世,我就在持续关注且不断尝试在工作中使用,一直致力于把gpt从一个普通的问答自然语言模型转变为底层数据支持的生产力。
经过一年的折腾,这期间也接触和使用了很多国内的AI自然语言模型。有了一些心得和经验,但也发现了一些共性弱点。 其实,说实话,这些模型大差不差,价格也好,准确度也好,性能上,没有达到质的差距。所以我猜测他们的实现逻辑起码也都类似。弱点也自然都一样。
弱点介绍:
你给gpt一段原始功能需求描述,让其进行解析,最好在生成一些成果物,比如测试用例或者实现逻辑。gpt的确会给你生成一些最终结果,看起来似乎也还不错。
但如果你让gpt不要直接生成最终结果,而是生成中间过程的某一步的产出。你就会发现,gpt回答的一塌糊涂,不但不专业,甚至可能很糟糕。这个结果,我经过了很多测试,都确实有这个现象。
影响:
如果想把gpt的答案作为一些下游算法的入参,那是要相当难得,这意味着,要么你就单独使用gpt到底,要么就尽量别用。让gpt和固定算法函数结合在目前来讲不算个简单的好方案。
原因:
gpt的数据来源是综合学习,而这些学习材料的来源并不完整,大多是已经出现的互联网的最终答案,而非中间过程,这就导致gpt在中间实现过程这一块很弱。
举个例子:你问gpt,200X200 等于多少。她会直接秒答40000,但这个计算过程并非我们人类的去列竖式子,而是因为之前有无数人回答过这个问题,答案就是40000,所以gpt知道结果,并不知道如何得来。如果你问这个中间过程,那估计就得不到你想要的答案了。
再举个例子:考试的时候,一个差生抄了尖子生的选择题答案,虽然考试都得了满分,但是老师让差生上讲台黑板讲一下为什么选对,结果发现差生两手一摊...这就是gpt,所以如果作为你的程序中的中间部分,让其产生中间的某个过程成果物,那一定要留神,
解决方案:
把gpt按渐进式的办法引入到程序中,一开始,手工+算法占比很大,gpt做打下手的工作,比如对某个自然语言进行判断,返回结果就是1 or 0。这个过程中,本地再训练一个传统AI模型,让其学习和记录原始需求和中间结果的关系,把这个中间结果最终训练到和最终结果一样的准确度,最终和gpt相结合的方式,让gpt占比逐渐增大,稳一点。
当然,这个过程中会增加很多额外成本,比如要收集和标注结果等,AI的成长也可能不是很顺利。 但我相信,技术是不可能有止境的!没准过几个月,这个难题就解决掉了!
本文完...