Когда ИИ встречается с языком
Понимание состояния технологии естественного языка с помощью подхода, ориентированного на проект
План, чтобы понять последние достижения в технологии естественного языка на практике.
Примечание. Рассматриваемые темы включают преобразователи, языковые модели (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 только блоки декодера от преобразователя. Это делает их более подходящими для различных задач.
Попытка понять технические различия и возможности этих двух популярных моделей — полезное упражнение. Я настоятельно рекомендую это сделать!
Вот несколько релевантных ссылок по этой теме:
- Момент ImageNet для НЛП настал
- Трансформеры в НЛП — краткий обзор
- Заметки об архитектуре трансформатора
- Заметки о GPT-2 и BERT
Этот обходной путь также привел меня к идее моего следующего проекта.
Оценка эталонных показателей НЛП
Триумфы в машинном обучении связаны с их производительностью на стандартных тестах. Даже если вы не исследователь, знание такого теста, как GLUE, даст вам важную информацию об этой области. Если вы начнете сравнивать BERT с GPT-2 даже без глубоких знаний, просмотр тестов, по которым они оцениваются, позволит вам узнать, для решения каких задач они подходят. Это полезно как практикующему.
Тесты НЛП, такие как GLUE и SQuAD, состоят из нескольких задач. Различные задания проверяют владение различными аспектами языка, такими как распознавание сущностей, вопрос-ответ и разрешение кореферентности. В совокупности они проверяют общее понимание языка.
В этом проекте у меня было две цели:
- Оцените как BERT, так и GPT-2 по крайней мере в одной задаче из соответствующих тестов.
- Реализовывать различные задачи из популярных бенчмарков
Для реализации я использовал Python-библиотеку трансформеры от HuggingFace. Я скоро выпущу соответствующий блокнот и, надеюсь, напишу больше об этой подтеме.
А пока вот несколько полезных ссылок:
- Объяснение GLUE: понимание BERT с помощью тестов
- Видео — современное состояние НЛП
- Почему GPT-2 нет в рейтинге GLUE?
- Большая таблица (НЛП) задач от HuggingFace
Практический NLU: диалоговые интерфейсы
Диалоговые интерфейсы становятся все более распространенными. Они будут становиться все более важными для потребительских приложений. Это особенно актуально для стран с развивающейся экономикой, где голосовые интерфейсы могут принести огромную пользу новым пользователям Интернета.
Размышляя о диалоговых интерфейсах, я наткнулся на онлайн-мероприятие от Rasa. Я присутствовал на некоторых переговорах. Они помогли мне получить интуицию с точки зрения разработчика. После этого моя склонность к голосовым интерфейсам помогла мне выбрать мой следующий проект.
Голосовой помощник с искусственным интеллектом
Для этого я просто следовал отличному учебнику от начала до конца. Вот оно — Как создать голосового помощника с помощью инструментов Rasa и Mozilla с открытым исходным кодом.
Большинство функций, реализованных в нем, доступны в виде управляемых сервисов. По личному выбору я решил начать с инструментов с открытым исходным кодом. Конечно, при рассмотрении производственного сценария необходимо учитывать компромиссы.
Раса разработала богатый набор ресурсов и активное сообщество. Они чрезвычайно полезны.
Чат-бот службы поддержки клиентов
Поработав с инструментами с открытым исходным кодом, я захотел попробовать управляемый сервис. Варианты предоставляются такими компаниями, как GCP, AWS, Azure и IBM. Я выбрал Dialogflow от Google.
Как только вы ознакомитесь с основами, такими как намерения и действия, создать бота несложно. Предварительно обученные боты — удобная функция, но их импорт не был гладким. Функция «один бот на проект» и задержка, которая потребовалась для ее появления, смутили меня на несколько минут.
Заключительные мысли
Это был интересный опыт, связанный с вышеупомянутыми экспериментами. Иногда у меня возникал зуд углубиться в темы. Решение отпустить это позволило мне исследовать широту под рукой. Это также позволило мне втиснуть короткие сеансы взлома в свое расписание.
В последнее время в области обработки естественного языка произошли некоторые захватывающие события. В странах с развивающейся экономикой голос как интерфейс получает все большее распространение. Улучшение машинного понимания языка также улучшит демократизацию технологий.
В то же время мы должны реалистично оценивать его пределы. Случаи использования API OpenAI на базе GPT-3 стали вирусными. Настолько, что их генеральный директор Сэм Альтман написал саркастический твит по поводу шумихи.
Раса изложил концепцию 5 уровней разговорного ИИ. Они также упоминают, что мы, возможно, в десятилетии от пятого уровня.
Язык был ключом к прогрессу человечества. Изучение его через призму новых технологий — интересное занятие. Я надеюсь, что процесс инноваций будет продолжаться ответственно.
Если вы хотите обсудить или поделиться мыслями, не стесняйтесь обращаться к нам.
Первоначально опубликовано на https://www.akashtandon.in 30 июля 2020 г.