ЧЕМ ОТЛИЧАЕТСЯ RoBERT'a ОТ BERT'а?
Ключевые отличия, которые внесла RoBERTa, это:
- убирать next sentence prediction задачу из претрейна (binary-classification задача предсказания является ли предложения парой из одного текста)
- делать динамическое маскирование, а не статическое
🥸 Чем отличается динамическое маскирование от статического?
👩🏻💻 В BERT'e мы брали один sequence, брали 10 разных маск, дублировали данные 10 раз, чтобы одна sequence получала 10 разных маск за эпоху. Тем самым при обучении модель видела одну и ту же маску n-epochs times.
Это не оптимально в ситуации, когда у нас гигабайты памяти и длинные предложения. Маскировать нужно по-разному. Поэтому на каждый train step генерится своя рандомная маска.
🥸 В маскинге вот прям все токены маскируются?
👩🏻💻 Нет, обычная настройка стоит на 15% из последовательности. Из этих 15% мы 80% меняем на [MASK], 10% не меняем и 10% меняем на рандомный токен из vocab.
🥸 Почему нельзя всегда менять?
👩🏻💻 Не то чтобы нельзя. Как пишут авторы BERT, a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning. The purpose of this is to bias the representation towards the actual observed word. Что означает:
а) в тюнинге у нас не будет токена [MASK]
б) если всегда то слово, которое мы будем предсказывать будет одним и тем же токеном, то его эмбеддинг модель выучится не считать для финального представления
пример подсчета self-attention для одного context вектора
ответ на форуме
🥸 Только 15% можно ставить?
👩🏻💻 Нет, есть исследования, что например 40% маскирования даже улучшает общий перформанс. Однако чем больше процент маскирования, тем больше corruption, тем сложнее модели предсказывать токены.
🥸 Какие виды маскинга еще знаете?
👩🏻💻 PMI маскинг - маскировать не рандомно, а на основе PMI значения, таким образом будут маскироваться близкие collocations
Span masking - маскировать не один токен, а последовательность токенов
видео про разницу от стэнфорда
материал про masked lm также от стэнфорда
🥸 Что бы вы выбрали для тюнинга?
На самом деле если брать готовые решения, то динамическое маскирование сейчас используется и для берта. Так что вопрос остается лишь к остальным параметрам - токенизации, количества параметров и данных для предобучения.
Ключевые отличия, которые внесла RoBERTa, это:
- убирать next sentence prediction задачу из претрейна (binary-classification задача предсказания является ли предложения парой из одного текста)
- делать динамическое маскирование, а не статическое
🥸 Чем отличается динамическое маскирование от статического?
👩🏻💻 В BERT'e мы брали один sequence, брали 10 разных маск, дублировали данные 10 раз, чтобы одна sequence получала 10 разных маск за эпоху. Тем самым при обучении модель видела одну и ту же маску n-epochs times.
Это не оптимально в ситуации, когда у нас гигабайты памяти и длинные предложения. Маскировать нужно по-разному. Поэтому на каждый train step генерится своя рандомная маска.
🥸 В маскинге вот прям все токены маскируются?
👩🏻💻 Нет, обычная настройка стоит на 15% из последовательности. Из этих 15% мы 80% меняем на [MASK], 10% не меняем и 10% меняем на рандомный токен из vocab.
🥸 Почему нельзя всегда менять?
👩🏻💻 Не то чтобы нельзя. Как пишут авторы BERT, a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning. The purpose of this is to bias the representation towards the actual observed word. Что означает:
а) в тюнинге у нас не будет токена [MASK]
б) если всегда то слово, которое мы будем предсказывать будет одним и тем же токеном, то его эмбеддинг модель выучится не считать для финального представления
пример подсчета self-attention для одного context вектора
ответ на форуме
🥸 Только 15% можно ставить?
👩🏻💻 Нет, есть исследования, что например 40% маскирования даже улучшает общий перформанс. Однако чем больше процент маскирования, тем больше corruption, тем сложнее модели предсказывать токены.
🥸 Какие виды маскинга еще знаете?
👩🏻💻 PMI маскинг - маскировать не рандомно, а на основе PMI значения, таким образом будут маскироваться близкие collocations
Span masking - маскировать не один токен, а последовательность токенов
видео про разницу от стэнфорда
материал про masked lm также от стэнфорда
🥸 Что бы вы выбрали для тюнинга?
На самом деле если брать готовые решения, то динамическое маскирование сейчас используется и для берта. Так что вопрос остается лишь к остальным параметрам - токенизации, количества параметров и данных для предобучения.