1. Архитектура BERT

Google разработал BERT (представления двунаправленного кодировщика от трансформеров) в 2018 году как мощную модель обработки естественного языка. Это глубокая нейронная сеть, которая использует самоконтролируемое обучение для предварительной подготовки на большом корпусе текстовых данных, что позволяет ей изучать контекстные отношения между словами в тексте [1, 2]. Архитектура преобразователя является основой BERT, предназначенного для обработки последовательных данных, таких как текст. Он имеет несколько уровней механизмов внутреннего внимания, которые позволяют ему фиксировать долгосрочные зависимости между словами в тексте. BERT — это двунаправленная модель, которая может учитывать как левый, так и правый контекст при прогнозировании. Это помогает BERT понять контекст и значение слов в предложении. BERT можно точно настроить для конкретных последующих задач НЛП, таких как анализ тональности или распознавание именованных объектов, путем обучения на меньшем помеченном наборе данных. Тонкая настройка позволяет BERT достигать самых современных результатов в широком спектре задач НЛП, даже когда данные для обучения ограничены.

На рис. 1 модель BERT предварительно обучена на большом массиве данных Amazon Negative Product Review и может быть настроена для различных задач NLP [3]. Модель BERT состоит из нескольких слоев:

  • Входной слой. Модель BERT принимает входные данные: идентификаторы и маску. Эти входные данные представляют собой закодированные представления входного текста, полученные с помощью токенизатора.
  • Предварительно обученный слой. Предварительно обученный слой относится к нейронной сети, предварительно обученной на больших объемах текстовых данных. Когда входной текст подается в модель Роберта, предварительно обученный слой обрабатывает его и создает последовательность скрытых состояний для каждого входного токена. Модель RoBERTa имеет глубокую архитектуру, состоящую из нескольких слоев самоконтроля и нейронных сетей с прямой связью.
  • Полностью подключенный слой: полностью подключенный слой — это линейный слой, который берет выходные данные предварительно обученного слоя и сопоставляет их с желаемой выходной размерностью.

Во время прямого прохода входные идентификаторы и маска проходят через предварительно обученный слой, создавая последовательность скрытых состояний. Наконец, выходные данные слоя отсева проходят через линейный выходной слой для получения окончательного вывода модели, который представляет собой вектор размера два, представляющий вероятности двух классов в задаче маркировки темы.

2. BERT-код

Вот пример кода BERT с использованием Python и популярной библиотеки глубокого обучения Pytorch для НЛП:



3. Архитектура DistilBERT

Hugging Face представила DistilBERT в 2019 году как более компактную и быструю альтернативу BERT, мощной модели обработки естественного языка, разработанной Google. DistilBERT использует метод дистилляции для обучения модели меньшего размера для воспроизведения поведения BERT, в результате чего получается модель с меньшим количеством параметров при сохранении высокой точности и производительности [4, 5, 6]. DistilBERT по-прежнему использует архитектуру преобразователя и предварительно обучается с помощью самоконтролируемого обучения на большом массиве текстовых данных, что делает его двунаправленной моделью, которая учитывает как левый, так и правый контекст каждого слова в предложении при прогнозировании.

DistilBERT хорошо справляется с различными задачами NLP, такими как классификация текста, ответы на вопросы и распознавание именованных объектов. Многие исследователи и практики в сообществе НЛП приняли DistilBERT из-за его меньшего размера и более быстрого обучения и логического вывода без особого ущерба для точности или производительности.

Рис. 2. Модель DistilBERT предварительно обучена на большом массиве данных Amazon Negative Product Review и может быть настроена для различных задач NLP. Модель DistilBERT состоит из нескольких слоев:

  • Входной слой: модель DistilBERT принимает входные данные: идентификаторы и маску. Эти входные данные представляют собой закодированные представления входного текста, полученные с помощью токенизатора.
  • предварительно обученный слой. Предварительно обученные веса «ditilbert-base-uncase» используются для инициализации модели DistilBERT. Он обрабатывает входные тензоры для получения выходных данных скрытого состояния. Первый токен последовательности используется для получения объединенного представления входной последовательности из тензора hidden_state.
  • Предварительный классификатор линейного слоя. Предварительный классификатор линейного слоя отвечает за извлечение признаков из данных путем получения выходных данных предварительно обученного слоя и передачи их в полносвязный слой.
  • Полностью подключенный слой: полностью подключенный слой — это линейный слой, который берет выходные данные предварительного классификатора линейного слоя и сопоставляет их с желаемой выходной размерностью. В этом случае размерность вывода равна двум, что соответствует тегированию темы.

Во время прямого прохода входные идентификаторы и маска проходят через предварительно обученный слой, создавая последовательность скрытых состояний. Наконец, выходные данные слоя отсева проходят через линейный выходной слой для получения окончательного вывода модели, который представляет собой вектор размера два, представляющий вероятности двух классов в задаче маркировки темы.

4. Код DistilBERT



Ссылка

[1] «BERT: предварительное обучение глубоких двунаправленных преобразователей для понимания языка», авторы Джейкоб Девлин, Минг-Вей Чанг, Кентон Ли и Кристина Тутанова. В материалах конференции 2019 года Североамериканского отделения Ассоциации компьютерной лингвистики: технологии человеческого языка (NAACL-HLT), страницы 4171–4186, 2019.

[2] Девлин, Дж., Чанг, М.В., Ли, К., и Тутанова, К. (2018). Берт: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. Препринт arXiv arXiv: 1810.04805.

[3] «BERT: предварительное обучение глубоких двунаправленных преобразователей для понимания языка», авторы Джейкоб Девлин, Минг-Вей Чанг, Кентон Ли и Кристина Тутанова. В материалах конференции 2019 года Североамериканского отделения Ассоциации компьютерной лингвистики: технологии человеческого языка (NAACL-HLT), страницы 4171–4186, 2019.

[4] Сан, В., Дебют, Л., Шомон, Дж., и Вольф, Т. (2019). DistilBERT, дистиллированная версия BERT: меньше, быстрее, дешевле и легче. Препринт arXiv arXiv: 1910.01108. Ссылка: https://arxiv.org/abs/1910.01108

[5] Сунь Ю., Ван С., Ли З., Фэн Ю., Чен С. и Чжан Х. (2021). DistilBERT для ответов на вопросы. В материалах Международной конференции по управлению образовательными технологиями 2021 г. (ICETM 2021) (стр. 420–424). Атлантис Пресс. Ссылка: https://www.atlantis-press.com/proceedings/icetm-21/125957688

[6] Тарик, У., Насим, И., и Раззак, И. (2021). Сравнительное исследование BERT и DistilBERT по классификации текстов. Журнал науки о данных и приложений, 4 (2), 79–88. Ссылка: http://www.jdsap.org/jdsap/article/view/123

[7] ReviewTag — Анализ негативных отзывов о продуктах Amazon с использованием глубокого обучения, автор диссертации Приянки Кумари в Университете Хьюстона Клир-Лейк.

[8] Рисунок, созданный автором этого сообщения, адаптированный из предоставленного кода.