Transformers 文档

CPM

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2020-12-01 发布,并于 2021-04-10 添加到 Hugging Face Transformers。

CPM

PyTorch

概述

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)。据我们所知,CPM 拥有 26 亿参数和 100GB 中文训练数据,是最大的中文预训练语言模型,可以促进多种下游中文 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: dict[str, typing.Any] | None = None **kwargs )

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

build_inputs_with_special_tokens

< >

( token_ids_0: list token_ids_1: list[int] | None = None ) list[int]

参数

  • token_ids_0 (list[int]) — 要添加特殊标记的 ID 列表。
  • token_ids_1 (list[int], optional) — 序列对的可选第二个 ID 列表。

返回

list[int]

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

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

  • 单个序列:X <sep> <cls>
  • 序列对:A <sep> B <sep> <cls>

convert_tokens_to_string

< >

( tokens )

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

create_token_type_ids_from_sequences

< >

( token_ids_0: list token_ids_1: list[int] | None = None ) list[int]

参数

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

返回

list[int]

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

为用于序列对分类任务的两个序列创建掩码。XLNet

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

get_special_tokens_mask

< >

( token_ids_0: list token_ids_1: list[int] | None = 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

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-RS 分词工具进行预分词。它用于 CPM 模型。

build_inputs_with_special_tokens

< >

( token_ids_0: list token_ids_1: list[int] | None = None ) list[int]

参数

  • token_ids_0 (list[int]) — 要添加特殊标记的 ID 列表。
  • token_ids_1 (list[int], optional) — 序列对的可选第二个 ID 列表。

返回

list[int]

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

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

  • 单个序列:X <sep> <cls>
  • 序列对:A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

( token_ids_0: list token_ids_1: list[int] | None = None ) list[int]

参数

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

返回

list[int]

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

为用于序列对分类任务的两个序列创建掩码。XLNet

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

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.