模型:
fnlp/bart-base-chinese
2022年12月30日
更新了 CPT 和中文BART的新版本。在新版本中,我们对以下部分进行了更改:
我们用旧版本的检查点进行新版本模型的初始化,并进行词汇对齐。将旧检查点中找到的标记嵌入进行复制。其他新增的参数进行随机初始化。我们随后使用批次大小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)一些下游任务对新增的标记和更长的编码序列不敏感,但对微调的超参数敏感。
这是一个中文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} }