Введение

Знаете ли вы, что в прошлом компьютеры изо всех сил пытались понять человеческие языки? Но теперь компьютер можно научить понимать и обрабатывать человеческий язык с помощью обработки естественного языка (NLP), которая была реализована, чтобы сделать компьютеры способными понимать устную и письменную речь.

Модель машинного обучения с открытым исходным кодом под названием BERT была разработана Google в 2018 году для НЛП, но у этой модели были некоторые ограничения, и из-за этого модифицированная модель BERT под названием RoBERTa (надежно оптимизированная BERT Pre-Training Approach) был разработан командой Facebook в 2019 году.

Эта статья подробно расскажет вам о RoBERTa, и если вы не знаете о BERT, нажмите на соответствующую ссылку.

Что такое РОБЕРТа?

RoBERTa (надежно оптимизированный подход BERT) — это современная модель языкового представления, разработанная Facebook AI. Он основан на оригинальной архитектуре BERT (представления двунаправленного кодировщика от трансформаторов), но отличается несколькими ключевыми особенностями.
Он имеет современную модель языкового представления, разработанную искусственным интеллектом Facebook.

Цель RoBERTa — улучшить исходную модель BERT, расширив модель, учебный корпус и методологию обучения, чтобы лучше использовать архитектуру Transformer. Это создает представление языка, которое является более выразительным и надежным, что, как было показано, позволяет достичь самых современных результатов в широком диапазоне задач НЛП. Эта модель обучается на большом количестве текстовых данных с разных языков, что делает ее способной понимать и генерировать текст на разных языках.

Архитектура

Модель RoBERTa основана на архитектуре Transformer, которая описана в статье Внимание — это все, что вам нужно. Архитектура Transformer — это тип нейронной сети, специально предназначенный для обработки последовательных данных, таких как текст на естественном языке.

Архитектура почти сравнима с архитектурой BERT, с небольшими изменениями в процедуре обучения и архитектуре для улучшения результатов по сравнению с BERT.

Модель RoBERTa состоит из ряда уровней самоконтроля и прямой связи. Уровни самоконтроля позволяют модели взвешивать важность различных токенов во входной последовательности и вычислять представления, которые учитывают контекст, предоставляемый всей последовательностью. Уровни прямой связи используются для преобразования представлений, созданных слоями внутреннего внимания, в окончательное выходное представление.

Часть токенов каждого предложения случайным образом маскируется в каждом слое модели RoBERTa во время обучения, а затем модель учится предсказывать замаскированные токены на основе контекста, обеспечиваемого незамаскированными токенами. На этом этапе предварительной подготовки модель может получить подробное представление языка, которое можно адаптировать для конкретных задач НЛП.

Особенности РОБЕРТа

Это предварительно обученная модель представления языка, которая имеет несколько ключевых особенностей и преимуществ по сравнению с другими моделями, перечисленными ниже:

Предобучение с динамической маскировкой

Динамическое маскирование — это метод предварительной подготовки, который использовался в некоторых вариантах RoBERTa для повышения его производительности при выполнении последующих задач НЛП. В отличие от статического маскирования, используемого в исходной модели BERT, которая маскирует одни и те же токены в каждую эпоху предварительного обучения, динамическое маскирование предполагает случайное маскирование разных токенов в разные моменты во время предварительного обучения.

Идея динамического маскирования состоит в том, чтобы побудить модель изучить более надежные и обобщаемые представления языка, заставив ее предсказывать недостающие токены в различных контекстах. Путем случайного маскирования разных токенов в каждую эпоху предварительного обучения модель подвергается воздействию более широкого диапазона входных распределений и лучше способна научиться обрабатывать входные данные вне распределения.

ПОЛНОЕ предложение без потери NSP

В исходной модели BERT этап предварительной подготовки включает в себя задачу прогнозирования следующего предложения (NSP), где модель обучается предсказывать, является ли данное предложение следующим предложением в тексте или нет.

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

Более крупный BPE

RoBERTa использует больший размер словаря кодирования пар байтов (BPE) по сравнению с исходной моделью BERT. BPE — это тип токенизации подслов, который помогает более эффективно обрабатывать редкие слова и слова, не входящие в словарь. В BPE слова разбиваются на подслова, что позволяет модели обобщать новые слова, которые не встречались в обучающих данных.

RoBERTa использует более агрессивный алгоритм BPE по сравнению с BERT, что приводит к большему количеству единиц подслов и более детальному представлению языка. это делает RoBERTa более приемлемым по сравнению с BERT для различных задач НЛП.

Хотите получать самые свежие новости обо всем, что связано с глубоким обучением? Подпишитесь на Еженедельник глубокого обучения, чтобы быть в курсе последних исследований, ресурсов и отраслевых новостей, доставляемых на ваш почтовый ящик.

Как работает Роберта

Он работает путем предварительной подготовки глубокой нейронной сети к большому объему текста. Вот общий обзор того, как это работает.

  1. Предварительное обучение → Прежде чем использовать RoBERTa, его необходимо предварительно обучить на значительном текстовом корпусе. Часть токенов в каждой фразе маскируется случайным образом во время предварительного обучения, и модель обучается предсказывать замаскированные токены на основе контекста, предоставляемого незамаскированными токенами. Цель моделирования маскированного языка называется так.
  2. Точная настройка → После предварительного обучения модель можно настроить для конкретных задач НЛП, включая распознавание именованных сущностей, анализ настроений или ответы на вопросы. Во время тонкой настройки модель обучается на меньшем наборе данных, специфичном для поставленной задачи, с использованием предварительно изученных весов в качестве инициализации.
  3. Вывод. После тонкой настройки модель можно использовать для вывода нового текста путем ввода текста в сеть и использования изученных представлений для прогнозирования.

Различия между RoBERTa и BERT

Обе модели предварительно обучены для языкового представления и основаны на архитектуре Transformer, но между двумя моделями есть несколько ключевых различий:

  1. Обучающий корпус: RoBERTa обучается на большем объеме текстов, чем BERT. Это позволяет изучить более надежное и тонкое представление языка.
  2. Динамическое маскирование. RoBERTa использует стратегию динамического маскирования, при которой в каждом обучающем примере маскируются разные токены. Это позволяет модели изучать более разнообразный набор представлений, поскольку она должна предсказывать разные маски в разных контекстах.
  3. Без потери прогнозирования следующего предложения. В отличие от BERT, RoBERTa не использует потерю прогнозирования следующего предложения (NSP) во время предварительной подготовки. Это позволяет RoBERTa сосредоточиться исключительно на задаче моделирования замаскированного языка, что приводит к более выразительному языковому представлению.
  4. Большой словарь кодирования байт-пары: RoBERTa использует больший словарь кодирования байт-пары (BPE) размером 50 КБ по сравнению с размером 30 КБ BERT, что позволяет модели изучить более детальное представление язык.
  5. Стратегии тонкой настройки. RoBERTa обучается с использованием более агрессивной стратегии тонкой настройки по сравнению с BERT, которая включает в себя более длительные графики обучения и скорости обучения. Это позволяет RoBERTa лучше адаптироваться к конкретным задачам НЛП во время тонкой настройки.

Как установить RoBERTa

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

  1. PyTorch: чтобы установить RoBERTa в PyTorch, вы можете использовать библиотеку Hugging Face Transformers. Библиотеку можно установить через pip:
pip install transformers

После установки библиотеки вы можете загрузить предварительно обученную модель, используя следующий код

from transformers import RobertaModel, RobertaTokenizer

model = RobertaModel.from_pretrained('roberta-base')
tokenizer = RobertaTokenizer.from_pretrained('roberta-base')

2. TensorFlow: чтобы установить RoBERTa в TensorFlow, вы можете использовать библиотеку TensorFlow Hub. Библиотеку можно установить через pip.

pip install tensorflow-hub

После установки библиотеки вы можете загрузить предварительно обученную модель, используя следующий код.

import tensorflow as tf
import tensorflow_hub as hub

model = hub.load("https://tfhub.dev/tensorflow/roberta-base/2")

Таким образом, установка RoBERTa включает в себя установку соответствующей библиотеки глубокого обучения, такой как PyTorch или TensorFlow, и ее использование для загрузки предварительно обученной модели.

Заключение

Вы можете заявить, что RoBERTa — это улучшенная версия BERT, которая вносит некоторые изменения в метод, но одним из возможных улучшений является разработка методов для более эффективной обработки более длинных документов, поскольку RoBERTa обычно обрабатывает входной текст фиксированной длины. В целом, RoBERTa — это сильная и успешная языковая модель, которая значительно продвинула область НЛП и помогла в разработке различных приложений.

Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.