Иллюстрированные примеры того, как и зачем использовать и внедрять модели, подобные BERT, в отрасли.

«После двух дней интенсивных дебатов Объединенная методистская церковь согласилась на исторический раскол - тот, который, как ожидается, закончится созданием новой деноминации, которая будет« теологически и социально консервативной », как сообщает The Washington Post. ”

Вам может быть интересно, что общего у этого странного и пустякового текста с ИИ, но на самом деле это так. Это одна из новостных статей, созданных самой большой и сложной нейронной сетью, а именно GPT-3. Если текст сбивает вас с толку, не волнуйтесь, вы не единственный. Только 12% экспертов поняли это правильно. Это не опечатка. GPT-3 справился со многими задачами, которые считались только человеческими, и поставил планку выше.

В отрасли существует растущая потребность в интеллектуальных системах, готовых к работе с тонкими спецификациями. Будь то анализ различных текстовых источников для прогнозирования тенденций на фондовом рынке, обнаружение фейковых новостей или просто ответы на вопросы, например, какого цвета волосы Кардашьян (сделайте это, спросите Google или Bing). Мы можем использовать GPT-3 в качестве предварительно обученной модели и заставить его изучить любую задачу, которую мы захотим: создание стихов, кода, электронных таблиц, даже некоторых простых мобильных и веб-приложений.

Создание и обучение такой всеобъемлющей и интеллектуальной системы НЛП с нуля никогда не было проблемой. Нам нужно всего несколько миллионов долларов, чтобы обучить его окончательную версию, не считая всех проб и ошибок на протяжении всего процесса. Апокрифическая сумма на обучение GPT-3 составляет 4,6 миллиона долларов. Теперь это проблема. Не все могут позволить себе такие товары, особенно молодые стартапы, стремящиеся создавать прорывные приложения на основе НЛП.

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

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

Трансформеры: отмена повторения

Обычно в машинном обучении есть две группы специалистов-практиков: первые восхищаются сверточными нейронными сетями (CNN), а другие - рекуррентными нейронными сетями (RNN). Конечно, в некоторых сценариях между ними есть взаимодействие.

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

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

Этот сдвиг завершился изобретением полностью сверточной Трансформаторной архитектуры, предварительно обученной самоконтролируемым образом. Модель представлена ​​на рисунке ниже. Объем этого текста слишком мал для исчерпывающего изучения Трансформера, поэтому я отсылаю читателей к отличному блогу« Аннотированный трансформер ».

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

Этот зоопарк готовых к использованию предварительно обученных моделей Transformer становится «новой нормой», создавая изысканную платформу, экосистему, в которой могут развиваться и расцветать многие идеи.

Давайте перейдем к основам и посмотрим, как воспользоваться этим импульсом и начать создавать лучшие приложения НЛП.

Входит БЕРТ.

Нет, не модель из Улицы Сезам, а модель на основе трансформатора, называемая «двунаправленные представления кодировщика от трансформаторов» или сокращенно BERT.

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

Концептуально модель BERT довольно проста, она представляет собой набор преобразователей-энкодеров, как показано на рисунке ниже:

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

«Для правильного использования предварительно обученной модели BERT наиболее важной задачей является понимание ожидаемых входных и выходных данных».

Ввод, вывод

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

Входные данные состоят из двух текстовых сегментов A и B, разделенных специальным маркером, обозначенным как [SEP]. Кроме того, в начале всегда есть один специальный токен, обозначенный как [CLS]. Имея эту структуру ввода, окончательное представление входного токена выражается как сумма трех вложений: вложения WordPiece, вложения сегментов (токен принадлежит сегменту A или B), и позиционные вложения (глобальное позиционное кодирование токена). Это сочетание трех разных встраиваний объясняется особой причиной, однако самое важное, о чем следует помнить, - это то, что теперь каждый токен проецируется на измерение размера H. Это измерение сохраняется на протяжении всей модели BERT. Все это показано на рисунке ниже:

Выходные данные представляют собой изученное представление размера H для каждого входного токена. Все выходные данные оставлены для дальнейшего использования инженерами в зависимости от варианта использования. Во-первых, выходное представление специального токена [CLS] можно использовать для любой задачи классификации текста. Во-вторых, выходные представления фактических токенов слов могут использоваться в любом языковом задании.

Предварительная подготовка

Предварительная тренировка основана на двух методиках:

  1. Моделирование маскированного языка (MLM) и
  2. Предсказание следующего предложения (NSP)

В задаче MLM используется то же предположение, что и в word2vec: слова, встречающиеся в одном контексте, имеют аналогичное значение. Таким образом, он случайным образом выбирает 15% входных слов для возможной маскировки. Затем 80% из них маскируются, 10% заменяются случайным словом, а последние 10% остаются без изменений. Наконец, выходные данные BERT для случайно выбранных слов передаются в выходных данных softmax по всему словарю.

Задача NSP расширяет объем задачи MLP, фиксируя зависимости между предложениями. Для этого 50% временного отрезка B является де-факто следующим отрезком после A, а остальные 50% времени - случайным выбором. Обе задачи показаны на рисунке ниже:

В исходной статье есть 2 предварительно обученные модели:

  1. BERT-Base: содержит 110 миллионов параметров и
  2. BERT-Large: содержит 340 миллионов параметров.

Неудивительно, что эта модель знает почти все. Обе модели предварительно обучены с использованием набора данных Book Corpus (800 миллионов слов) и всей английской Википедии (2500 миллионов слов).

Базовое использование BERT

Как отмечалось ранее, существует множество предварительно обученных моделей BERT с открытым исходным кодом, готовых к использованию практически всеми. Одним из таких удивительных репозиториев является тот, который предлагает Huggingface 🤗, и, поверьте мне, воспользоваться преимуществами этого мощного механизма довольно просто. Код ниже демонстрирует это:

Теперь давайте посмотрим, какие приложения НЛП мы можем разработать с помощью BERT.

BERT для классификации текста

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

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

Случаи применения

Классификация текста может использоваться для автоматизации следующих задач, но не ограничивается:

  • Анализ тональности: обнаружение субъективности и полярности в тексте. Полезно понимать наших клиентов, довольны ли они нашим обслуживанием или нет.
  • Классификация намерений: понимание темы высказывания пользователя. Это может быть полезно для нашего чат-бота или для автоматической перенаправления запроса нужным агентам.
  • Категоризация документов: автоматически присваивает ярлыки текстовым документам. Это может улучшить поиск документов в нашем продукте или организации, принимая во внимание эмпирическое правило, согласно которому почти 80% корпоративной информации существует в текстовом формате.
  • Определение языка: как бы абсурдно это ни звучало, но иногда очень важно сначала определить язык, на котором написано данное предложение.
  • Категоризация клиентов: группируйте пользователей социальных сетей в когорты. Это важно для маркетинговых команд, поскольку они могут сегментировать различные категории потенциальных клиентов.

Как это сделать с BERT

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

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

Один отличный ресурс

Статья Как настроить BERT для классификации текста вместе с базовым репозиторием GitHub представляет собой отличное решение для повторного использования и начала классификации текста.

BERT для распознавания именованных сущностей (NER)

«Флойд произвел революцию в роке с помощью Стены» - в этом предложении мы все знаем, что слово «рок» относится к рок-жанру музыки, а не к геологическому объекту, иначе это предложение не имело бы никакого смысла.

Это в точности задача задачи Распознавание именованных сущностей (NER) - связать слово или группу слов с уникальной сущностью или классом в зависимости от контекста. Узнав все сущности, мы можем связать их с базой знаний или базой данных, где мы сможем найти дополнительную информацию о них. Другими словами, он извлекает данные о данных.

Случаи применения

Область действия NER велика, но это основные важные поля, в которых она применяется:

  • Поиск информации: обнаруживая сущности слов, мы можем гораздо лучше понимать семантические поисковые запросы. Это может помочь нам найти более релевантные результаты поиска.
  • Создание лучших чат-ботов: лучше понимайте пользователей. Фактически, чат-боты полагаются на NER, основываясь на извлеченных объектах, которые они могут искать в базах знаний, базах данных и возвращать соответствующие ответы, ведущие разговор в правильном направлении.
  • Извлечение знаний: сделайте неструктурированные данные актуальными. Поскольку большая часть информации существует в текстовом формате, извлечение из нее значения становится важной задачей.

Как это сделать с BERT

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

Токенизированное предложение на входе подается в предварительно обученную модель BERT. Чтобы определить сущности, которым принадлежат слова, мы используем выученное представление BERT для слов и вводим их в классификатор.

Один отличный ресурс

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

BERT для экстрактивного обобщения текста

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

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

Случаи применения

Автоматическое суммирование текста может применяться ко всему, что связано с длинными документами:

  • Резюме новостей: резюмирует огромное количество ежедневных новостных статей.
  • Анализ юридических контрактов: резюмирование мучительно запутанных и длинных юридических документов, чтобы понять их простыми словами.
  • Маркетинг и поисковая оптимизация: сканирование и обобщение содержания конкурентов, чтобы лучше его понять.
  • Анализ финансовых отчетов: извлекайте значимую информацию из финансовых новостей и отчетов, чтобы принимать более обоснованные решения.

Как это сделать с BERT

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

В этом случае мы работаем на уровне предложений, но предложения в любом случае рассматриваются как список токенов. Чтобы выбрать, какие предложения являются важными, мы заключаем каждое предложение в токен [CLS] слева и токен [SEP] справа. Чтобы соседние предложения зависели друг от друга, мы явно предоставляем токены сегментации. Для каждого предложения мы попеременно переключаемся между сегментом A и сегментом B.

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

Один отличный ресурс

Работа в документе, озаглавленном Обобщение текста с предварительно обученными кодировщиками, вместе с связанным с ним репозиторием GitHub представляет систему под названием BertSum. Эта система может служить очень хорошей основой для разработки более специализированных текстовых сумматоров на основе BERT.

Заключение

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

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

В будущем этот зоопарк высокопроизводительных предварительно обученных моделей, таких как BERT, станет более важным и актуальным. Мы видим это по последним разработкам, например, по созданию модели GPT-3. Это может быть толчком, который нам всем нужен для достижения наших целей. Итак, давайте ухватимся за этот шанс и воспользуемся моментом.

Если это то, что вам нравится и вы хотите получать похожие сообщения, пожалуйста, подпишитесь на список рассылки. Для получения дополнительной информации, пожалуйста, подпишитесь на меня в Twitter или LinkedIn.

Вам также может понравиться

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



Первоначально опубликовано на https://isquared.digital 14 января 2021 г. Для получения дополнительной информации, подпишитесь на меня в Twitter или LinkedIn.