变压器进行数学运算
如果您尝试过ChatGPT,可能意识到它仍然可能在加法方面出错。例如,我今天刚试过,得到的结果是"1,452,385 + 23,420,343 等于 24,975,728"。那么,为什么会出现错误,变形金刚在数学任务方面的现代最佳表现如何?
为什么变压器在加法方面表现不佳。让我们首先专注于加法。我们将列举一些原因,但有关更全面的列表,请参阅相关文献。
- 分词。字符串“12345”有时可以被分词为两个令牌[“123”,“45”],而不是按照数字分割。这使得模型更难学习数字进位加法算法。参见[Thawani 2021]和[Nogueira 2021]。修正:字符级分词。[Thawani 2021]表明字符级分词有所帮助。
- 固定计算。奇怪的是,无论数字有多少位数,变压器都会运行固定数量的计算,因为它们有固定数量的层。解决方法:使用循环神经网络(RNN)代替固定层。[Deghnani 2021]通过通用变压器修复了这个问题,其中我们不再有固定数量的层,而是有一个可以在残差流上迭代直到RNN决定完成计算的RNN。附注:[Liu 2023]解释了固定层变压器如何学习近似迭代算法行为,其中层数约为O(log 迭代次数)。
- 绝对位置嵌入还使得学习迭代算法变得具有挑战性。例如,如果网络将5位数和4位数作为不同的示例进行处理,那么带进位的模式"...5...+...6... = ...1..." 就会更难学习。解决方法是:使用相对位置嵌入。请参阅[Jelassi 2023]。
先进的技术。以下是一些值得注意的型号:
- 困难的数学问题。[Lightman 2023]来自Open AI,基于GPT-4构建,能够解决高中数学竞赛的文字问题。这是这里列出的最复杂的“数学”问题陈述。他们的诀窍是针对一个由人类策划的步骤生成数据集进行微调。例如,“给定问题和已有步骤,下一步是什么?”
- 简单加法,15位数,外推。[Jelassi 2023]使用了通用变压器和相对位置嵌入。对于15位数的加法,在领域内的准确率达到了100%(即测试集和训练集的数字长度相同),但在领域外,他们的准确率为98.3%。
- 简单加法,3位数,可解释的。 [Kruthoff 2024] 关注于最多有2次进位的3位数加法的简化问题。特别之处在于,他们的双层变压器不仅能够达到100%准确率,而且还学习了一个可解释的算法:我们最喜欢的数字进位加法算法!
接下来是什么?下面是我想看到的一些有趣结果的想法(如果它们还不存在的话…)
- 任何位数的数字都可以达到100%的性能。 来自[Jelassi 2023]的作者小组看起来很强大,但我们还没有达到100%的性能。 但是,考虑到[Kruthoff 2024]已经在两层变压器上找到了数字进位加法算法,很有道理,很快将有人找出如何训练通用变压器来学习进位数字加法算法,然后可以推广到任何位数。
- 了解当前模型的加法算法。了解当前非100%的模型正在做什么。例如,GPT-4,Jelassi 2023 - 它们并没有100%的性能,但模型仍然工作得很好。如果这不是进位加法,那么这个奇怪的算法是什么?它是否仍与人类计算有联系?毕竟,人类能够做出不精确的加法(参见[Gallistell 2018])。
- 了解当前模型的数字能力。除了加法之外,还有许多其他与数字有关的任务,比如大小比较。人类的数字能力有哪些方面?(参见[Gallistell 2018]),我们如何最好地将它们注入到大模型中?(参见[Liang 2022])
参考文献
【Thawani 2021】在自然语言处理中代表数字:一项调查和愿景
[Nogueira 2021] 研究转换器在简单算术任务中的限制
【Deghnani 2019】通用变压器
[Jelassi 2023] 算术变压器中的长度概括
[Lightman 2023] 让我们一步一步验证
[Kruthoff 2024] 在transformers中实现算法的迁移
[Liu 2023] 变形金刚学会了自动机的快捷方式
[Liang 2022] MWP-BERT:数学词问题解决的数值增强预训练
[Gallistell 2018] 在大脑中寻找数字