当前位置: 首页 > 科技观察

从头开始构建,DeepMind新论文用伪代码解释Transformer

时间:2023-03-14 10:21:38 科技观察

2017年,Transformer诞生,谷歌在论文《Attention is all you need》中介绍。本文舍弃了以往深度学习任务中使用的CNN和RNN。这一开创性的研究颠覆了之前序列建模和RNN等式的思想,现在被广泛应用于NLP。流行的GPT、BERT等都是建立在Transformer之上的。自从Transformer被引入以来,研究人员提出了许多变体。但是大家对Transformer的描述似乎都是以口头形式、图形解释等方式介绍架构,关于Transformer的伪代码描述可用的资源非常少。正如下面这段话所表达的:人工智能领域一位非常知名的研究人员向一位著名的复杂性理论家发送了一篇他认为写得很好的论文。而理论家的回答是:我在论文中找不到任何定理,我不知道这篇论文是关于什么的。一篇论文对于从业者来说可能已经足够详细了,但对于理论家来说,要求的精确度通常更高。出于某种原因,DL社区似乎不愿意为他们的神经网络模型提供伪代码。目前,DL社区似乎存在以下问题:DL出版物缺乏科学准确性和细节。深度学习在过去5到10年取得了巨大的成功,每年都有数千篇论文发表。许多研究人员只是非正式地描述了他们如何改变以前的模型,而大约100多页的论文仅包含几行非正式的模型描述。充其量只是一些高级图表,没有伪代码,没有方程式,也没有提及对模型的精确解释。甚至没有人为著名的Transformer及其编码器/解码器变体提供伪代码。源代码和伪代码。开源代码非常有用,但与数千行的真实源代码相比,精心制作的伪代码通常不到一页纸,但仍然基本完整。这似乎是一项没有人愿意做的艰巨工作。解释训练过程同样重要,但有时论文甚至没有提及模型的输入和输出以及潜在的副作用是什么。论文中的实验部分通常不会解释将什么输入算法以及如何输入。如果在Methods部分有一些解释,它通常与Experimental部分中描述的内容脱节,可能是由于不同的作者编写了不同的部分。有人可能会问:真的需要伪代码吗?伪代码有什么用?DeepMind的研究人员认为,提供伪代码有很多用途,伪代码将所有重要内容浓缩在一个页面上,比阅读文章或滚动浏览1000行实际代码更容易开发新的变体。为此,他们最近发表了一篇论文《 Formal Algorithms for Transformers 》,以完整且数学上准确的方式描述了Transformer架构。论文简介本文涵盖了Transformer是什么、Transformer是如何训练的、Transformer的用途、Transformer的关键架构组件以及知名模型的预览。论文地址:https://arxiv.org/pdf/2207.09238.pdf然而,要阅读这篇论文,读者需要熟悉基本的ML术语和简单的神经网络架构(例如MLP)。对于读者来说,在理解了文章的内容之后,对Transformer的掌握就会扎实,并且可能会使用伪代码来实现自己的Transformer变体。本文的主要部分是第3-8章,分别介绍了Transformer及其典型任务、标记化、Transformer的架构、Transformer的训练和推理以及实际应用。论文中大约有50行大部分完整的伪代码,以及数千行实际的真实源代码。论文中表达算法的伪代码适用于需要紧凑、完整和精确公式的理论研究人员,以及从头开始实现Transformer的实验研究人员,也适用于使用正式的Transformer算法扩充论文或教科书。论文中的伪代码示例对于熟悉基本ML术语和简单神经网络架构(如MLP)的初学者,本文将帮助您打下坚实的Transformer基础,并使用伪代码模板实现您自己的Transformer模型。作者介绍,这篇论文的第一作者是今年3月正式加入DeepMind的研究员MaryPhuong。毕业于奥地利科学技术学院,获博士学位,主要从事机器学习理论研究。该论文的另一位作者是DeepMind高级研究员、澳大利亚国立大学(ANU)计算机科学研究所(RSCS)名誉教授MarcusHutter。MarcusHutter多年来一直致力于人工智能的数学理论研究。该研究领域基于多个数学和计算科学概念,涉及强化学习、概率论、算法信息论、优化、搜索和计算理论等。他的书《通用人工智能:基于算法概率的顺序决策》是2005年出版的,是一本非常技术和数学的书。2002年,MarcusHutter与JürgenSchmidhuber和ShaneLegg一起提出了AIXI,这是一种基于理想化代理和奖励强化学习的人工智能数学理论。2009年,MarcusHutter提出特征强化学习理论。