В этой статье авторы из Google Research хотели исследовать вопрос, могут ли CNN-архитектуры конкурировать с трансформерами (Transformers) в задачах NLP. Оказывается, что предварительно обученные модели CNN (convolutional neural network — сверточная нейронная сеть) все-таки превосходят предварительно обученных трансформеров в некоторых задачах; они также обучаются быстрее и лучше масштабируются под длинные последовательности. По словам авторов, ранее не публиковались серьезные работы с проведением научных экспериментов по предварительному обучению и настройке CNN для работы с текстами. Возможные преимущества CNN: из-за отсутствия self-attention требуется меньше памяти; они работают локально и поэтому не нуждаются в positional embedding’ах. С другой стороны, CNN не предполагают доступ к глобальной информации; например, они не способны на что-то вроде cross-attention между несколькими последовательностями. Используются depthwise separable convolutions; Предварительное обучение Seq2Seq на основе диапазона (span-based): они маскируют диапазон длиной L, и модель пытается его предсказать; Потеря кросс-энтропии и усиление учителем; Авторы не раскрывают нам точные архитектуры, но вот общее представление о них: Архитектура Seq2Seq, но вместо multi-head attention сверточные блоки; Проекции закрытого линейного блока (gated linear unit) вместо query-key-value трансформаций; В различных экспериментах испытываются легкие, динамические и расширенные свертки; Каждый подмодуль обернут остаточными связями (residual connections) и нормой слоя (layer norm); Авторы исследования задают пять вопросов, на которые они собираются ответить: Вопрос 1: Польза сверток от предварительного обучения такая же, как и для трансформеров? [Да] Вопрос 2: Могут ли сверточные модели, предварительно обученные или нет, конкурировать с трансформер-моделями? В каких случаях они хорошо себя показывают? [Да; превосходят в шести задачах] Вопрос 3: Каковы преимущества (если таковые имеются) использования предварительно обученных моделей сверток по сравнению с предварительно обученными трансформерами? Являются ли свертки более быстрой альтернативой трансформерам с self-attention? [Да, они быстрее] Вопрос 4: Каковы типы отказов, подводные камни и причины не использовать предварительно обученные свертки? Вопрос 5: Какие варианты сверток лучше? [Расширенные и динамические лучше, чем легковесные] Авторы используют 8 наборов данных на различных задачах: двоичная и мультиклассовая классификация, генерация семантического представления. Модели аналогичны базовому BERT: 12 слоев в кодировщике и декодере, размерность 3072 в слоях с прямой связью, размерность модели 768 и 12 голов. Они не настраивают параметры сверточных блоков; они используют размер окна 7 и 2 фильтра глубины. Для расширенных моделей размеры фильтров [4, 4, 7, 7, 15, 15, 15, 15, 31, 31, 31]. [Интересно, как они выбирали значения, если они не оптимизировали гиперпараметры] Модель трансформера похожа на Т5. Предварительное обучение Авторы обучают как сверточные, так и модели-трансформеры за 524 тысячи шагов с размером батча 128. Цель предварительного обучения описана выше, размер диапазона (span size) - 3, уровень искажения - 15%. Они используют оптимизатор Adafactor [я никогда не слышал о нем раньше] с планировщиком скорости обучения с обратным квадратным корнем. Предварительное обучение проводилось на 16 TPU в течение 12 часов. В моделях CNN отсутствует cross-attention, и поэтому они хуже работают с задачами, которые подразумевают моделирование отношений между последовательностями. Эксперименты с SQuAD и MultiNLI показывают, что трансформеры намного лучше справляются с этими задачами. Но если мы добавим перекрестное внимание (cross-attention) к моделям CNN, они достигают почти той же производительности, что и модели-трансформеры. Модели CNN имеют лучшую скорость обучения и лучше масштабируются для более длинных последовательностей. Модели CNN более эффективны с точки зрения FLOP Авторы дополнительно указывают на следующий вывод: в NLP предварительное обучение обычно выполнялось только для моделей-трансформеров, но оказывается, что предварительное обучение может приносить пользу и для других архитектур. Они надеются, что эта статья поможет открыть новые возможности для исследователей. Материал подготовлен в рамках курса «Deep Learning. Basic». На практике дата саентисты часто сталкиваются с недостатком данных для обучения. Классический выход из положения — провести transfer learning при помощи finetuning — обладает досадным свойством катастрофического забывания. На открытом уроке «Transfer learning при помощи перемежающейся тренировки» рассмотрим метод перемежающейся тренировки, позволяющий избежать переобучения на маленьком датасете.  → РЕГИСТРАЦИЯ Редактор