序列建模(八):GPT、BERT、GPT-2、ALBERT -- Transformer在预训练语言模型领域的应用

[李宏毅-ELMO、BERT、GPT视频笔记link]
[参考link]
[NLP模型应用之一:基础知识link]
[BERT参考博客link]
[GPT-2参考博客link]
[GPT与GPT-2参考博客link]
[Bert参考博客link]
[GPT-1参考博客link]
[ALBERT参考博客link]
[ERNIE参考博客link]
[NLP相关论文时间线_link]

自2017年06月Transformer面世,相继产生了GPT、Bert、GPT-2、ALBERT这些神作,它们都属于预训练词向量模型。

既然提到了预训练词向量模型,就顺带也提一下Pre-train & Fine-tuning,包括:
* Pre-train & Fine-tuning思想从CV到NLP的发展历程
* 早期的一些比较经典的语言模型方法:word2vec、GloVe、ELMo
* 以及19年百度公开的ERNIE

插入一个冷知识,ELMo、BERT 、ERNIE的命名来自芝麻街主角名:
序列建模(八):GPT、BERT、GPT-2、ALBERT -- Transformer在预训练语言模型领域的应用_第1张图片
芝麻街
序列建模(八):GPT、BERT、GPT-2、ALBERT -- Transformer在预训练语言模型领域的应用_第2张图片
芝麻街主角

Pre-train & Fine-tuning 主要参考论文:

发表年月 官网 论文链接 代码链接
2000.10 Can Artificial Neural Networks Learn Language Models? -- 徐伟
2001、2003 A Neural Probabilistic Language Model -- Bengio
1301.3781 - word2vec
2014-October Stanford NLP Group、web_link GloVe
1802.05365 Allen研究所 ELMo
2018-06 openai 官网link GPT:
Improving Language Understanding by Generative Pre-Training
https://github.com/openai/finetune-transformer-lm
1810.04805 Google BERT https://github.com/google-research/bert
2019-02 openai官网link GPT-2 lk_1、lk_2 https://github.com/openai/gpt-2
1904.09223 百度 ERNIE
1909.11942 Google ALBERT https://github.com/google-research/ALBERT
2005.14165 openai官网link GPT-3 https://github.com/openai/gpt-3

通过以上几个官方的代码库,可以对Pre-train & Fine-tuningtransformer的实现有一个全面的认知。

-0- Pre-train & Fine-tuning

github链接 注释
https://github.com/graykode/nlp-tutorial 一个自然语言处理教程,由Pytorch实现。其中包括从Word2Vec、TextCNN到Transformer多个模型的演进。其主要优点是代码非常简单。比如BERT实现在nlp-tutorial/5-2.BERT/BERT_Torch.py文件中,只有200多行代码,其中一半以上和前篇Transformer相同,同时比Transformer翻译任务减少了Decoder部分,因此只需要考虑不到一半的基础逻辑。
https://github.com/huggingface/transformers 下载量仅次于google官方发布的TensorFlow版本。其中除了BERT还包括GPT2、CTRL、ROBERTA等多个基于transformer模型NLP工具的实现,它同时提供BERT和Pytorch代码。其中BERT的Pytorch实现包括1500行代码,例程相对完整,对于问答、分类、句间关系等问题均有具体实现的类及调用方法。

-1- GPT

你可能感兴趣的:(序列建模(八):GPT、BERT、GPT-2、ALBERT -- Transformer在预训练语言模型领域的应用)