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

Bu model 2020-12-01 tarihinde HF papers'ta yayımlandı ve 2021-04-10 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

CPM

Genel Bakış

CPM modeli, 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 tarafından CPM: A Large-scale Generative Chinese Pre-trained Language Model makalesinde önerilmiştir.

Makalenin özeti aşağıdaki gibidir:

Önceden eğitilmiş dil modelleri (PLM), çeşitli aşağı akış NLP görevleri için faydalı olduğu kanıtlanmıştır. Son zamanlarda, 175 milyar parametreye ve 570GB eğitim verisine sahip GPT-3, az örnekli (hatta sıfır örnekli) öğrenme kapasitesi nedeniyle çok fazla ilgi çekti. Ancak GPT-3'ü Çin NLP görevlerini çözmek için uygulamak hâlâ zorlu, çünkü GPT-3'ün eğitim korpusu ağırlıklı olarak İngilizcedir ve parametreler kamuya açık değildir. Bu teknik raporda, büyük ölçekli Çin eğitim verisi üzerinde üretken ön eğitimle Çin Ön-eğitilmiş Dil Modelini (CPM) yayımlıyoruz. Bilgimize göre, 2,6 milyar parametreye ve 100GB Çin eğitim verisine sahip CPM, sohbet, deneme üretimi, boşluk doldurma testi ve dil anlama gibi çeşitli aşağı akış Çin NLP görevlerini kolaylaştırabilecek en büyük Çin ön-eğitilmiş dil modelidir. Kapsamlı deneyler, CPM'nin az örnekli (hatta sıfır örnekli) öğrenme ayarlarında birçok NLP görevinde güçlü performans elde ettiğini göstermektedir.

Bu model canwenxu tarafından katkıda bulunmuştur. Orijinal uygulama burada bulunabilir: https://github.com/TsinghuaAI/CPM-Generate

CPM’nin mimarisi, tokenizasyon yöntemi dışında GPT-2 ile aynıdır. API referans bilgileri için GPT-2 belgelerine başvurun.

CpmTokenizer

sınıf 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 )

Jieba-RS segmentasyon aracıyla ön-tokenizasyonu çalıştırır. CPM modellerinde kullanılır.

build_inputs_with_special_tokens

< >

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

Parametreler

  • token_ids_0 (list[int]) — Özel jetonların ekleneceği kimlik listesi.
  • token_ids_1 (list[int], isteğe bağlı) — Sıra çiftleri için isteğe bağlı ikinci kimlik listesi.

Dönüş değeri

list[int]

Uygun özel jetonlarla girdi kimlikleri listesi.

Sıralı sınıflandırma görevleri için bir dizi veya dizi çiftinden model girdilerini birleştirerek ve özel jetonlar ekleyerek oluşturun. Bir XLNet dizisi aşağıdaki biçime sahiptir:

  • tek dizi: X <sep> <cls>
  • dizi çifti: A <sep> B <sep> <cls>

convert_tokens_to_string

< >

( tokens )

Tek bir dizideki token dizisini (alt kelimeler için dizeler) dönüştürür.

create_token_type_ids_from_sequences

< >

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

Parametreler

  • token_ids_0 (list[int]) — Kimlik listesi.
  • token_ids_1 (list[int], isteğe bağlı) — Sıra çiftleri için isteğe bağlı ikinci kimlik listesi.

Dönüş değeri

list[int]

Verilen dizilere göre token type kimlikleri listesi.

Sıralama çifti sınıflandırma görevinde kullanılacak şekilde, iletilen iki diziden bir maske oluşturun. Bir XLNet

sequence pair mask aşağıdaki formata sahiptir:

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 ise, bu yöntem maskenin yalnızca ilk bölümünü (0'ları) döndürür.

get_special_tokens_mask

< >

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

Parametreler

  • token_ids_0 (list[int]) — Kimlik listesi.
  • token_ids_1 (list[int], isteğe bağlı) — Sıra çiftleri için isteğe bağlı ikinci kimlik listesi.
  • already_has_special_tokens (bool, isteğe bağlı, varsayılan False) — Token listesinin, model için özel token'larla zaten biçimlendirilmiş olup olmadığı.

Dönüş değeri

list[int]

[0, 1] aralığında tamsayıların bir listesi: özel bir jeton için 1, bir dizi jetonu için 0.

Özel tokenler eklenmemiş bir token listesinden dizi kimliklerini alır. Bu yöntem, tokenizer'ın prepare_for_model yöntemi kullanılarak özel tokenler eklenirken çağrılır.

CpmTokenizerFast

sınıf 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 )

Jieba-RS segmentasyon aracıyla ön-tokenizasyonu çalıştırır. CPM modellerinde kullanılır.

build_inputs_with_special_tokens

< >

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

Parametreler

  • token_ids_0 (list[int]) — Özel jetonların ekleneceği kimlik listesi.
  • token_ids_1 (list[int], isteğe bağlı) — Sıra çiftleri için isteğe bağlı ikinci kimlik listesi.

Dönüş değeri

list[int]

Uygun özel jetonlarla girdi kimlikleri listesi.

Sıralı sınıflandırma görevleri için bir dizi veya dizi çiftinden model girdilerini birleştirerek ve özel jetonlar ekleyerek oluşturun. Bir XLNet dizisi aşağıdaki biçime sahiptir:

  • tek dizi: X <sep> <cls>
  • dizi çifti: A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

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

Parametreler

  • token_ids_0 (list[int]) — Kimlik listesi.
  • token_ids_1 (list[int], isteğe bağlı) — Sıra çiftleri için isteğe bağlı ikinci kimlik listesi.

Dönüş değeri

list[int]

Verilen dizilere göre token type kimlikleri listesi.

Sıralama çifti sınıflandırma görevinde kullanılacak şekilde, iletilen iki diziden bir maske oluşturun. Bir XLNet

sequence pair mask aşağıdaki formata sahiptir:

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 ise, bu yöntem maskenin yalnızca ilk bölümünü (0'ları) döndürür.

Update on GitHub