Transformers 文档

每千次展现成本 (CPM)

Hugging Face's logo
加入 Hugging Face 社区

并获得增强版文档体验

开始使用

CPM

概述

CPM 模型由张正言、韩旭、周浩、柯培、顾昱贤、叶德明、秦雨佳、苏育生、季浩哲、管健、齐帆超、王晓智、郑亚楠、曾国洋、曹焕琪、陈胜奇、李代轩、孙振波、刘知远、黄民烈、韩文涛、唐杰、李娟子、朱晓燕、孙茂松在 CPM:一种大规模生成式中文预训练语言模型 中提出。

论文摘要如下

预训练语言模型(PLMs)已被证明对各种下游 NLP 任务有益。最近,GPT-3 凭借其 1750 亿个参数和 570GB 的训练数据,因其少样本(甚至零样本)学习能力而备受关注。然而,将 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 = '<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: 可选 = None **kwargs )

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

build_inputs_with_special_tokens

< >

( token_ids_0: 列表 token_ids_1: 可选 = None ) 整数列表

参数

  • token_ids_0 (整数列表) — 将添加特殊标记的 ID 列表。
  • token_ids_1 (整数列表, 可选) — 序列对的可选第二个 ID 列表。

返回值

整数列表

包含适当特殊标记的 输入 ID 列表

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

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

convert_tokens_to_string

< >

( tokens )

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

create_token_type_ids_from_sequences

< >

( token_ids_0: 列表 token_ids_1: 可选 = None ) 整数列表

参数

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

返回值

整数列表

根据给定的序列(s)生成 token 类型 ID 列表。

创建一个从两个序列传递的掩码,用于序列对分类任务。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: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) List[int]

参数

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], 可选) — 用于序列对的第二个可选 ID 列表。
  • already_has_special_tokens (bool, 可选, 默认为 False) — 令牌列表是否已使用模型的特殊令牌进行格式化。

返回值

整数列表

范围在 [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 = '<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[int]) — 将特殊标记添加到其中的 ID 列表。
  • token_ids_1 (List[int], 可选) — 序列对的可选第二个 ID 列表。

返回值

整数列表

包含适当特殊标记的 输入 ID 列表

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

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

create_token_type_ids_from_sequences

< >

( token_ids_0: 列表 token_ids_1: 可选 = None ) 整数列表

参数

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

返回值

整数列表

根据给定的序列(s)生成 token 类型 ID 列表。

创建一个从两个序列传递的掩码,用于序列对分类任务。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)。

< > 在 GitHub 上更新