梦晨发自凹非寺
量子位公众号 QbitAI
大模型的核心组件注意力机制,究竟如何诞生的?
可能已经有人知道,它并非2017 年 Transformer 开山论文《Attention is all you need》首创,而是来自 2014 年 Bengio 实验室的另一篇论文。
现在,这项研究背后更多细节被公开了!来自 Karpathy 与真正作者两年前的邮件往来,引起了很多讨论。
到现在已有整 10 年历史。
一作 Dzmitry Bahdanau,当时是 Bengio 实验室的一位实习生,在实习只剩 5 周时灵光一现提出了一个简化方案,相当于实现了对角注意力。
Pytorch 等经典代码中,正是把注意力称为 Bahdanau Attention,还保留着他贡献的痕迹。
Karpathy 之所以现在提起这段往事,是因为最近社区中流传着一些误解,认为 Transformer 作者受到科幻电影《降临》中外星人交流方式的启发。
但其实 Transformer 作者中的 Illia Polosukhin 只是很久以后接受采访时用《降临》来类比。
真正 2014 年 Attention 机制的灵感,其实来自人类翻译文字过程中来回看材料的行为。
除了澄清这一点之外,这段真实故事中还有更多亮点,对今天的研究仍有很多启发。
2014 年的 Attention,与同期Alex Graves 论文 Neural Turing Machines,和Jason Weston 论文 Memory Networks有类似之处,但这些研究出发点和动机不同。
说明在技术积累的临界点上,不同研究者常会独立地提出相似的创新。
原本的名字“RNNSearch”不够直观,后来在 Yoshua Bengio 的建议下改为“注意力”,更能抓住核心概念。
原来起个好名字,真的可以提升技术的传播和影响力。
有网友看过这个故事之后,感叹这封邮件“应该放在计算机科学博物馆”。
给这些改变世界的发现几乎总是从实验开始的,而且没有人真正提前知道它们的结局。
以下为 Dzmitry Bahdanau 发给 Karpathy 的原始邮件全文翻译,邮件写于 2022 年。
10 年前,Attention 真正的诞生
嗨,Andrej。
很高兴为您讲述 8 年前发生的故事!
我在 Jakobs University(德国雅各布大学)跟随 Herbert Jaeger 完成了硕士一年级的学业后,来到 Yoshua(图灵奖得主 Yoshua Bengio)的实验室实习。
我向 Yoshua 表示我愿意从事任何工作,他便让我参与机器翻译项目,与 Kyunghyun Cho 及团队展开合作。
我对将一系列单词塞进向量的想法非常怀疑,但我也真的很想要一个博士学位的 offer,所以我卷起袖子,开始做我擅长的事情——编写代码、修复 Bug 等等。
在某个时候,我对团队正在进行的工作有了足够的了解,Yoshua 邀请我攻读博士学位。2014 年是个好时代,只需这些工作就足以让我读博了——美好的旧时光!
我很高兴,我觉得是时候享受乐趣并发挥创造力了。
于是我开始思考如何避免 Encoder-Decoder RNN 之间的信息瓶颈。
我的第一个想法是建立一个带有两个“光标”的模型:一个在源序列中移动,由 BiRNN 编码;另一个在目标序列中移动。光标轨迹将使用动态规划边际化。
Kyunghyun Cho 认为这相当于 Alex Graves 的 RNN Transducer 模型。之后,我可能也读了 Graves 的手写识别论文,但这种方法对于机器翻译来说似乎不太合适。
上述带有光标的方法在我实习的剩余 5 周内很难实现,所以我尝试了更简单的方法——两个光标同时同步移动,实际上相当于硬编码的对角注意力。
这种方法有点效果,但缺乏优雅。
所以有一天我有了新的想法,让 Decorder RNN 学会在源序列中搜索放置光标的位置。这在一定程度上受到了我中学英语学习中翻译练习的启发。
在翻译时,你的目光会在源序列和目标序列之间来回移动,我将软搜索表示为 softmax,然后对 BiRNN 状态进行加权平均。从第一次尝试就效果很好,我非常兴奋。
我将这个架构称为 RNNSearch,在 1 个 GPU 上运行。由于我们知道谷歌的 Ilya(OpenAI 前首席科学家 Ilya Sutskever)团队使用 8 个 GPU 的 LSTM 模型在某些方面领先于我们,所以我们赶紧在 ArXiV 上发表了一篇论文。
后来发现,这个名字并不好。更好的名字(注意力)是 Yoshua 在最后的一次修改中添加到结论中的。
直观地说,这在解码器中实现了一种注意力机制,解码器决定源语句的哪些部分需要关注。通过让解码器具有注意力机制,我们减轻了编码器将源语句中的所有信息编码为固定长度向量的负担。通过这种新方法,信息可以分布在整个注释序列中,解码器可以相应地有选择地检索。
一个半月后,我们看到了 Alex Graves 的论文。确实是完全相同的想法,尽管他的动机完全不同。
在我们这边,发明新算法是需求驱动的。我猜在他那边,是连接神经学派和符号学派的雄心?Jason Weston 团队的 Memory Networks 论文也有类似的机制。
我没有预见到注意力可以在更低的层次上使用,作为表示学习的核心算法。
但当我看到 Transformer 论文时,我立即向实验室的同事宣布:RNN 已死。
回到您最初的问题:在蒙特利尔 Yoshua 的实验室中“可微且数据依赖的加权平均”的发明与神经图灵机、Memory Networks 以及 90 年代(甚至 70 年代;但我无法提供链接)的一些相关认知科学论文无关。
这是 Yoshua 推动实验室追求雄心壮志的领导成果,Kyunghyun Cho 在管理由初级博士生和实习生组成的大型机器翻译项目方面的出色技能,以及我自己多年来在编程竞赛中磨练出的创造力和编程技能的结果。
即使我自己、Alex Graves 和这个故事中的其他角色当时没有从事深度学习工作,离这个想法出现也不会太远了。
注意力只是深度学习中实现灵活空间连接的自然方式,这几乎是一个显而易见的想法,一直在等待 GPU 足够快,让人们有动力并认真对待深度学习研究。
自从我意识到这一点,我对 AI 的大志向就是启动像机器翻译那样令人惊叹的应用项目。
良好的研发工作可以为基础技术的进步做出更多贡献,而不是我们通常认为“真正的”人工智能研究的所有花哨的理论。
就酱!非常好奇听到更多关于您的 AI 教育项目的消息(我从 Harm de Vries 那里听到了一些传闻)。
干杯,
Dima
One More Thing
Karpathy 感叹,有点惊讶这篇真正的注意力起源论文没有获得足够多的关注。
自从 Attention is all you need 一飞冲天之后,大家意识到给论文起一个好名字对技术传播的影响,后面的论文标题就放飞了。
除了扎堆模仿 xx is all you need 之外,最近甚至还出现了 Taylor Unswift。
讲的是把模型权重转换成泰勒级数的参数,来保护已发布模型的所有权并防止被滥用。
就,emmm……
提到的论文:
Neural Machine Translation by Jointly Learning to Align and Translate
https://arxiv.org/abs/1409.0473
Attention is All You Need
https://arxiv.org/abs/1706.03762
Neural Turing Machines
https://arxiv.org/abs/1410.5401
Generating Sequences With Recurrent Neural Networks
https://arxiv.org/abs/1308.0850
Memory Networks
https://arxiv.org/abs/1410.3916
Sequence to Sequence Learning with Neural Networks
https://arxiv.org/abs/1409.3215
Taylor Unswift:
https://arxiv.org/abs/2410.05331
参考链接: