EthanLab 软件开发 · 产品管理 · 科技评测
返回研究笔记

[对话式AI-7] 预训练语言模型比较(ELMO、BERT、GPT-2)

更新于

预训练(Pre-train)语言模型可用于自然语言理解(Natural Language Understanding)的命名实体识别(Named Entity Recognition)、问答(Extraction-based Question Answering)、情感分析(Sentiment analysis)、文档分类(Document Classification)、自然语言推理(Natural Language Inference)等任务。

以及自然语言生成(Natural Language Generation)的机器翻译(Machine translation)、自动摘要(Automatic summarization)、阅读理解(Reading Comprehension)、数据到文本生成(Data-to-Text Generation)等任务。

本文通过枚举时下主流预训练语言模型的特点,介绍最具代表性的ELMO、BERT及GPT-2模型;用最简短的文本叙述,让大家能够轻易比较出差异。

ELMO(Embeddings from Language Model)

  • RNN-based Language Models
  • 通过一堆句子训练,不需要标注
  • 预测下一个Token
  • 从RNN的hidden layer取得Contextulize word embedding
  • 从正反向embedding接起来就是上下文的embedding
  • 最后把每一层的embedding都加起来,再由后续任务学习到加权参数
  • 94M个参数

Source: https://arxiv.org/abs/1802.05365

BERT(Bidirectional Encoder Representations from Transformers)

  • 属于Transformer的Encoder
  • 只需要训练Transformer的Encoder(输入输出一对一)
  • 通过一堆句子训练,不需要标注
  • 给一个词串行,每一个词都会吐embedding
  • 中文更适合用字为单位,因为用one-hot encoding词太多了;常用中文本约4800个,中文词则比这个高数倍
  • Masked LM: 输入词串行中随机15%的词被换成特殊的Token [Mask],并做预测
  • 预测下一个句子: 引入[SEP]代表两个句子的交界,及[CLS]代表输出分类结果的位置
  • 上述两种方法都是把抽出来[Mask]或[CLS]的Vector丢到Linear Multi-class Classifier去预测词
  • 以上两种方法要同时使用
  • 340M个参数

Source: https://arxiv.org/abs/1810.04805

GPT-2(Generative Pre-Training)

  • 属于Transformer的Decoder
  • 预测下一个Token
  • 40GB的文本训练出来的
  • 可以做到Zero-shot Learning,不需训练数据,做到Reading Comprehension(F-score=55接近Dr.QA)、Summarization(跟随机差不多)、Translation(跟随机差不多)
  • 1542M个参数

Source: https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf