来源:知乎—邵云帆地址:https://zhuanlan.zhihu.com/p/421402341分享一篇我们最近在中文预训练方面的一个工作。标题:CPT: A Pre-Trained Unbalanced Transformer for Both Chinese Language Understanding and Generation论文:https://arxiv.org/pdf/2109.05729.pdf代码:https://github.com/fastnlp/CPT模型已开源于Transformers,欢迎下载使用!https://github.com/fastnlp/CPT/blob/master/README.md#pre-trained-models
01
引言中文预训练模型层出不穷,但一般来说,市面上的中文预训练模型可以概况为下面几类,它们在在理解和生成任务中有所侧重。1. Transformer Encoder:采用了双向attention,即token之间能相互attention,对NLU类任务占据优势。2. Transformer Decoder:仅包含单向attention,即每个token只能与它之前的token做attention,通常用于Left-to-Right的无条件生成任务。3. Full Transformer:这类模型同时包含Encoder和Decoder。Encoder采用双向attention对输入进行建模,Decoder则使用两种attention,单向attention用于生成文本;cross-attention用于从Encoder端获取输入的信息。这类模型通常在条件生成任务中有优势。注意到,中文的Full Transformer类预训练模型稍显不足。我们已知有大规模预训的CPM-2,一些复现得到的中文T5,但无法完全满足生成类任务的使用需求。这里缺乏一个扎实的、高质量的BART。这对于中文摘要、QA等生成类任务都能带来很大的帮助。另外,在同等量级参数量的情况下,不同结构的模型有不同的侧重。在做生成任务时,采用了Decoder的模型能取得很好的性能。而对于理解类任务,通常是BERT、RoBERTa这类Encoder模型占优势。如何能用同一个模型做好理解和生成?需要怎样的模型结构来完成这一目标?