Научитесь получать адекватные ответы на вопросы для сложных текстов благодаря предварительно обученной модели (allen.ai)

В последние годы разработаны очень интересные проекты по изучению языков. Технологии НЛП сыграли в этом чрезвычайно впечатляющую роль. Фактически, прошло много времени с тех пор, как Google намеревался понять поисковые запросы лучше, чем когда-либо.

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

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

BERT в цифрах

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

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

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

Затем, опять же, как обычно, мы ждем, когда мы извлечем смысл из письменных источников, установим сходство и классифицируем источники и аналогичные процессы. И Pytorch, и TensorFlow 2.0 позволяют нам легко догнать новейшие технологии в этом случае.

Теперь мы начнем понимать Longformer, чтобы лучше выразить заключительную точку, которую мы достигли по этому вопросу.

1) Что такое Longformer?

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



Так что же такое трансформаторы?

Использование преобразователей с Python предоставляет модели для вашего проекта, где вы можете выполнять такие задачи, как классификация, ответы на вопросы, обобщение и создание текста на многих языках (более 100) для облегчения проектов НЛП.

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

Вот 5 примеров тем и задач для трансформеров:

  • Тема1: анализ настроений
  • Задача: утверждения в тексте положительные или отрицательные?
  • Тема2: Имя, по которому можно распознать объект.
  • Задача: пометить каждое слово так, чтобы оно соответствовало сущностям, которые оно представляет. Это могут быть люди, местонахождение, личная информация и т. Д.
  • Тема 3: Ответ на вопрос
  • Задача: это тема, о которой мы поговорим в этой статье. И мы изучим ответ модели на вопросы, которые мы зададим по тексту.
  • Тема 4: Подведение итогов
  • Задача: составьте краткое изложение длинного текста.
  • Тема 5: заполните замаскированный текст.
  • Задача: Предложите подходящее слово вместо замаскированного слова в предложении.

См. дополнительные сведения: https://huggingface.co/transformers/index.html

2) Что мы можем делать с Longformer?

Лонгформер; Когда вы подвергаете сомнению информацию, содержащуюся в длинных текстах, на предмет соответствующих характеристик, это дает высокую точность. Итак, у вас есть длинные текстовые файлы на вашей цели. Это причина, которая положительно повлияет на быстрых исследователей.

Потому что при быстром исследовании получение только математических данных не важнее, чем понимание текста в частности.

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

3) Образец приложения

Давайте перейдем к нашему примеру приложения. Для всех кодов вы можете получить доступ к кодам проекта на странице Github.



Но давайте начнем с попытки понять, что мы делаем и почему.

а) Необходимые библиотеки:

  • torch (для установки: pip install torchvision)
  • nlp (для установки: pip install nlp)
  • трансформаторы (для установки: pip install transformers)

б) Включение Лонгформера в проект:

«LongformerTokenizerFast» включен в проект из трансформаторов.

from transformers import LongformerTokenizerFast

c) Создание токенизаторов с помощью предварительно обученной модели и созданной модели:

Очень часто в проектах машинного обучения вдохновляются предварительно обученными моделями. Модель, которую мы будем использовать: allenai/longformer-base-4096

В этом случае переменная токенизатора создается следующим образом:

tokenizer = LongformerTokenizerFast.from_pretrained('allenai/longformer-base-4096')
model = LongformerForQuestionAnswering.from_pretrained("valhalla/longformer-base-4096-finetuned-squadv1")

г) Добавление модуля ответов на вопросы:

Включен в проект сLongformerForQueastionAnswering.

Для этого:

from transformers import LongformerTokenizer, LongformerForQuestionAnswering

д) Создание функции вопросов и ответов:

Давайте объясним некоторые параметры, чтобы лучше понять функцию:

  • encode_plus: зашифруйте строковые выражения и подготовьте строку или массив строк для модели.
  • argmax: argmax часто используется в машинном обучении для поиска класса с наибольшей прогнозируемой вероятностью. Таким образом, выполняется преобразование из вектора предсказанных вероятностей в метку класса.
  • convert_ids_to_tokens: идентификатор токена преобразуется в идентификаторы токенов.
  • маска_ внимания: ее использование не требуется. Указывает, какие маркеры следует и не следует включать в модель.

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

Оценка

Прежде всего, давайте поделимся текстом. Мы не хотели, чтобы текст был слишком длинным. Поэтому всего 746 слов. Текст взят из отчета к заявлению федерального правительства Германии от 25 марта.

Теперь мы зададим следующие 4 вопроса по тексту. И мы протестируем ответы модели.

1- 'What did Angela Merkel defended?'
2- 'What EU member states are doing in the pandemic?'
3- 'What did Merkel call for the world?'
4- 'What is the US not doing exactly?'

Во-первых, давайте рассмотрим полученный снимок экрана каждой модели:

1- 'What did Angela Merkel defended?'

Модель способна уловить актуальность этого с Ангелой Меркель, хотя в исходном тексте она выглядит точно так, как «Канцлер защищал…». И он может получить правильный ответ на нужную тему. Однако мы задали этот вопрос по поводу ангела Меркель.

2- 'What EU member states are doing in the pandemic?'

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

Кроме того, другие выражения в тексте также могут содержать шаблоны, относящиеся к вакцине. (Например, «Свидетельство о вакцинации».) Несмотря на это, ответ пришел именно так, как просили. После вопроса 2 модель в хорошей форме.

3- 'What did Merkel call for the world?'

Да, модель не упустила из виду это утверждение в конце текста.

«Канцлер также попросил вакцину« для мира ».

Результат такой, каким должен быть.

Наконец, зададим более подробный вопрос. Посмотрим, сможет ли наша модель дать хороший ответ на этот вопрос.

4- 'What is the US not doing exactly?'

Просто здорово! Модель действительно заслуживает здесь аплодисментов. Потому что в тексте было именно так:

«США не экспортируют вакцины».

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

Вывод

В этой статье мы рассмотрели, как применять модели BERT для длинных текстов, которые занимают важное место в технологиях NLP.

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

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

Спасибо за чтение! 🎉

Использованная литература:

Longformer - проект с открытым исходным кодом, разработанный Институтом искусственного интеллекта Аллена (AI2). AI2 - это некоммерческий институт, миссия которого - внести свой вклад в человечество посредством высокоэффективных исследований и разработок в области искусственного интеллекта.

Https://arxiv.org/abs/2004.05150