Transformers documentation

PhoBERT

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

Эта модель была опубликована в 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: listtoken_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: listtoken_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: 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 токенизатора.

Update on GitHub