December 25, 2019

多角度解读 Transformer

多角度解读 Transformer

从 2017 年 《Attention is all you need》之后,几乎所有 NLP 的任务改进都有 BERT 参与,而提到 BERT 实际上就是 transformer ,即使是「最新的T5」也,是。所以决定花些时间仔细研究下 transformer。计划先翻几篇「著名」的 transformer 说明文章,照着一一做一遍,然后分别通过 tensorflow/keras、Pytorch、PaddlePaddle 各自的实现走一遍,加深理解。

  • 几篇 transformer 的剖析博文如下:
    1. Jay Alammar 的 The Illustrated Transformer,Jay 同学关于各个模型的解析正如同 3Blue1Brown 在线性代数的解析视频一样,甚至更甚,已经被几乎所有的入门者、自媒体作为必引用的内容源之一。
    2. 另一个就是来自哈佛的 The Annotated Transformer,这篇严格来讲应该不算是 blog,其实是一个基于 Pytorch 的 Transformer 实现,而且提供 .ipynb 文件。在斯坦福 CS224n 2019 里面,Christopher Manning 教授提到的就是这个实现。虽然版本有些老旧,但稍微调整一下就能跑。
    3. 苏剑林同学关于 transformer 论文的解读,除了说明外分别给出了 tensorflow 和 keras 的一个实现,赞!
The Illustrated Transformer
Discussions: Hacker News (65 points, 4 comments), Reddit r/MachineLearning (29 points, 3 comments) Translations: Chinese (Simplified), Korean Watch: MIT’s Deep Learning State of the Art lecture referencing this post In the previous post, we looked at Attention – a ubiquitous method in modern dee…
《Attention is All You Need》浅读(简介+代码) - 科学空间|Scientific Spaces
2017年中,有两篇类似同时也是笔者非常欣赏的论文,分别是FaceBook的《Convolutional Sequence to Sequence Learning》和Google的《Atten...
The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning)
Discussions: Hacker News (98 points, 19 comments), Reddit r/MachineLearning (164 points, 20 comments) Translations: Chinese (Simplified), Persian The year 2018 has been an inflection point for machine learning models handling text (or more accurately, Natural Language Processing or NLP for short)…
  • 关于《Attention is all you need》给出的官方实现:

    • 论文中给出的实现一开始是放在 tensor2tensor 这个 repo 里面,但后来 tensor2tensor 向着 Tensorflow hub/Pytorch hub/PaddleHub 这个方向发展了,使得这个 repo 中的代码越来越多,越来越乱,最后估计自己也觉得烦,干脆重新起了个 repo 叫 trax, 号称: your path to advanced deep learning...
  • 关于 PaddlePaddle 的官方实现:
    • PaddlePaddle 是后起的,目前包括版本在内的各种资源也在剧烈的变动(当然那个 nlp 领域里的东西不在「剧烈」变动呢...)
    • 百度把所有开源出来的东西都放到一个 repo 里面了,这点倒是有点类似 tensor2tensor,不过话说回来,如果你是在做中文的 nlp 领域,那么相信这个 repo 是一定要去看的。
    • 实现和简单说明在此