GPT 原理解析

本文首发于我的个人博客 Sui Xin's Blog
原文:https://suixinblog.cn/2019/09/gpt.html
作者:Sui Xin

GPT(Generative Pre-Training)是一个典型的两阶段式模型:无监督预训练+监督下游任务微调。而在 NLP 任务中,上游的无监督预训练任务多半采用语言模型来实现,下游的监督任务直接对上游的模型进行简单改造即可使用。
GPT 为了能够有效的抓取文本中的语义信息,使用了单向的 Transformer Decoder 模块构建标准的语言模型,再使用预训练得到的网络架构与参数进行下游监督任务的微调,取得了不错的效果。
论文:Improving Language Understanding by Generative Pre-Training

模型架构

无监督预训练语言模型

对于语料 \mathcal{U}=\left(u_{1}, \dots, u_{n}\right),GPT 构建标准的语言模型:
L_{1}(\mathcal{U})=\sum_{i} \log P\left(u_{i} | u_{i-k}, \ldots, u_{i-1} ; \Theta\right)
文章中使用 Transformer Decoder 模块加上前馈神经网络,最后使用 softmax 输出目标词的分布:
\begin{aligned} h_{0} &=U W_{e}+W_{p} \\ h_{l} &=\text { transformer }_{-} \mathrm{b} 1 \mathrm{ock}\left(h_{l-1}\right) \forall l \in[1, n] \\ P(u) &=\operatorname{softmax}\left(h_{n} W_{e}^{T}\right) \end{aligned}

注:(不确定部分)实验中,语言模型中的 Transformer Decoder 模块不同于标准的 Transformer 模型,而是使用了 Transformer 的另一个版本:GENERATING WIKIPEDIA BY SUMMARIZING LONG SEQUENCES。其中,使用了名为 Local attention 和 Memory-compressed attention 的模块。

下游监督任务微调

对于通过第一阶段的预训练得到的语言模型,对于特定的任务进行 fine-tuning。
对于一个监督数据集 \mathcal{C},其中的数据为一个序列 x^{1}, \ldots, x^{m} 和一个标签 y。将序列输入预训练模型后得到输出向量为 h_{l}^{m},接着使用一个线性层来预测标签:
P\left(y | x^{1}, \ldots, x^{m}\right)=\operatorname{softmax}\left(h_{l}^{m} W_{y}\right)
需极大化的似然函数为:
L_{2}(\mathcal{C})=\sum_{(x, y)} \log P\left(y | x^{1}, \ldots, x^{m}\right)
另外,作者发现,使用语言模型来辅助监督学习的任务进行微调,有两个好处:

  1. 提升监督模型的泛化性;
  2. 加速收敛。

所以,最终下游使用的监督模型目标函数为:
L_{3}(\mathcal{C})=L_{2}(\mathcal{C})+\lambda * L_{1}(\mathcal{C})

不同类型下游任务的输入变换

GPT 使用两阶段式模型的另外一个好处是,作者期望通过第一阶段的预训练语言模型,学习到尽可能多的自然语言信息,且对于大多数下游任务,只需要简单的修改输入而不需要修改模型架构即可完成微调。对于 NLP 中的几种主流任务,GPT 分别做了如下的变换策略:


image

其他

模型还包括一些细节:

模型特点

优点

  • 特征抽取器使用了强大的 Transformer,能够捕捉到更长的记忆信息,且较传统的 RNN 更易于并行化;
  • 方便的两阶段式模型。

缺点

  • 标准的 LM 只对单向进行建模,不符合真实场景,建模能力受到限制。

GPT-2

论文:Language Models are Unsupervised Multitask Learners
GPT-2 是 GPT 的直接升级版,效果惊人。相比之下,GPT-2 有如下几点改进:

  1. 构建了一个更加庞大的数据集 WebText,其涵盖的领域比较广泛,共有 8 百万文档,40 GB;
  2. 使用了更加庞大的网络架构:最大 48 层 Transformer,1542M 参数,1600 维;
  3. GPT-2 提出这样训练得到的模型,能够在 zero-shot 情形下也有不错的表现,从而证明了语言模型预训练的意义。

参考

GPT 官方网址:https://openai.com/blog/language-unsupervised/
GPT 官方 GitHub:https://github.com/openai/finetune-transformer-lm
GPT-2 官方网址:https://openai.com/blog/better-language-models/
GPT-2 官方 GitHub:https://github.com/openai/gpt-2

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266