Transformers 文档

每千次展示成本

CPM

概述

CPM模型由张正彦、韩旭、周浩、柯培、顾宇贤、叶德明、秦宇佳、苏雨生、纪浩哲、关健、齐凡超、王晓智、郑亚楠、曾国阳、曹焕琪、陈胜奇、李大轩、孙振波、刘志远、黄敏烈、韩文涛、唐杰、李娟子、朱晓燕、孙茂松在CPM: A Large-scale Generative Chinese Pre-trained Language Model中提出。

论文的摘要如下:

预训练语言模型(PLMs)已被证明对各种下游自然语言处理(NLP)任务有益。最近,拥有1750亿参数和570GB训练数据的GPT-3因其在少样本(甚至零样本)学习方面的能力而引起了广泛关注。然而,将GPT-3应用于解决中文NLP任务仍然具有挑战性,因为GPT-3的训练语料主要是英文,且参数未公开。在本技术报告中,我们发布了基于大规模中文训练数据生成预训练的中文预训练语言模型(CPM)。据我们所知,CPM拥有26亿参数和100GB中文训练数据,是最大的中文预训练语言模型,可以促进多个下游中文NLP任务,如对话、文章生成、完形填空和语言理解。大量实验表明,CPM在少样本(甚至零样本)学习设置下在许多NLP任务上表现出色。

该模型由canwenxu贡献。原始实现可以在这里找到:https://github.com/TsinghuaAI/CPM-Generate

CPM的架构与GPT-2相同,除了分词方法。有关API参考信息,请参阅GPT-2文档

CpmTokenizer

transformers.CpmTokenizer

< >

( vocab_file do_lower_case = False remove_space = True keep_accents = False bos_token = '' eos_token = '' unk_token = '' sep_token = '' pad_token = '' cls_token = '' mask_token = '' additional_special_tokens = ['', ''] sp_model_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None **kwargs )

使用Jieba分词工具进行预分词。它用于CPM模型。

build_inputs_with_special_tokens

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — 特殊令牌将被添加到的ID列表。
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

带有适当特殊标记的输入ID列表。

通过连接和添加特殊标记,从序列或序列对构建序列分类任务的模型输入。一个XLNet序列具有以下格式:

  • 单一序列:X
  • 序列对:A B

convert_tokens_to_string

< >

( tokens )

将一系列标记(子词的字符串)转换为单个字符串。

create_token_type_ids_from_sequences

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — ID列表.
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

根据给定序列的token type IDs列表。

从传递给序列对分类任务的两个序列中创建一个掩码。一个XLNet

序列对掩码具有以下格式:

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_1None,此方法仅返回掩码的第一部分(0s)。

get_special_tokens_mask

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None already_has_special_tokens: bool = False ) List[int]

参数

  • token_ids_0 (List[int]) — ID列表.
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。
  • already_has_special_tokens (bool, optional, defaults to False) — 标记列表是否已经用模型的特殊标记格式化。

返回

List[int]

一个整数列表,范围在[0, 1]:1表示特殊标记,0表示序列标记。

从没有添加特殊标记的标记列表中检索序列ID。当使用标记器的prepare_for_model方法添加特殊标记时,会调用此方法。

CpmTokenizerFast

transformers.CpmTokenizerFast

< >

( vocab_file = None tokenizer_file = None do_lower_case = False remove_space = True keep_accents = False bos_token = '' eos_token = '' unk_token = '' sep_token = '' pad_token = '' cls_token = '' mask_token = '' additional_special_tokens = ['', ''] **kwargs )

使用Jieba分词工具进行预分词。它用于CPM模型。

build_inputs_with_special_tokens

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — 特殊令牌将被添加到的ID列表。
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

带有适当特殊标记的输入ID列表。

通过连接和添加特殊标记,从序列或序列对构建序列分类任务的模型输入。一个XLNet序列具有以下格式:

  • 单一序列:X
  • 序列对:A B

create_token_type_ids_from_sequences

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — ID列表.
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

根据给定序列的token type IDs列表。

从传递给序列对分类任务的两个序列中创建一个掩码。一个XLNet

序列对掩码具有以下格式:

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_1None,此方法仅返回掩码的第一部分(0s)。

< > Update on GitHub