Ускорение с помощью BERT: модели оптимизации НЛП

Опубликовано: 2022-03-11

Ускорение НЛП с помощью BERT: результаты мирового класса с использованием в 100 раз меньше данных

При построении моделей классификации обработки естественного языка (NLP) для глубокого обучения возникают две основные трудности.

  1. Сбор данных (получение тысяч или миллионов секретных точек данных)
  2. Архитектура глубокого обучения и обучение

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

Сбор данных обременительный, трудоемкий, дорогой и является ограничивающим фактором номер один для успешных проектов НЛП. Подготовка данных, построение отказоустойчивых конвейеров, выбор из сотен потенциальных вариантов подготовки и «подготовка модели» могут легко занять месяцы усилий даже у талантливых инженеров по машинному обучению. Наконец, обучение и оптимизация моделей глубокого обучения требуют сочетания интуитивного понимания, технических знаний и способности решать проблемы.

В этой статье мы рассмотрим

  1. Тенденции глубокого обучения для НЛП: как трансферное обучение делает модели мирового уровня открытыми
  2. Введение в BERT: введение в самый мощный «инструмент» НЛП на сегодняшний день — представление двунаправленного кодировщика из преобразователей (BERT)
  3. Как работает BERT и почему он изменит то, как компании выполняют проекты НЛП

Тенденции глубокого обучения

Естественно, оптимизация этого процесса началась с повышением точности. Сети LSTM (долговременная память) произвели революцию во многих задачах НЛП, но они были (и остаются) невероятно требовательными к данным. Оптимизация и обучение этих моделей может занять дни или недели на больших и дорогих машинах. Наконец, развертывание этих больших моделей в производстве является дорогостоящим и громоздким.

Чтобы уменьшить эти факторы, создающие сложность, в области компьютерного зрения уже давно используется трансферное обучение. Трансферное обучение — это возможность использовать модель, обученную для другой, но похожей задачи, чтобы ускорить решение новой задачи. Для переобучения модели, которая уже может классифицировать деревья, требуется гораздо меньше усилий, чем для обучения новой модели распознаванию кустов с нуля.

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

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

Приходит БЕРТ

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

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

BERT против LSTM проиллюстрирован

Как работает БЕРТ

В традиционном НЛП отправной точкой для обучения модели являются векторы слов. Векторы слов представляют собой список чисел [0,55, 0,24, 0,90, …], которые пытаются численно представить значение этого слова. С числовым представлением мы можем использовать эти слова в обучении сложных моделей, а с большими векторами слов мы можем встраивать информацию о словах в наши модели.

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

По сравнению с моделями LSTM, BERT многое делает по-другому.

  1. Он читает все слова сразу, а не слева направо или справа налево.
  2. 15% слов выбираются случайным образом для «маскирования» (буквально замененного токеном [MASK]) во время обучения.
    • 10% случайно выбранных слов остаются без изменений
    • 10% замаскированных слов заменены случайными словами
    • (a) и (b) работают вместе, чтобы заставить модель предсказывать каждое слово в предложении (модели ленивы)
  3. Затем BERT пытается предсказать все слова в предложении, и только замаскированные слова вносят вклад в функцию потерь, включая неизмененные и случайно замененные слова.
  4. Модель точно настроена на предсказание следующего предложения. На этом этапе модель пытается определить, является ли данное предложение следующим предложением в тексте.

Сходимость происходит медленно, и обучение BERT занимает много времени. Тем не менее, он гораздо лучше изучает контекстуальные отношения в тексте. Векторы слов являются очень поверхностными представлениями, которые ограничивают сложность, которую они могут моделировать — BERT не имеет этого ограничения.

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

Внедрение BERT и сравнение ценности для бизнеса

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

  1. BERT: самый простой конвейер BERT. Мы обрабатываем текст стандартным способом, создаем кодировки предложений BERT и передаем эти кодировки предложений в неглубокую нейронную сеть.
  2. LSTM: стандартная архитектура Embed-Encode-Attend-Predict (на фото выше)

Задание? Прогнозирование происхождения фильмов на основе их сюжета из IMDB. Наш набор данных охватывает фильмы из Америки, Австралии, Великобритании, Канады, Японии, Китая, Южной Кореи и России, а также шестнадцать других фильмов, всего 24 происхождения. Всего у нас чуть менее 35 000 обучающих примеров.

Вот пример фрагмента из сюжета.

Тысячи лет назад Степной Волк и его легионы Парадемонов пытаются захватить Землю с помощью объединенных энергий трех Материнских ящиков. Им мешает объединенная армия, в которую входят олимпийские боги, амазонки, атланты, человечество и Корпус Зеленых Фонарей. После отражения армии Степного Волка Материнские Ящики разделяются и прячутся в разных местах на планете. В настоящее время человечество оплакивает Супермена, чья смерть вызывает повторную активацию Материнских ящиков и возвращение Степного Волка на Землю в попытке вернуть расположение своего хозяина Дарксайда. Steppenwolf стремится собрать артефакты, чтобы сформировать «Единство», которое разрушит экологию Земли и терраформирует ее по образу…

Если вы не догадались, это сюжет Лиги справедливости — американского фильма.

Результаты, достижения

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

Для модели LSTM мы обучили самую большую модель, какую только могли, на нашем графическом процессоре и варьировали размер словаря и длину слова, чтобы найти модель с наилучшей производительностью. Для модели BERT у нас не было ничего, кроме одного слоя.

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

Результаты при использовании BERT NLP

В этой задаче модель, обученная с использованием кодировок предложений BERT, достигает впечатляющего показателя F1, равного 0,84, всего после 1000 выборок. Сеть LSTM никогда не превышает 0,60. Еще более впечатляет то, что обучение моделей BERT занимало в среднем 1/20 времени , чем подготовка моделей LSTM.

Заключение

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

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

Код этого поста доступен на Github. Я также рекомендую читателям ознакомиться с Bert-as-a-Service, который был краеугольным камнем при создании кодировок предложений BERT для этого поста.

Связанный: Получение максимальной отдачи от предварительно обученных моделей