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)。