Transformers documentation
BERTweet
Эта модель была опубликована в HF papers 20 мая 2020 года и добавлена в Hugging Face Transformers 16 ноября 2020 года.
BERTweet
BERTweet
BERTweet имеет ту же архитектуру, что и BERT-base, но обучен по аналогии с RoBERTa на англоязычных твитах. Он демонстрирует отличные результаты на задачах, связанных с твитами, таких как определение частей речи, распознавание именованных сущностей и классификация текста.
Все исходные контрольные точки BERTweet можно найти в организации VinAI Research.
См. документацию по BERT для дополнительных примеров применения BERTweet к различным языковым задачам.
Приведённый ниже пример показывает, как предсказать токен <mask> с помощью Pipeline, AutoModel и из командной строки.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="vinai/bertweet-base",
device=0
)
pipeline("Plants create <mask> through a process known as photosynthesis.")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bertweet-base",
)
model = AutoModelForMaskedLM.from_pretrained(
"vinai/bertweet-base",
device_map="auto"
)
inputs = tokenizer("Plants create <mask> through a process known as photosynthesis.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")Примечания
- Используйте AutoTokenizer или BertweetTokenizer, так как они поставляются с предварительно загруженным словарём, адаптированным под токены, специфичные для твитов, такие как хэштеги (#), упоминания (@), эмодзи и распространённые сокращения. Не забудьте также установить библиотеку emoji.
- Входные данные следует дополнять справа (
padding="max_length"), так как BERT использует абсолютные позиционные эмбеддинги.
BertweetTokenizer
класс transformers.BertweetTokenizer
< source >( vocab_filemerges_filenormalization = Falsebos_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) — Путь к файлу слияний. - normalization (
bool, необязательный, по умолчаниюFalse) — Применять ли предобработку нормализации. - 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. Именно этот токен модель будет пытаться предсказать.
Создаёт токенизатор BERTweet, использующий кодирование байт-парных кодировок (Byte-Pair-Encoding).
Этот токенизатор наследуется от PreTrainedTokenizer, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.
Загружает существующий словарь из текстового файла и добавляет его символы в этот экземпляр.
Преобразует последовательность токенов (строку) в одну строку.
Нормализация токенов в твите
Нормализация сырого твита
Сохраните файлы словаря и слияний в каталог.