说起来可能不容易让人相信,现在的人工智能——也就是基于当下顶尖计算机科技的NLP语言模型,居然在基本的计算能力上拉胯。也许你觉得这里说的人工智能基本算术不行,是针对超过人脑快算的大数,事实上相反,这里只是三位数的加法。对,仅仅是普通的加法。
不会吧,咱说别的可能不行,可是对于电子计算机设备的老本行——算术上——特别是普通加减乘除这样的数学问题,计算机的算法(哪怕是手机)不是都比我们人类强岂止千万倍吗?更何况是算法中的算法,比普通算法更卓越更顶尖的人工智能算法?怎么连最基本的能力都没了?
非也。目前NLP模型在文本处理上已经达到了一个很高的水平,可以说和自然语言相关的诗词歌赋样样精通,然而一直以来,它在数字表示上却很一般,有些是将数字看作纯文本,有些则是将数字进行某些映射变成抽象的数字或向量。另外就AI算法和普通算术的区别,机智客个人认为,直接面向数据的普通算法,无非就是将代码转成机器码,直接发挥计算机的逻辑运算计算功能的,AI模型则是用于推理,不直接用于数据。AI算法,就是如此抽象,更何况是自然语言处理这样的文本领域。
就好比,我是个文人墨客,你要我去做算术,说客气点,大抵是不行的;不客气点就是,我在这方面是白痴。这里其实涉及的是理解代码。这是语言模型的问题,这也是来自MIT和谷歌的研究人员解决的问题,提升NLP语言模型的计算能力。
此次研究人员选用了仅含解码器结构的Transformer语言模型来实验,其参数规模介于200万到1370亿之间。开始在简单基本加法算术上做试验,研究人员的思路是,不用修改模型的底层架构,只需训练它们学会像程序员debug时那样“打断点”,也就是在计算步骤较多的程序中,让模型把每一步都编码为文本,并将它们记录到一个称为“便签”的暂存器中。阅读代码的能力就能提升一大截。以此类推,转移到大数加法、多项式计算,语言模型也能顺理成章地“理解”了。
为什么明明用普通Python代码(或者其他任何完整高级编程语言)都能轻松完成的工作,非要用AI语言模型大费周章?其实,还是上文所说的,这项研究解决的是,理解问题。也就是说,实质不在于本身多么容易,而在于让AI能做。一旦语言模型能做了,在一定程度上,表明它能“理解”(虽然这个理解和我们人类的理解完全不同)了,比如“理解”了Python代码,是不是可以更进一步懂得如何捋出编程逻辑了?所以这也更有利于迁移到更广阔的其他空间,应用于其他问题。
领取专属 10元无门槛券
私享最新 技术干货