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

이 모델은 2020-12-01에 HF papers에 게시되었으며, 2021-04-10에 Hugging Face Transformers에 기여되었습니다.

CPM

개요

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 작업에 유용한 것으로 입증되었습니다. 최근 1,750억 개의 파라미터와 570GB의 학습 데이터를 갖춘 GPT-3는 few-shot(심지어 zero-shot) 학습 능력을 보여줘 많은 주목을 받았습니다. 그러나 GPT-3의 학습 코퍼스가 주로 영어로 구성되어 있고 파라미터가 공개되지 않아, GPT-3를 중국어 NLP 작업에 적용하는 것은 여전히 어려운 과제입니다. 이 기술 보고서는 대규모 중국어 학습 데이터로 생성형 사전 학습을 수행한 중국어 사전 학습 언어 모델(CPM)을 공개합니다. 저희가 아는 한, 26억 개의 파라미터와 100GB의 중국어 학습 데이터를 갖춘 CPM은 가장 큰 중국어 사전 학습 언어 모델이며, 대화, 에세이 생성, cloze test, 언어 이해 등 여러 하위 중국어 NLP 작업을 촉진할 수 있습니다. 광범위한 실험을 통해 CPM이 few-shot(심지어 zero-shot) 학습 설정에서 많은 NLP 작업에서 뛰어난 성능을 달성하는 것으로 확인되었습니다.

이 모델은 canwenxu에 의해 기여되었습니다. 원래 구현은 여기에서 찾을 수 있습니다: https://github.com/TsinghuaAI/CPM-Generate

CPM의 아키텍처는 토큰화 방법만 제외하면 GPT-2와 동일합니다. API 참고 정보는 GPT-2 문서를 참조하세요.

CpmTokenizer

클래스 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 분할 도구를 사용하여 사전 토큰화를 실행합니다. CPM 모델에서 사용됩니다.

build_inputs_with_special_tokens

< >

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

매개변수

  • token_ids_0 (list[int]) — 특별 토큰이 추가될 ID 목록입니다.
  • token_ids_1 (list[int], 선택 사항) — 시퀀스 쌍을 위한 선택적 두 번째 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: listtoken_ids_1: list[int] | None = None ) → list[int]

매개변수

  • token_ids_0 (list[int]) — ID 목록.
  • token_ids_1 (list[int], 선택 사항) — 시퀀스 쌍을 위한 선택적 두 번째 ID 목록입니다.

반환값

list[int]

주어진 시퀀스에 따라 토큰 유형 ID 목록

시퀀스-페어 분류 작업에 사용될 두 시퀀스로부터 마스크를 생성합니다. XLNet

sequence pair mask는 다음과 같은 형식을 가집니다:

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인 경우, 이 메서드는 마스크의 첫 번째 부분(0)만 반환합니다.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_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) — 토큰 목록이 이미 모델의 특수 토큰으로 포맷되어 있는지 여부입니다.

반환값

list[int]

[0, 1] 범위의 정수 목록: 특수 토큰은 1, 시퀀스 토큰은 0.

특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.

CpmTokenizerFast

클래스 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 분할 도구를 사용하여 사전 토큰화를 실행합니다. CPM 모델에서 사용됩니다.

build_inputs_with_special_tokens

< >

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

매개변수

  • token_ids_0 (list[int]) — 특별 토큰이 추가될 ID 목록입니다.
  • token_ids_1 (list[int], 선택 사항) — 시퀀스 쌍을 위한 선택적 두 번째 ID 목록입니다.

반환값

list[int]

적절한 특수 토큰이 포함된 입력 ID 목록

시퀀스 분류 작업을 위해 시퀀스 하나 또는 시퀀스 쌍을 연결하고 특수 토큰을 추가하여 모델 입력을 구성합니다. XLNet 시퀀스는 다음과 같은 형식을 가집니다:

  • 단일 시퀀스: X <sep> <cls>
  • 시퀀스 쌍: A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

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

매개변수

  • token_ids_0 (list[int]) — ID 목록.
  • token_ids_1 (list[int], 선택 사항) — 시퀀스 쌍을 위한 선택적 두 번째 ID 목록입니다.

반환값

list[int]

주어진 시퀀스에 따라 토큰 유형 ID 목록

시퀀스-페어 분류 작업에 사용될 두 시퀀스로부터 마스크를 생성합니다. XLNet

sequence pair mask는 다음과 같은 형식을 가집니다:

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인 경우, 이 메서드는 마스크의 첫 번째 부분(0)만 반환합니다.

Update on GitHub