/ Модель

Характеристики

Контекст
130 токенов
Параметры
162 млн
Лицензия
Apache 2.0
Архитектура
roberta · dense
Опубликована
29 авг 2022

bertweetbr

Заполнение пропусковТекст → текст3 профессии

BERTweet.BR — предварительно обученная RoBERTa-модель для восстановления скрытых токенов и анализа португалоязычных твитов.

348скачиваний за 30 дней10лайковвеса обновлены4 окт 2022

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

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

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

BERTweet.BR — языковая модель семейства RoBERTa, разработанная авторами карточки модели для работы с португалоязычными твитами. Модель обучена с нуля по процедуре предварительного обучения RoBERTa на корпусе примерно из 100 миллионов твитов объёмом около 9 ГБ. Она содержит 162,4 млн параметров и принимает последовательности длиной до 130 токенов.

Модель предназначена для восстановления скрытых токенов в тексте и получения контекстных представлений португалоязычных публикаций в социальных сетях. Токенизатор нормализует твиты, включая обработку упоминаний, URL и эмодзи. Весовые файлы доступны в формате PyTorch; лицензия — Apache-2.0. Карточка демонстрирует извлечение скрытых представлений, но не приводит оценки качества и не описывает специализированную настройку для отдельных задач.

Сценарии применения

  • восстановление пропущенных слов в португалоязычных твитах
  • получение контекстных представлений коротких сообщений на португальском
  • нормализация твитов с упоминаниями, ссылками и эмодзи
  • подготовка представлений твитов для последующей классификации или анализа

Ограничения

Контекст ограничен 130 токенами; карточка не приводит результатов оценки качества или подтверждения эффективности на задачах, требующих отдельной настройки.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of BERTweet we trained our model from scratch following RoBERTa pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets.

Usage

Normalized Inputs

import torch
from transformers import AutoModel, AutoTokenizer 

model = AutoModel.from_pretrained('melll-uff/bertweetbr')
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=False)

# INPUT TWEETS ALREADY NORMALIZED!
inputs = [
    "Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim :nota_musical:",
    "Que jogo ontem @USER :mãos_juntas:",
    "Demojizer para Python é :polegar_para_cima: e está disponível em HTTPURL"]

encoded_inputs = tokenizer(inputs, return_tensors="pt", padding=True)

with torch.no_grad():
    last_hidden_states = model(**encoded_inputs)

# CLS Token of last hidden states. Shape: (number of input sentences, hidden sizeof the model)
last_hidden_states[0][:,0,:]

tensor([[-0.1430, -0.1325,  0.1595,  ..., -0.0802, -0.0153, -0.1358],
        [-0.0108,  0.1415,  0.0695,  ...,  0.1420,  0.1153, -0.0176],
        [-0.1854,  0.1866,  0.3163,  ..., -0.2117,  0.2123, -0.1907]])

Normalize raw input Tweets

from emoji import demojize
import torch
from transformers import AutoModel, AutoTokenizer 

model = AutoModel.from_pretrained('melll-uff/bertweetbr')
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=True)

inputs = [
   "Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim 🎵",
   "Que jogo ontem @cristiano 🙏",
   "Demojizer para Python é 👍 e está disponível em https://pypi.org/project/emoji/"]

tokenizer.demojizer = lambda x: demojize(x, language='pt')

[tokenizer.normalizeTweet(s) for s in inputs]

# Tokenizer first normalizes tweet sentences
['Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim :nota_musical:',
'Que jogo ontem @USER :mãos_juntas:',
'Demojizer para Python é :polegar_para_cima: e está disponível em HTTPURL']

encoded_inputs = tokenizer(inputs, return_tensors="pt", padding=True)

with torch.no_grad():
   last_hidden_states = model(**encoded_inputs)

# CLS Token of last hidden states. Shape: (number of input sentences, hidden sizeof the model)
last_hidden_states[0][:,0,:]

tensor([[-0.1430, -0.1325,  0.1595,  ..., -0.0802, -0.0153, -0.1358],
       [-0.0108,  0.1415,  0.0695,  ...,  0.1420,  0.1153, -0.0176],
       [-0.1854,  0.1866,  0.3163,  ..., -0.2117,  0.2123, -0.1907]])

Mask Filling with Pipeline

from transformers import pipeline

model_name = 'melll-uff/bertweetbr'
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=False)

filler_mask = pipeline("fill-mask", model=model_name, tokenizer=tokenizer)
filler_mask("Rio é a <mask> cidade do Brasil.", top_k=5)

# Output
[{'sequence': 'Rio é a melhor cidade do Brasil.',
 'score': 0.9871652126312256,
 'token': 120,
 'token_str': 'm e l h o r'},
{'sequence': 'Rio é a pior cidade do Brasil.',
 'score': 0.005050931591540575,
 'token': 316,
 'token_str': 'p i o r'},
{'sequence': 'Rio é a maior cidade do Brasil.',
 'score': 0.004420778248459101,
 'token': 389,
 'token_str': 'm a i o r'},
{'sequence': 'Rio é a minha cidade do Brasil.',
 'score': 0.0021856199018657207,
 'token': 38,
 'token_str': 'm i n h a'},
{'sequence': 'Rio é a segunda cidade do Brasil.',
 'score': 0.0002110043278662488,
 'token': 667,
 'token_str': 's e g u n d a'}]

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · fill-mask

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForMaskedLM
Ревизия весов
7b95f20

0 моделей