张旭豪|别笑,现在的NLP模型连三位数加法都不行

张旭豪|别笑,现在的NLP模型连三位数加法都不行

说起来可能不容易让人相信 , 现在的人工智能——也就是基于当下顶尖计算机科技的NLP语言模型 , 居然在基本的计算能力上拉胯 。 也许你觉得这里说的人工智能基本算术不行 , 是针对超过人脑快算的大数 , 事实上相反 , 这里只是三位数的加法 。 对 , 仅仅是普通的加法 。
不会吧 , 咱说别的可能不行 , 可是对于电子计算机设备的老本行——算术上——特别是普通加减乘除这样的数学问题 , 计算机的算法(哪怕是手机)不是都比我们人类强岂止千万倍吗?更何况是算法中的算法 , 比普通算法更卓越更顶尖的人工智能算法?怎么连最基本的能力都没了?

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