模型:

fnlp/bart-base-chinese

英文

Chinese BART-Base

新闻

2022年12月30日

更新了 CPT 和中文BART的新版本。在新版本中,我们对以下部分进行了更改:

  • 词汇 我们将旧的BERT词汇替换为一个更大的词汇表,大小为51271,该词汇表是从训练数据构建的。其中,我们1)添加了超过6800个缺失的汉字(其中大部分是繁体汉字);2)删除了冗余的标记(例如带有前缀##的汉字标记);3)添加了一些英文标记以减少OOV。
  • 位置嵌入 我们将max_position_embeddings从512扩展到1024。

我们用旧版本的检查点进行新版本模型的初始化,并进行词汇对齐。将旧检查点中找到的标记嵌入进行复制。其他新增的参数进行随机初始化。我们随后使用批次大小2048、最大序列长度1024、峰值学习率2e-5和预热比率0.1对新版本的CPT和中文BART进行了进一步的训练,训练了50000个步骤。

与先前的检查点相比,结果如下所示:

AFQMC IFLYTEK CSL-sum LCSTS AVG
Previous
bart-base 73.0 60 62.1 37.8 58.23
cpt-base 75.1 60.5 63.0 38.2 59.20
bart-large 75.7 62.1 64.2 40.6 60.65
cpt-large 75.9 61.8 63.7 42.0 60.85
Updataed
bart-base 73.03 61.25 61.51 38.78 58.64
cpt-base 74.40 61.23 62.09 38.81 59.13
bart-large 75.81 61.52 64.62 40.90 60.71
cpt-large 75.97 61.63 63.83 42.08 60.88

结果显示,与先前的检查点相比,更新的模型保持了相对的性能。仍然存在一些情况,更新的模型稍微差于先前的模型,这是由以下原因导致的:1)训练额外的几个步骤并没有显著提高性能;2)一些下游任务对新增的标记和更长的编码序列不敏感,但对微调的超参数敏感。

  • 请注意,要使用更新的模型,请更新 modeling_cpt.py (新版本下载 Here )和词汇表(刷新缓存)。

模型描述

这是一个中文BART-Base的实现。

CPT: A Pre-Trained Unbalanced Transformer for Both Chinese Language Understanding and Generation

邵云帆、耿志超、刘一涛、戴俊麒、杨飞、柴蓬、裘西鹏

Github链接: https://github.com/fastnlp/CPT

使用方法

>>> from transformers import BertTokenizer, BartForConditionalGeneration, Text2TextGenerationPipeline
>>> tokenizer = BertTokenizer.from_pretrained("fnlp/bart-base-chinese")
>>> model = BartForConditionalGeneration.from_pretrained("fnlp/bart-base-chinese")
>>> text2text_generator = Text2TextGenerationPipeline(model, tokenizer)  
>>> text2text_generator("北京是[MASK]的首都", max_length=50, do_sample=False)
    [{'generated_text': '北 京 是 中 国 的 首 都'}]

注意:请使用BertTokenizer进行模型词汇表的处理。请勿使用原始的BartTokenizer。

引用

@article{shao2021cpt,
  title={CPT: A Pre-Trained Unbalanced Transformer for Both Chinese Language Understanding and Generation}, 
  author={Yunfan Shao and Zhichao Geng and Yitao Liu and Junqi Dai and Fei Yang and Li Zhe and Hujun Bao and Xipeng Qiu},
  journal={arXiv preprint arXiv:2109.05729},
  year={2021}
}