Transformers documentation
CPM
Эта модель была опубликована в HF papers 2020-12-01 и добавлена в Hugging Face Transformers 2021-04-10.
CPM
Обзор
Модель CPM была предложена в работе CPM: A Large-scale Generative Chinese Pre-trained Language Model авторами 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.
Аннотация из статьи следующая:
Дообученные языковые модели (PLM) доказали свою эффективность для различных задач NLP. Недавно GPT-3, содержащий 175 миллиардов параметров и обученный на 570 ГБ данных, привлёк значительное внимание благодаря способности к few-shot (а в некоторых случаях даже zero-shot) обучению. Тем не менее, применение GPT-3 для решения китайских задач NLP остаётся сложным, поскольку корпус данных, на котором обучался GPT-3, состоит преимущественно из английского текста, а параметры модели не публикуются. В данном техническом отчёте мы представляем китайскую дообученную языковую модель (CPM), обученную с использованием генеративного предобучения на большом объёме китайских данных. По нашему мнению, CPM, содержащий 2,6 миллиарда параметров и обученный на 100 ГБ китайских данных, является крупнейшей китайской дообученной языковой моделью, которая может ускорить решение нескольких китайских задач NLP, таких как ведение диалога, генерация эссе, cloze-тесты и понимание языка. Многочисленные эксперименты показывают, что CPM демонстрирует высокую производительность на многих задачах NLP в условиях few-shot (а в некоторых случаях даже zero-shot) обучения.
Эта модель была предоставлена пользователем canwenxu. Исходная реализация доступна здесь: https://github.com/TsinghuaAI/CPM-Generate
Архитектура CPM совпадает с архитектурой GPT-2, за исключением метода токенизации. Справочную информацию по API см. в документации GPT-2.
CpmTokenizer
класс transformers.CpmTokenizer
< source >( 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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов, к которым будут добавлены специальные токены. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
list[int]
Список идентификаторов входных токенов с соответствующими специальными токенами.
Создайте входные данные модели из последовательности или пары последовательностей для задач классификации последовательностей, объединяя их и добавляя специальные токены. Последовательность XLNet имеет следующий формат:
- одна последовательность:
X <sep> <cls> - пара последовательностей:
A <sep> B <sep> <cls>
Преобразует последовательность токенов (строки для подслов) в единую строку.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
list[int]
Список идентификаторов типов токенов для заданной последовательности (последовательностей).
Создаёт маску из двух переданных последовательностей для использования в задаче классификации пар последовательностей. 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_1 равно None, этот метод возвращает только первую часть маски (нули).
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей. - already_has_special_tokens (
bool, необязательный, по умолчаниюFalse) — Указывает, содержит ли список токенов уже отформатированные специальные токены для модели.
Возвращает
list[int]
Список целых чисел в диапазоне [0, 1]: 1 для специального токена, 0 для токена последовательности.
Получить идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью метода prepare_for_model токенизатора.
CpmTokenizerFast
класс transformers.CpmTokenizerFast
< source >( 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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов, к которым будут добавлены специальные токены. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
list[int]
Список идентификаторов входных токенов с соответствующими специальными токенами.
Создайте входные данные модели из последовательности или пары последовательностей для задач классификации последовательностей, объединяя их и добавляя специальные токены. Последовательность XLNet имеет следующий формат:
- одна последовательность:
X <sep> <cls> - пара последовательностей:
A <sep> B <sep> <cls>
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
list[int]
Список идентификаторов типов токенов для заданной последовательности (последовательностей).
Создаёт маску из двух переданных последовательностей для использования в задаче классификации пар последовательностей. 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_1 равно None, этот метод возвращает только первую часть маски (нули).