Transformers documentation

CPM

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Ce modèle a été publié dans HF papers le 2020-12-01 et ajouté à Hugging Face Transformers le 2021-04-10.

CPM

Aperçu

Le modèle CPM a été proposé dans CPM: A Large-scale Generative Chinese Pre-trained Language Model par 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.

L'abstract de l'article est le suivant :

Les modèles de langage pré-entraînés (PLM) se sont révélés bénéfiques pour diverses tâches NLP en aval. Récemment, GPT-3, avec 175 milliards de paramètres et 570 Go de données d’entraînement, a attiré beaucoup d’attention en raison de sa capacité d’apprentissage en peu d’exemples (voire sans exemple). Cependant, l’application de GPT-3 pour résoudre des tâches NLP en chinois reste difficile, car le corpus d’entraînement de GPT-3 est principalement en anglais et les paramètres ne sont pas disponibles publiquement. Dans ce rapport technique, nous publions le modèle de langage pré-entraîné en chinois (CPM) avec un pré-entraînement génératif sur de grandes données d’entraînement en chinois. À notre connaissance, CPM, avec 2,6 milliards de paramètres et 100 Go de données d’entraînement en chinois, est le plus grand modèle de langage pré-entraîné en chinois, qui peut faciliter plusieurs tâches NLP en aval en chinois, telles que la conversation, la génération d’essais, le test de trous (cloze test) et la compréhension du langage. Des expériences étendues démontrent que CPM atteint de fortes performances sur de nombreuses tâches NLP dans les configurations d’apprentissage en peu d’exemples (voire sans exemple).

Ce modèle a été contribué par canwenxu. L'implémentation originale peut être trouvée ici : https://github.com/TsinghuaAI/CPM-Generate

L’architecture de CPM est identique à celle de GPT-2, à l’exception de la méthode de tokenization. Consultez la documentation de GPT-2 pour les informations de référence de l’API.

CpmTokenizer

classe transformers.CpmTokenizer

< >

( vocab_filedo_lower_case = Falseremove_space = Truekeep_accents = Falsebos_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 )

Exécute la pré-tokenisation avec l'outil de segmentation Jieba-RS. Elle est utilisée dans les modèles CPM.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste des ID auxquels les jetons spéciaux seront ajoutés.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants d'entrée avec les jetons spéciaux appropriés.

Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences pour les tâches de classification de séquences en les concaténant et en ajoutant des jetons spéciaux. Une séquence XLNet a le format suivant :

  • séquence unique : X <sep> <cls>
  • paire de séquences : A <sep> B <sep> <cls>

convert_tokens_to_string

< >

( tokens )

Convertit une séquence de jetons (chaînes de caractères pour les sous-mots) en une seule chaîne de caractères.

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste d'identifiants.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants de type de jeton selon la ou les séquences données.

Crée un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences. Un XLNet

le masque de paires de séquences a le format suivant :

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

Si token_ids_1 est None, cette méthode ne renvoie que la première partie du masque (les 0).

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste d'identifiants.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.
  • already_has_special_tokens (bool, facultatif, par défaut False) — Indique si la liste de jetons est déjà formatée avec les jetons spéciaux du modèle.

Retourne

list[int]

Une liste d'entiers dans l'intervalle [0, 1] : 1 pour un jeton spécial, 0 pour un jeton de séquence.

Récupère les identifiants de séquences à partir d'une liste de jetons à laquelle aucun jeton spécial n'a été ajouté. Cette méthode est appelée lors de l'ajout de jetons spéciaux à l'aide de la méthode prepare_for_model du tokeniseur.

CpmTokenizerFast

classe transformers.CpmTokenizerFast

< >

( vocab_file = Nonetokenizer_file = Nonedo_lower_case = Falseremove_space = Truekeep_accents = Falsebos_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 )

Exécute la pré-tokenisation avec l'outil de segmentation Jieba-RS. Elle est utilisée dans les modèles CPM.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste des ID auxquels les jetons spéciaux seront ajoutés.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants d'entrée avec les jetons spéciaux appropriés.

Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences pour les tâches de classification de séquences en les concaténant et en ajoutant des jetons spéciaux. Une séquence XLNet a le format suivant :

  • séquence unique : X <sep> <cls>
  • paire de séquences : A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste d'identifiants.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants de type de jeton selon la ou les séquences données.

Crée un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences. Un XLNet

le masque de paires de séquences a le format suivant :

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

Si token_ids_1 est None, cette méthode ne renvoie que la première partie du masque (les 0).

Update on GitHub