Комментарии 6
Насколько я понимаю для запуска данного примера необходима машина с GPU. Так ли это?
Добрый день )
с помощью данной статьи и переходов на соответствующие предыдущие статьи получилось на чистом Colab запустить BERT на данном датасете английского языка и провести классификацию новых фрагментов.
Спасибо за статью ! )
Вопрос про padding / masking
При изучении темы BERT и последующем успешном запуске я немного миксовал и сравнивал данную статью на русском и исходную на английском.
В статье на английском указан процесс, отсутствующий в статье на русском:
padded превращается в массив с одинаковой длиной строк, за счет добавления нулей, но потом эти нули маскируются.
Итоговый смысл этой операции сходу не ясен, хотя в статье сообщается:
We want BERT to process our examples all at once (as one batch). It's just faster that way.
Гугл переводит это так:
Мы хотим, чтобы БЕРТ обработал все наши примеры сразу (как один пакет). Просто так быстрее.
Код соответственно немного отличается.
В данной статье на русском:
input_ids = torch.tensor(np.array(padded))
with torch.no_grad():
last_hidden_states = model(input_ids)
и в оригинальной статье на английском:
max_len = 0
for i in tokenized.values:
if len(i) > max_len:
max_len = len(i)
padded = np.array([i + [0]*(max_len-len(i)) for i in tokenized.values])
attention_mask = np.where(padded != 0, 1, 0)
input_ids = torch.tensor(padded)
attention_mask = torch.tensor(attention_mask)
with torch.no_grad():
last_hidden_states = model(input_ids, attention_mask=attention_mask)
Вопрос:
какие реально есть преимущества / недостатки при наличии / отсутствии padding / masking?
Ваш первый BERT: иллюстрированное руководство