#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 выполняет следующее?
- Токенизирует предложение
- Поместите эти токены через отдельную систему (?), Которая создает многомерные вложения
- Создает позиционное вложение на основе положения слова в предложении.
- И (я тоже здесь запутался) создает вложение сегмента, предоставляющее информацию о предложении в целом (какую информацию?)
- Все это суммируется, чтобы создать тензор формы (b, 24, 768), где каждое из 24 слов / токенов (плюс дополнение) представлено в 768-мерном пространстве.
Это правильно? Что такое информация о встраивании сегмента?
Ответ №1:
Да, ваши описания почти верны.
- Каждое предложение сначала помечается как часть слова.
- Во время обучения / тонкой настройки BERT каждый токен изучил свои вложения токенов (в виде слоя встраивания).
- Да, вложение позиции уникально для каждой позиции (оно использует сумму значений синуса и косинуса в диапазоне от 0 до 1023, здесь я могу немного ошибаться, но мы можем предположить, что каждая позиция имеет свою уникальную позицию emebedding). 4. BERT обучается на модели маскированного языка и задаче прогнозирования следующего предложения (NSP). Для NSP вы можете передать два последовательных предложения или непоследовательные предложения и изучить классификатор, чтобы определить, является ли 2-е предложение последовательным к 1-му предложению или нет. Кроме того, 1-е предложение может быть вызвано как сегмент A, а также сегмент B для 2-го предложения. Вложения для сегментов также изучаются. Теперь все слова из 1-го предложения будут иметь одинаковые вложения в сегменты, а все слова из 2-го предложения будут иметь одинаковые вложения в сегменты.
- Вложения токенов, вложения позиций и вложения сегментов имеют одинаковую размерность, т. е. 768. Все они суммируются для формирования входных вложений.
Таким образом, если предложение помечено (и дополнено) до длины 24, и предполагается b
, что размер пакета равен, размер ввода будет (b,24,768)
Комментарии:
1. извините, как я могу получить тензор с помощью 2D, я имею в виду, не получая batch_size