Когда ИИ встречается с языком

Понимание состояния технологии естественного языка с помощью подхода, ориентированного на проект

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

Примечание. Рассматриваемые темы включают преобразователи, языковые модели (BERT, GPT-2), оценочные тесты и диалоговые интерфейсы (чат-боты).

В начале июня 2020 года я решил узнать о текущем состоянии НЛП (обработки естественного языка) и, соответственно, роли (узкого) ИИ. Мой обычный подход к пониманию темы — снизу вверх. Тщательно изучите основы, прежде чем приступать к проекту. Ограниченный временем и вдохновленный педагогикой, продвигаемой такими, как Быстрый ИИ, я решил вместо этого заняться проектом.

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

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

Начиная

Мой первоначальный список проектов был следующим:

  • Проект(ы) с OpenAI GPT-2 для лучшего понимания языковых моделей
  • Чат-бот на основе машинного обучения с целью лучше понять NLU
  • Инструмент для расшифровки и анализа аудиоразговоров (онлайн или телефонных звонков)

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

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

Играем с GPT-2

GPT-2 появился во время появления архитектуры-трансформера и трансферного обучения в НЛП в 2018–2019 годах. Трансферное обучение — мощная концепция. Это позволяет предварительно обученным большим нейронным сетям (в данном случае языковым моделям) быть точно настроенными для последующих задач. Это избавляет практиков от необходимости переобучать целые модели с нуля. Эта гибкость является большой причиной успеха языковых моделей.

Когда я начинал, я искал существующие проекты GPT-2 для репликации. Именно тогда я наткнулся на похожие Пакеты Python от Макса Вульфа. Его работа позволяет легко начать даже абсолютным новичкам. Именно тогда я решил сделать пародийного твиттер-бота в качестве первого проекта.

Пародийный твиттер-бот

В 2019 году стал популярен пародийный бот пользователя dril в Твиттере. Он работал на модели GPT-2, настроенной на твиты dril.
В том же духе я создал аккаунт пародийного бота, обученного на миксе. из 5 различных пародийных аккаунтов. Среди них были персонажи Королевы Елизаветы, Лорда Волан-де-Морта, Дарта Вейдера и Скучающего Илона Маска. Для получения твитов я использовал удивительный пакет twin.

Полученная учетная запись бота называется Королева Дарт Волан-де-Морт Маск, первая в своем имени. Да, ты читаешь это правильно.

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

Трансформаторы, БЭРТ и ГПТ-2

Затем я сделал небольшое отступление, чтобы прочитать о теории, лежащей в основе GPT-2, и о переносе обучения в НЛП. BERT — еще одна языковая модель, которая продолжала развиваться. И GPT, и BERT основаны на архитектуре трансформатора. Однако у BERT есть только блоки энкодера, а у GPT-2 только блоки декодера от преобразователя. Это делает их более подходящими для различных задач.
Попытка понять технические различия и возможности этих двух популярных моделей — полезное упражнение. Я настоятельно рекомендую это сделать!

Вот несколько релевантных ссылок по этой теме:

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

Оценка эталонных показателей НЛП

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

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

В этом проекте у меня было две цели:

  • Оцените как BERT, так и GPT-2 по крайней мере в одной задаче из соответствующих тестов.
  • Реализовывать различные задачи из популярных бенчмарков

Для реализации я использовал Python-библиотеку трансформеры от HuggingFace. Я скоро выпущу соответствующий блокнот и, надеюсь, напишу больше об этой подтеме.

А пока вот несколько полезных ссылок:

Практический NLU: диалоговые интерфейсы

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

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

Голосовой помощник с искусственным интеллектом

Для этого я просто следовал отличному учебнику от начала до конца. Вот оно — Как создать голосового помощника с помощью инструментов Rasa и Mozilla с открытым исходным кодом.

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

Раса разработала богатый набор ресурсов и активное сообщество. Они чрезвычайно полезны.

Чат-бот службы поддержки клиентов

Поработав с инструментами с открытым исходным кодом, я захотел попробовать управляемый сервис. Варианты предоставляются такими компаниями, как GCP, AWS, Azure и IBM. Я выбрал Dialogflow от Google.

Как только вы ознакомитесь с основами, такими как намерения и действия, создать бота несложно. Предварительно обученные боты — удобная функция, но их импорт не был гладким. Функция «один бот на проект» и задержка, которая потребовалась для ее появления, смутили меня на несколько минут.

Заключительные мысли

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

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

В то же время мы должны реалистично оценивать его пределы. Случаи использования API OpenAI на базе GPT-3 стали вирусными. Настолько, что их генеральный директор Сэм Альтман написал саркастический твит по поводу шумихи.
Раса изложил концепцию 5 уровней разговорного ИИ. Они также упоминают, что мы, возможно, в десятилетии от пятого уровня.

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

Первоначально опубликовано на https://www.akashtandon.in 30 июля 2020 г.