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

简介: 从头开始构建,DeepMind新论文用伪代码详解Transformer

与滚动 1000 行源代码相比,伪代码更浓缩,思路更清晰。


2017 年 Transformer 横空出世,由谷歌在论文《Attention is all you need》中引入。这篇论文抛弃了以往深度学习任务里面使用到的 CNN 和 RNN。这一开创性的研究颠覆了以往序列建模和 RNN 划等号的思路,如今被广泛用于 NLP。大热的 GPT、BERT 等都是基于 Transformer 构建的。

Transformer 自推出以来,研究者已经提出了许多变体。但大家对 Transformer 的描述似乎都是以口头形式、图形解释等方式介绍该架构。关于 Transformer 的伪代码描述可参考的资料很少。

正如下面这段话所表达的:一位 AI 领域非常出名的研究者,曾向一位著名的复杂性理论家发送了一篇自认为写得非常好的论文。而理论家的回答是:我在论文中找不到任何定理,我不知道这篇论文是关于什么的。

对于从业者来说,论文可能足够详细,但理论家需要的精度通常更高。由于某些原因,DL 社区似乎不愿为他们的神经网络模型提供伪代码。

目前看来,DL 社区存在以下问题:

DL 出版物缺乏科学的准确性和细节。深度学习在过去 5 到 10 年间取得了巨大的成功,每年发表的论文数以千计。许多研究者只是非正式地描述了他们如何改变以前的模型,大约 100 多页的论文只包含几行非正式地模型描述。充其量是一些高级图表,没有伪代码,没有方程式,没有提到对模型的精确解释。甚至没有人为著名的 Transformer 及其编码器 / 解码器变体提供伪代码。

源代码与伪代码。开源源代码非常有用,但与数千行的真实源代码相比,精心设计的伪代码通常不到一页,并且基本上仍然是完整的。这似乎是一项没有人愿意做的苦工作。

解释训练过程同样重要,但有时论文中甚至没有提到模型的输入和输出以及潜在的副作用是什么。论文中的实验部分通常不会解释输入算法的内容以及如何输入。如果方法部分有一些解释,通常与实验部分中描述的内容脱节,可能是由于不同的作者编写了不同的部分造成的。

有人会问:真的需要伪代码吗? 伪代码有什么用?

来自 DeepMind 的研究者认为提供伪代码有很多用途,与阅读文章或滚动 1000 行实际代码相比,伪代码将所有重要的内容浓缩在一页纸上,更容易开发新的变体。为此,他们最近发表的一篇论文《 Formal Algorithms for Transformers 》,文章以完备的、数学上精确的方式来描述 Transformer 架构。

论文简介

本文涵盖了什么是 Transformer、Transformer 如何训练、Transformer 被用来做什么、Transformer 关键架构组件以及比较出名的模型预览。


论文地址:https://arxiv.org/pdf/2207.09238.pdf

不过,阅读本文,读者需熟悉基础 ML 术语和简单的神经网络体系架构 (如 MLPs)。对于读者而言,在理解了文中的内容后,将会扎实的掌握 Transformer,并可能会使用伪代码实现自己的 Transformer 变体。

这篇论文的主体部分是第 3-8 章,分别介绍了 Transformer 及其典型任务、tokenization、Transformer 的架构组成、Transformer 的训练和推理、实际应用。


论文中基本完整的伪代码大约有 50 行,而实际的真实源代码则有数千行。论文中表述算法的伪代码适用于需要紧凑、完整和精确公式的理论研究者、从头实现 Transformer 的实验研究人员,同时对使用形式 Transformer 算法扩充论文或教科书也大有裨益。

论文中伪代码示例

对于熟悉基本的 ML 术语和简单的神经网络架构(例如 MLP)的初学者来说,这篇论文将帮你掌握扎实的 Transformer 基础,并用伪代码模板实现自己的 Transformer 模型。

相关文章
|
机器学习/深度学习 分布式计算 算法
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
576 0
|
Web App开发 编解码 网络协议
音视频开发常用工具 1
音视频开发常用工具
346 0
|
负载均衡
Pgpool-II实现高可用+读写分离+负载均衡(七)---- recovery_1st_stage分析
recovery_1st_stage是Pgpool online recovery的第一阶段,位于PG_DATA目录下,主要功能就是使用pg_basebackup恢复(recovery)从节点。
|
11月前
|
存储 人工智能 缓存
AI变革药物研发:深势科技的云原生实践之路
近日,阿里云助力深势科技推出创新的玻尔Bohrium®科研云平台和Hermite®药物计算设计平台,并持续完善。
AI变革药物研发:深势科技的云原生实践之路
|
人工智能 自动驾驶 机器人
AI元年:2024年人工智能发展大事纪
3分钟了解2024年人工智能AI领域都发生了哪些改变我们生活和生产方式的大事儿。
1980 2
AI元年:2024年人工智能发展大事纪
|
存储
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
【OS Pintos】用户程序是如何工作的 | Pintos 运行原理 | 虚拟内存 | 页函数 | 系统调用
660 0
|
网络协议 Shell 网络安全
开发工具使用之 github 私人仓库Clone 失败的问题
这篇文章介绍了解决GitHub上私人仓库克隆失败的问题,通过检查本地SSH key的存在与否、生成新的SSH key、添加SSH key到GitHub以及使用SSH方式克隆私有仓库的步骤来解决这个问题。
开发工具使用之 github 私人仓库Clone 失败的问题
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】python之人工智能应用篇——视频生成技术
视频生成技术是一种基于深度学习和机器学习的先进技术,它使得计算机能够根据给定的文本、图像、视频等单模态或多模态数据,自动生成符合描述的、高保真的视频内容。这种技术主要依赖于深度学习模型,如生成对抗网络(GAN)、自回归模型(Auto-regressive Model)、扩散模型(Diffusion Model)等。其中,GAN由两个神经网络组成:一个生成器用于生成逼真的图像或视频,另一个判别器用于判断生成的图像或视频是否真实。通过不断的对抗学习,生成器和判别器共同优化,以产生更高质量的视频。
795 2
|
分布式计算 Java Hadoop
HDFS 集群读写压测
在虚拟机中配置集群时,需设置每台服务器网络为百兆,以模拟实际网络环境。使用Hadoop的`TestDFSIO`进行HDFS性能测试,包括写入和读取数据。写测试中,创建11个128MB文件,平均写入速度为3.86 MB/sec,总处理数据量1408 MB,测试时间137.46秒。资源分配合理,传输速度超过单台服务器理论最大值12.5M/s,说明网络资源已充分利用。读测试主要依赖硬盘传输速率,速度快。测试完成后使用`TestDFSIO -clean`删除测试数据。
600 2
Error unprotecting the session cookie.The key {...} was not found in the key ring.
Error unprotecting the session cookie.The key {...} was not found in the key ring.
260 0

热门文章

最新文章