GPT-3最令人沮丧的限制之一是上下文窗口:2048BPES在您开始提示性编程时会很快用完,而且像BPES这样的黑客会有令人讨厌和微妙的副作用(例如,没有双关语或押韵;_;)。我们如何让未来的变形金刚拥有合理的上下文窗口和/或内存?
下面我对打破密集注意力二次瓶颈的研究进行整理和归类(麦迪逊五月综述):
请随时提出我错过的建议或讨论您认为正确的前进方向。
级别1在实际操作中,您会根据OpenAI';的缩放文件使用不会太大的批次大小,因此在合理的批次大小范围内,O(N*sqrt(N))(例如Routing Transformer)相对于O(N)是足够小的。此外,路由变压器的性能似乎足够好的文本相比,与全注意力对应的相同上下文长度。OpenAI的稀疏变压器也是如此,其他模式也是如此。所以,目前在变形金刚中并没有真正的二次注意力瓶颈,因为我们已经有了很好的架构可以使用。
现在,问题是,由于我们可以用来获得合理的性能-计算折衷的批处理大小如上所述,所以上下文大小也是上界。此外,我们在一般情况下可以利用的上下文大小也是我们拥有的数据集样本可用的典型上下文大小的上限。例如,WebText的平均样本长度只有1000左右。因此,对当前远程LM方法的扩展中的体系结构改进不能进一步扩展上下文。换句话说,由于样本长度和批次大小的原因,我们遇到了上下文大小的瓶颈。
但是,您没有提到的基于检索的方法可以打破这一瓶颈。这包括许多最新的模型,包括KNN-LM、RAG、Fusion-in-Decoder、MARGE等。本质上,这些方法从当前样本和类似于当前样本上下文的不同样本中检索相关信息。KNN-LM尤其比SOTA远程LM(如路由变压器)性能更好。在某种意义上,这种方法是通过FAISS利用近似的KNN来关注数据集中的所有样本。
然而,基于KNN-LM和DPR的方法(RAG和Fusion-in-Decoder)与MARGE相比有更大的局限性,因为它们的检索器和建模部分是分开训练的。另一方面,Marge可以以这样一种方式进行训练,即两个组件端到端的联合训练是不同的。因此,在我看来,Marge对因果LM的扩展,通过Faiss定期更新KNN,将是具有无限上下文大小的因果LM的一个有前途的下一步。
2级是的,任何一种n*log(N)或n*sqrt(N)都是完全可行的,它将取决于那里的恒定因子&;Length。
但是,看WebText完全太狭隘了。毕竟,书籍很重要。您还希望处理图像或音频等序列或电子表格/表格等结构化数据,这些数据远远超出了1k字,这意味着您可以立即从长达数百万的序列中获益。这将是非常好的,如果有一个多模式转换器,可以学习普通的文本和图像(不只是普通的图像,但序列/视频,或PDF页面,一般是一个巨大的未开发的资源,但本质上作为一种图像格式,没有惊人的OCR无用-或直接从图像学习)。
我没有提到像领域这样的检索,因为我不清楚它们在什么意义上是一种解决方案。您不会在每次想要运行模型时都拖着整个数据集!您可以拥有任何长度的上下文,只要它的黑色WWikipedia不是语言模型或语言生成的解决方案即可。(毕竟,如果您的期望值如此之低,您只需在您的数据集上进一步微调GPT-3即可!)。
第2级你通过限制在短文本上错过了太多。短篇小说的字数在1500-7500字之间。长篇小说的数量要多出几个数量级(短篇小说超过4万字)。作为参考,第一部和最后一部哈利波特小说大约有8万到20万字长。像“权力的游戏”这样的书每本30万字(+/-10万字)。
那教科书呢?我找不到好的字数,但我书架上的大多数教科书都在400-1000页之间。我猜它们大多都在30万字以上。
如果我们想真正打开最丰富的知识来源,我们需要破解书籍。
级别1我知道这不完全是关于主题的,但是为了完整起见,值得一提的是,我们最终可能会回到RNN。也许我们离让它们像变形金刚一样正常工作只差几招了。
我仍然希望我们能通过这一瓶颈,并期待着随着这一领域的进展而关注它,但我们应该对这两种方法都持开放态度。
第二级我们可能会,但也许他们会被称为“变形金刚”,然后无论如何都会被称为“变形金刚”(Transformers";Transformers)。你知道这是怎么回事--总有人表明,实际上,Resnet/高速公路网/任何展开的RNNs或RNNs实际上,自回归线性注意力变形金刚(AutoregedLinealAttect Transformers)就是RNNs。但是,无论是黑猫还是白猫,只要它抓到老鼠,人们就不会太在意它的名字或细节,而且现在,人们似乎在把“变形金刚”变成RNN方面做得比把RNN变成“变形金刚”做得更好。
1级IMO,这似乎是目前一般变压器和序列预测器的最大弱点。
我认为变压器的复发机制还在探索之中。变压器XL不是真正的循环,并且有一个有限的上下文窗口。老式重复的问题是每个人都使用截断的BPTT来训练他们的RNN。这种方法是超级串行的,参数#/GPU VRAM比率非常糟糕。这意味着在实践中,你实际上不能使用一个大的模型在很长的时间序列上进行反向传播。但是,还有其他学习递归模型的方法没有这些限制。我想到了学习隐马尔可夫模型和粒子过滤器的在线算法。
使用微调吗?我知道OpenAI';GPT-3最大的灵活性就是你不需要这样做,但这就是GPT-2做事情的方式,我不明白为什么你不能用GPT-3做同样的事情来完成更困难的任务。
顺便说一句,为什么OpenAI选择使用巨大的标准转换器架构,而不是上面提到的任何改进,这对我来说仍然是一件痛苦的事情。这特别奇怪,因为OpenAI自己负责稀疏转换器之类的事情。
级别2也许他们想要证明GPT-3的改进可以完全归功于扩展。但是,对于降低成本或扩大数据集而言,快速变压器变体应该是最受关注的。
第二级,我怀疑最大的原因是培训所需的大量投资。当你在一次训练中花费1200万美元在计算机上时,你可能不想做太多的实验。
级别2我们使用与GPT-2[RWC+19]相同的模型和体系结构,包括其中描述的修改的初始化、预归一化和可逆标记化,不同之处在于我们在变压器的各层中交替使用密集和局部带状稀疏注意模式,类似于稀疏变压器";
级别1还考虑了谈话卷积(ICML2020,https://arxiv.org/abs/2002.03184),提出了一种新的方法,在不使用自我关注的情况下在线性时间内编码句子,并获得了有希望的结果。
第2级,ICML 2020上发表的一篇MT论文仍然使用multibleu.perl报告性能,这让我感到困惑。我理解想要使您的数字与较旧的论文相比较,但是multibleu.perl依赖于标记化,并在其输出中明确说明了这一点!
从multibleu.perl发布分数是不可取的。分数取决于你的标记器,这不太可能从你的论文中重现,也不可能在各个研究小组中保持一致。相反,您应该取消标记化,然后使用mteval-v14.pl,它有一个标准的标记化。当您拥有一致的记号赋值器时,来自multibleu.perl的分数仍然可以用于内部目的。
如果他们真的觉得有必要报告multibleu.perl,那么他们至少应该使用sarebleu(或者去标记化,然后运行mteval),并将这些数字包括在论文中。如果这不是建议的话,我对评论家没什么信心。
级别1另一篇研究变压器模型中注意力的论文,希望加速注意力计算:用于神经机器翻译的硬编码高斯注意力。
我实际上开始着手于一些新的想法,这些想法可以被视为类似于压缩历史的方法。最终,我认为这是最好的前进方式,因为不是每个被建模的令牌都具有相同的熵量,因此应该可以基于熵压缩历史,而不会对建模能力造成太多(或任何)损失。至少,这是我目前的看法。
级别2,但在某种意义上,BPES已经使令牌的熵相等(更常见的序列可以形成更长的令牌)?