英文

CPT-Large 中文

新闻

2022年12月30日

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

  • 词汇表 我们用训练数据构建了一个更大的词汇表,大小为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 )和词汇表(刷新缓存)。

模型描述

这是CPT-Large的实现。要使用CPT,请将定义CPT体系结构的文件 modeling_cpt.py ( 下载 Here )导入到您的项目中。

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

邵云帆,耿志超,刘义韬,戴俊奇,杨飞,李哲,包虎军,邱希鹏

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

使用方法

>>> from modeling_cpt import CPTForConditionalGeneration
>>> from transformers import BertTokenizer
>>> tokenizer = BertTokenizer.from_pretrained("fnlp/cpt-large")
>>> model = CPTForConditionalGeneration.from_pretrained("fnlp/cpt-large")
>>> input_ids = tokenizer.encode("北京是[MASK]的首都", return_tensors='pt')
>>> pred_ids = model.generate(input_ids, num_beams=4, max_length=20)
>>> print(tokenizer.convert_ids_to_tokens(pred_ids[0]))
    ['[SEP]', '[CLS]', '北', '京', '是', '中', '国', '的', '首', '都', '[SEP]']

注意:请使用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}
}