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

Este modelo se publicó en HF papers el 2020-12-01 y se contribuyó a Hugging Face Transformers el 2021-04-10.

CPM

Resumen

El modelo CPM fue propuesto en CPM: A Large-scale Generative Chinese Pre-trained Language Model por 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.

El resumen del artículo es el siguiente:

Los modelos de lenguaje preentrenados (PLM) han demostrado ser beneficiosos para diversas tareas de NLP de nivel inferior. Recientemente, GPT-3, con 175 mil millones de parámetros y 570 GB de datos de entrenamiento, ha atraído mucha atención debido a su capacidad de aprendizaje few-shot (incluso zero-shot). Sin embargo, aplicar GPT-3 para abordar tareas de NLP en chino sigue siendo un desafío, ya que el corpus de entrenamiento de GPT-3 es principalmente en inglés y los parámetros no están disponibles públicamente. En este informe técnico, publicamos el Modelo de Lenguaje Preentrenado en Chino (CPM) con preentrenamiento generativo en datos de entrenamiento chinos a gran escala. Según nuestro conocimiento, CPM, con 2.6 mil millones de parámetros y 100 GB de datos de entrenamiento en chino, es el modelo de lenguaje preentrenado en chino más grande, lo que podría facilitar varias tareas de NLP en chino de nivel inferior, como conversación, generación de ensayos, prueba de relleno de huecos y comprensión del lenguaje. Experimentos extensos demuestran que CPM logra un rendimiento sólido en muchas tareas de NLP en configuraciones de aprendizaje few-shot (incluso zero-shot).

Este modelo fue aportado por canwenxu. La implementación original se puede encontrar aquí: https://github.com/TsinghuaAI/CPM-Generate

La arquitectura de CPM es la misma que la de GPT-2, excepto por el método de tokenización. Consulte la documentación de GPT-2 para obtener información de referencia de la API.

CpmTokenizer

clase 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 )

Ejecuta la pretokenización con la herramienta de segmentación Jieba-RS. Se utiliza en los modelos CPM.

build_inputs_with_special_tokens

< >

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

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs a los que se les añadirán los tokens especiales.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de ID de entrada con los tokens especiales apropiados.

Construye las entradas del modelo a partir de una secuencia o un par de secuencias para tareas de clasificación de secuencias, concatenando y añadiendo tokens especiales. Una secuencia de XLNet tiene el siguiente formato:

  • secuencia única: X <sep> <cls>
  • par de secuencias: A <sep> B <sep> <cls>

convert_tokens_to_string

< >

( tokens )

Convierte una secuencia de tokens (cadenas para subpalabras) en una sola cadena.

create_token_type_ids_from_sequences

< >

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

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de IDs de tipo de token según la(s) secuencia(s) dada(s).

Crea una máscara a partir de las dos secuencias pasadas para ser utilizada en una tarea de clasificación de pares de secuencias. Un XLNet

la máscara de pares de secuencias tiene el siguiente formato:

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 es None, este método solo devuelve la primera parte de la máscara (0).

get_special_tokens_mask

< >

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

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.
  • already_has_special_tokens (bool, opcional, valor predeterminado False) — Indica si la lista de tokens ya está formateada con tokens especiales para el modelo.

Devuelve

list[int]

Una lista de enteros en el rango [0, 1]: 1 para un token especial, 0 para un token de secuencia.

Obtiene los ids de secuencia de una lista de tokens a la que no se le han añadido tokens especiales. Este método se llama al añadir tokens especiales mediante el método prepare_for_model del tokenizer.

CpmTokenizerFast

clase 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 )

Ejecuta la pretokenización con la herramienta de segmentación Jieba-RS. Se utiliza en los modelos CPM.

build_inputs_with_special_tokens

< >

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

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs a los que se les añadirán los tokens especiales.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de ID de entrada con los tokens especiales apropiados.

Construye las entradas del modelo a partir de una secuencia o un par de secuencias para tareas de clasificación de secuencias, concatenando y añadiendo tokens especiales. Una secuencia de XLNet tiene el siguiente formato:

  • secuencia única: X <sep> <cls>
  • par de secuencias: A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

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

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de IDs de tipo de token según la(s) secuencia(s) dada(s).

Crea una máscara a partir de las dos secuencias pasadas para ser utilizada en una tarea de clasificación de pares de secuencias. Un XLNet

la máscara de pares de secuencias tiene el siguiente formato:

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 es None, este método solo devuelve la primera parte de la máscara (0).

Update on GitHub