前言

之前看论文总想留下点什么痕迹(比如写个笔记),但是发现有时候这也算是一种造轮子的行为,因为每个划时代的研究早就有无数人(包括大牛)写过总结,且已经总结的很好了。所以我反思了一下,这篇博客便诞生了,主旨是不为每篇经典单独造一个轮子,而是做一个索引,指向那些漂亮优秀的轮子(包括源码、总结等)。而我自己,只附上我对每一个模型的一段话总结(我希望每段话都是经过深思熟虑,总结到位的)。

1 词向量

1.1 word2vec

1.2 ELMo

2 预训练(语言)模型

从word2vec开始,说下GPT庞大的家族系谱

2.1 Transformer

2.1.1 一段话总结

2.1.2 模型源码

  1. attention-is-all-you-need-pytorch - jadore801120 (pytorch版本,首推,无其他冗余代码)
  2. The Annotated Transformer - harvardnlp (pytorch版本,哈佛大学,有较多注释)
  3. tensor2tensor - tensorflow (tensorflow版本,官方实现,有较多冗余代码)

2.1.3 优质文章索引

  1. Attention? Attention! - Lilian Weng (选读,主要介绍注意力机制)
  2. The Illustrated Transformer - Jay Alammar (首推,以图像形式详细介绍了计算细节,例如block中的$QKV$矩阵运算、多头、前馈部分,附中文版)
  3. Dissecting BERT Part 1: The Encoder - Miguel Romero Calvo (推荐,较上一篇更严谨,展示了维度的变化,并给出更多真实的矩阵示例)
  4. Dissecting BERT Appendix: The Decoder - Miguel Romero Calvo (必读,前两篇很少提及的解码器部分在这里详细介绍了,包括Mask、编码器与解码器间的attention、input_length与target_length转换)
  5. 《Attention is All You Need》浅读(简介+代码)- 苏剑林 (选读,对位置编码有所分析,也提出了transformer的一些不足)
  6. 深入理解Transformer及其源码 - ZingpLiu (选读,主要是在代码层面给予分析,与哈佛的文章类似)

2.2 GPT

2.3 Bert

2.3.1 一段话总结

2.3.2 模型源码

  1. BERT-pytorch - codertimo (pytorch版本,首推)
  2. bert - google-research (tensorflow版本,官方实现,附源码解析1,2)

2.3.3 优质文章索引

  1. The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning) - Jay Alammar (首推,站在NLP中Transfer Learning的角度,对比了ELMo,GPT等模型,重点讲解Bert,风格偏图像)
  2. Understanding BERT Part 2: BERT Specifics - Francisco Ingham (推荐,文中除Bert的训练细节外,还有很多自问自答、与GPT的对比、实验,便于更清楚的了解Bert)
  3. 一文读懂BERT(原理篇) - 忧郁得茄子 (推荐,一篇集大成的中文文章,引用了前几篇文章的很多内容,但总结的非常全面,涵盖了之前很少展开讲的层归一化、padding mask等,以及两种mask的结合方式)
  4. Bert时代的创新(应用篇):Bert在NLP各领域的应用进展 - 张俊林 (选读,应用篇)
  5. 关于BERT的若干问题整理记录 - Adherer (选读,个人思考篇)