Transformers 文档
CPM
并获得增强的文档体验
开始使用
CPM
概述
CPM 模型由 Zhengyan Zhang, Xu Han, Hao Zhou, Pei Ke, Yuxian Gu, Deming Ye, Yujia Qin, Yusheng Su, Haozhe Ji, Jian Guan, Fanchao Qi, Xiaozhi Wang, Yanan Zheng, Guoyang Zeng, Huanqi Cao, Shengqi Chen, Daixuan Li, Zhenbo Sun, Zhiyuan Liu, Minlie Huang, Wentao Han, Jie Tang, Juanzi Li, Xiaoyan Zhu, Maosong Sun 在论文 CPM: A Large-scale Generative Chinese Pre-trained Language Model 中提出。
论文摘要如下:
预训练语言模型 (PLM) 已被证明对各种下游自然语言处理 (NLP) 任务有益。最近,拥有 1750 亿参数和 570GB 训练数据的 GPT-3 因其小样本(甚至零样本)学习能力而备受关注。然而,将 GPT-3 应用于中文 NLP 任务仍然具有挑战性,因为 GPT-3 的训练语料库主要是英语,并且其参数不公开。在这份技术报告中,我们发布了中文预训练语言模型 (CPM),它在超大规模的中文训练数据上进行了生成式预训练。据我们所知,拥有 26 亿参数和 100GB 中文训练数据的 CPM 是最大的中文预训练语言模型,可以促进多个下游中文 NLP 任务,如对话、文章生成、完形填空和语言理解。大量的实验表明,CPM 在小样本(甚至零样本)学习的设置下,在许多 NLP 任务上都取得了出色的性能。
该模型由 canwenxu 贡献。原始实现可以在这里找到:https://github.com/TsinghuaAI/CPM-Generate
CPM 的架构与 GPT-2 相同,除了分词方法。API 参考信息请参阅 GPT-2 文档。
CpmTokenizer
class transformers.CpmTokenizer
< 源 >( vocab_file do_lower_case = False remove_space = True keep_accents = False bos_token = '<s>' eos_token = '</s>' unk_token = '<unk>' sep_token = '<sep>' pad_token = '<pad>' cls_token = '<cls>' mask_token = '<mask>' additional_special_tokens = ['<eop>', '<eod>'] sp_model_kwargs: typing.Optional[dict[str, typing.Any]] = None **kwargs )
使用 Jieba 分词工具进行预分词。用于 CPM 模型。
build_inputs_with_special_tokens
< 源 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
通过连接和添加特殊标记,从一个序列或一对序列为序列分类任务构建模型输入。一个 XLNet 序列具有以下格式:
- 单个序列:
X <sep> <cls>
- 序列对:
A <sep> B <sep> <cls>
将一系列标记(子词的字符串)转换为单个字符串。
create_token_type_ids_from_sequences
< 源 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
根据传入的两个序列创建一个掩码,用于序列对分类任务。一个 XLNet
如果 token_ids_1
为 None
,则此方法仅返回掩码的第一部分(0s)。
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence | second sequence |
如果 token_ids_1
为 None
,则此方法仅返回掩码的第一部分(0s)。
get_special_tokens_mask
< 源 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) → list[int]
从没有添加特殊标记的标记列表中检索序列ID。此方法在使用分词器prepare_for_model
方法添加特殊标记时调用。
CpmTokenizerFast
class transformers.CpmTokenizerFast
< 源 >( vocab_file = None tokenizer_file = None do_lower_case = False remove_space = True keep_accents = False bos_token = '<s>' eos_token = '</s>' unk_token = '<unk>' sep_token = '<sep>' pad_token = '<pad>' cls_token = '<cls>' mask_token = '<mask>' additional_special_tokens = ['<eop>', '<eod>'] **kwargs )
使用 Jieba 分词工具进行预分词。用于 CPM 模型。
build_inputs_with_special_tokens
< 源 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
通过连接和添加特殊标记,从一个序列或一对序列为序列分类任务构建模型输入。一个 XLNet 序列具有以下格式:
- 单个序列:
X <sep> <cls>
- 序列对:
A <sep> B <sep> <cls>
create_token_type_ids_from_sequences
< source >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
根据传入的两个序列创建一个掩码,用于序列对分类任务。一个 XLNet
如果 token_ids_1
为 None
,则此方法仅返回掩码的第一部分(0s)。
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence | second sequence |
如果 token_ids_1
为 None
,则此方法仅返回掩码的第一部分(0s)。