Transformers documentation

PhoBERT

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 02.03.2020 и добавлена в Hugging Face Transformers 16.11.2020.

PhoBERT

Обзор

Модель PhoBERT была предложена в работе PhoBERT: Pre-trained language models for Vietnamese авторами Dat Quoc Nguyen и Anh Tuan Nguyen.

Аннотация из статьи следующая:

Мы представляем PhoBERT в двух версиях — PhoBERT-base и PhoBERT-large — первые публичные крупномасштабные моноязычные языковые модели, предварительно обученные для вьетнамского языка. Экспериментальные результаты показывают, что PhoBERT стабильно превосходит лучшую на сегодняшний день предварительно обученную мультиязычную модель XLM-R (Conneau et al., 2020) и улучшает текущий уровень качества (state-of-the-art) по нескольким задачам NLP, специфичным для вьетнамского языка, включая определение частей речи (Part-of-speech tagging), синтаксический анализ зависимостей (Dependency parsing), распознавание именованных сущностей (Named-entity recognition) и вывод на естественном языке (Natural language inference).

Эта модель была предоставлена пользователем dqnguyen. Исходный код можно найти здесь.

Пример использования

import torch

from transformers import AutoModel, AutoTokenizer


phobert = AutoModel.from_pretrained("vinai/phobert-base", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("vinai/phobert-base")

# INPUT TEXT MUST BE ALREADY WORD-SEGMENTED!
line = "Tôi là sinh_viên trường đại_học Công_nghệ ."

input_ids = torch.tensor([tokenizer.encode(line)])

with torch.no_grad():
    features = phobert(input_ids)  # Models outputs are now tuples

Реализация PhoBERT совпадает с реализацией BERT, за исключением токенизации. Сведения о классах конфигурации и их параметрах приведены в документации BERT. Токенизатор, специфичный для PhoBERT, описан ниже.

PhobertTokenizer

класс transformers.PhobertTokenizer

< >

( vocab_filemerges_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )

Параметры

  • vocab_file (str) — Путь к файлу словаря.
  • merges_file (str) — Путь к файлу слияний.
  • bos_token (str, необязательный, по умолчанию "<s>") — Токен начала последовательности, использовавшийся при предварительном обучении. Может использоваться в качестве токена классификатора последовательности. При построении последовательности с помощью специальных токенов этот токен не используется для обозначения начала последовательности. Вместо него используется cls_token.

    При построении последовательности с использованием специальных токенов этот токен не используется для начала последовательности. В качестве токена начала последовательности используется cls_token.

  • eos_token (str, необязательный, по умолчанию "</s>") — Токен конца последовательности. При построении последовательности с использованием специальных токенов этот токен не используется для обозначения конца последовательности. Вместо него используется sep_token.

    При построении последовательности с использованием специальных токенов для обозначения конца последовательности не используется этот токен. Используется токен sep_token.

  • sep_token (str, необязательный, по умолчанию "</s>") — Токен-разделитель, который используется при построении последовательности из нескольких последовательностей, например, двух последовательностей для классификации последовательностей или текста и вопроса для ответа на вопросы. Он также используется в качестве последнего токена в последовательности, построенной со специальными токенами.
  • cls_token (str, необязательный, по умолчанию "<s>") — Токен классификатора, используемый при классификации последовательности (классификация всей последовательности, а не посимвольная классификация). Это первый токен последовательности, если она построена со специальными токенами.
  • unk_token (str, необязательный, по умолчанию "<unk>") — Токен неизвестного слова. Токен, отсутствующий в словаре, не может быть преобразован в ID, поэтому вместо него используется этот токен.
  • pad_token (str, необязательный, по умолчанию "<pad>") — Токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины.
  • mask_token (str, необязательный, по умолчанию "<mask>") — Токен, используемый для маскирования значений. Это тот токен, который применяется при обучении модели с использованием masked language modeling. Именно этот токен модель будет пытаться предсказать.

Создайте токенизатор PhoBERT. Основан на алгоритме Byte-Pair-Encoding.

Этот токенизатор наследуется от PreTrainedTokenizer, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.

add_from_file

< >

( f )

Загружает существующий словарь из текстового файла и добавляет его символы в этот экземпляр.

build_inputs_with_special_tokens

< >

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

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов, к которым будут добавлены специальные токены.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Список идентификаторов входных токенов с соответствующими специальными токенами.

Создайте входные данные модели из последовательности или пары последовательностей для задач классификации последовательностей, объединяя их и добавляя специальные токены. Последовательность PhoBERT имеет следующий формат:

  • одна последовательность: <s> X </s>
  • пара последовательностей: <s> A </s></s> B </s>

convert_tokens_to_string

< >

( tokens )

Преобразует последовательность токенов (строку) в одну строку.

create_token_type_ids_from_sequences

< >

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

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Список нулей.

Создаёт маску на основе двух переданных последовательностей для использования в задаче классификации пар последовательностей. PhoBERT не использует идентификаторы типов токенов, поэтому возвращается список нулей.

get_special_tokens_mask

< >

( token_ids_0: list[int]token_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 токенизатора.

Update on GitHub