Как токенизатор BERT приводит к форме входного тензора (b, 24, 768)?

#deep-learning #nlp #tokenize #bert-language-model

#глубокое обучение #nlp #токенизация #bert-language-model

Вопрос:

Я понимаю, как работает токенизатор BERT, благодаря этой статье: https://albertauyeung.github.io/2020/06/19/bert-tokenization.html

Однако я не понимаю, как это заканчивается как конечная форма ввода (b, 24, 768).

При чтении кода BERT я заметил этот комментарий о вложениях.

 BERT Embedding which is consisted with under features
    1. TokenEmbedding : normal embedding matrix
    2. PositionalEmbedding : adding positional information using sin, cos
    2. SegmentEmbedding : adding sentence segment info, (sent_A:1, sent_B:2)
    sum of all these features are output of BERTEmbedding
 

Означает ли это, что BERT выполняет следующее?

  1. Токенизирует предложение
  2. Поместите эти токены через отдельную систему (?), Которая создает многомерные вложения
  3. Создает позиционное вложение на основе положения слова в предложении.
  4. И (я тоже здесь запутался) создает вложение сегмента, предоставляющее информацию о предложении в целом (какую информацию?)
  5. Все это суммируется, чтобы создать тензор формы (b, 24, 768), где каждое из 24 слов / токенов (плюс дополнение) представлено в 768-мерном пространстве.

Это правильно? Что такое информация о встраивании сегмента?

Ответ №1:

Да, ваши описания почти верны.

  1. Каждое предложение сначала помечается как часть слова.
  2. Во время обучения / тонкой настройки BERT каждый токен изучил свои вложения токенов (в виде слоя встраивания).
  3. Да, вложение позиции уникально для каждой позиции (оно использует сумму значений синуса и косинуса в диапазоне от 0 до 1023, здесь я могу немного ошибаться, но мы можем предположить, что каждая позиция имеет свою уникальную позицию emebedding). 4. BERT обучается на модели маскированного языка и задаче прогнозирования следующего предложения (NSP). Для NSP вы можете передать два последовательных предложения или непоследовательные предложения и изучить классификатор, чтобы определить, является ли 2-е предложение последовательным к 1-му предложению или нет. Кроме того, 1-е предложение может быть вызвано как сегмент A, а также сегмент B для 2-го предложения. Вложения для сегментов также изучаются. Теперь все слова из 1-го предложения будут иметь одинаковые вложения в сегменты, а все слова из 2-го предложения будут иметь одинаковые вложения в сегменты.
  4. Вложения токенов, вложения позиций и вложения сегментов имеют одинаковую размерность, т. е. 768. Все они суммируются для формирования входных вложений.

Таким образом, если предложение помечено (и дополнено) до длины 24, и предполагается b , что размер пакета равен, размер ввода будет (b,24,768)

Комментарии:

1. извините, как я могу получить тензор с помощью 2D, я имею в виду, не получая batch_size