Небольшой пост о проектах BERT и NLP в 2019 году

Документ BERT был выпущен в конце 2018 года, после чего в 2019 году мы увидели большую активность в области обработки естественного языка (NLP) и понимания естественного языка (NLU) от BERT, используемого в производстве для поиска в Google для нескольких других архитектур. который показал даже лучшие результаты, чем BERT. BERT показал отличные результаты в нескольких задачах НЛП, таких как анализ настроений, ответы на вопросы, сходство предложений и т. Д. Я работал над проектом с использованием предварительно обученных весов BERT в январе 2019 года, так что это могло быть потому, что я работал в этой области, но везде Я бы увидел некоторые ссылки на BERT - например, статьи среднего размера, BERT для iOS, аппаратное ускорение для BERT, соревнования Kaggle, более крупные модели, вдохновленные BERT, и т. Д. Я также думаю, что название Улица Сезам как-то связано с популярностью BERT. , хотя заслуга начала этой тенденции в названии принадлежит статье ELMO (Глубоко контекстуализированные представления слов) из Института ИИ Аллена. BERT использует двунаправленный трансформатор и множество других архитектур, появившихся после того, как BERT также использовал некоторую форму трансформатора, основанную на статье Внимание - это все, что вам нужно ».

График некоторых крупных проектов НЛП до BERT:

Модель Word2Vec, выпущенная в 2013 году, по-прежнему довольно популярна, и часто это первое, что можно попробовать в любой задаче НЛП. Также очень полезны вложения FastText и Glove.

Языковые модели

ELMO - Элмо использует двунаправленный LSTM. Предварительно подготовленные гири Элмо можно скачать здесь. Для использования встраивания Elmo можно использовать библиотеку AllenNLP, Tensorflow hub или библиотеку Flair.

ULMFiT - В статье ULMFiT Джереми Ховарда и Себастьяна Рудера описываются методы точной настройки языковой модели для конкретных задач с использованием LSTM. О том, как пользоваться ULMFiT в fastai, можно узнать здесь.

Эти две статьи были написаны до BERT, и в них не использовались архитектуры на основе трансформаторов.

БЕРТ - Оригинал статьи находится здесь, также есть очень хороший учебник с иллюстрациями Джея Аламмара здесь. Предварительно натренированный вес можно скачать с официального репозитория Github здесь. BERT также доступен как модуль концентратора Tensorflow. Существуют различные другие библиотеки, которые также упрощают использование предварительно обученного встраивания для их точной настройки, они упомянуты в этом посте позже. Ниже приведены некоторые из основных документов, вышедших после всех в 2019 году. Google даже начал использовать BERT в производстве для улучшения результатов поиска.

Transformer-XL - Transformer-XL, выпущенный в январе 2019 года, улучшает преобразователь за счет использования архитектуры, которая позволяет обучаться вне контекста фиксированной длины.

Evolved Transformer - Примерно в то же время, что и Transformer-XL, был выпущен Evolved Transformer, который представляет собой архитектуру Transformer, разработанную путем проведения эволюционного поиска нейронной архитектуры (NAS).

GPT-2 - после BERT, я думаю, что другим проектом, который получил наибольшее освещение в новостях, был GPT-2 от OpenAI из-за его способности генерировать почти человеческие предложения, а также из-за первоначального решения OpenAI не выпустили самую крупную модель из-за опасений относительно модели, используемой для создания фейковых новостей и т. д. Они выпустили самую большую модель почти через 10 месяцев. Вы можете поиграть с моделью на https://talktotransformer.com/ и https://transformer.huggingface.co/ на Huggingface. Думаю, если бы это другое имя даже персонаж Улицы Сезам, он был бы еще популярнее :)

ERNIE и ERNIE 2 - на данный момент ERNIE 2.0 находится на первой позиции в таблице лидеров GLUE. Репо на Github.

XLNET

RoBERTa - Эта статья для FAIR измеряет влияние различных гиперпараметров BERT и показывает, что исходные модели BERT были недостаточно обучены, и при большем обучении / настройке они могут превзойти первоначальные результаты. В настоящее время результаты RoBERTa находятся на 8-м месте в таблице лидеров GLUE!

Salesforce CTRL - модель CTRL имеет 1,6 миллиарда параметров и предоставляет способы управления генерацией искусственного текста.

ALBERT - В этой статье описываются методы уменьшения параметров для уменьшения уменьшения памяти и увеличения скорости обучения моделей BERT. ALBERT repo имеет предварительно обученные веса. Базовая модель ALBERT имеет 12 миллионов параметров, тогда как базовая модель BERT имеет 110 миллионов параметров!

"Большая птица"

Контрольные показатели

Одним из способов оценки этих языковых моделей является Glue Benchmark, который состоит из оценки модели различных задач НЛП, таких как классификация, контроль качества и т. Д. На момент выпуска BERT был на вершине таблицы, но всего за 1 год. он переместился на 19 позицию (по состоянию на 2 января 2020 г.).

Также появился тест SuperGlue, который состоит из более сложных задач понимания языка.

Для оценки вопросно-ответной системы обычно используется система SQuAD (S tanford Qu estion A nswering D ataset), BERT и более поздние модели на базе трансформаторов также находятся на вершине:

На https://leaderboard.allenai.org/ есть различные другие таблицы лидеров, такие как ORB, OpenBookQA и т. Д., И в большинстве таблиц лидеров есть ссылки на BERT!

Другие проекты, связанные с BERT

DistilBERT - Меньший BERT, использующий дистилляцию модели из Huggingface, запись в блоге здесь.

Megatron-LM - Проект для эффективного обучения очень больших языковых моделей от Nvidia.

BioBERT - модель на основе BERT, обученная в биомедицинской области в DMIS lab.

Немецкий язык BERT

CamemBERT - языковая модель для французского языка на основе архитектуры RoBERTa от Facebook.

Аппаратное ускорение BERT - Google использует TPU для более быстрого обучения больших моделей BERT, другие компании, такие как Graphcore (код) и Habana, также показали, как их собственные SoC могут ускорить вывод и обучение BERT.

VideoBERT - VideoBERT - это пример кросс-модального (или мультимодального) глубокого обучения, при котором модель учится на видео самостоятельно.

ViLBERT - модель Vision-and-Language BERT для обучения совместной визуальной и языковой репрезентации.

Библиотеки НЛП

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

Spacy - Spacy - популярная и быстрая библиотека для различных задач НЛП, таких как токенизация, POS (часть речи) и т. Д. Она также поставляется с предварительно обученными моделями для распознавания именованных сущностей (NER) и т. Д. Недавно добавлена ​​поддержка языковых моделей на основе преобразователей, таких как BERT, через spacy-transformers, эта библиотека использует библиотеку преобразователей Huggingface.

HuggingFace Transformers - это была одна из первых библиотек, предоставляющих Pytorch-реализацию BERT, и первоначально она называлась PyTorch-pretrained-bert. Позже они добавили больше моделей, таких как GPT-2, XLNET и т. Д., И теперь библиотека называется просто трансформеры. Менее чем за год он стал одной из самых популярных библиотек НЛП и позволяет очень легко использовать BERT и другие модели. Используя другую их библиотеку (https://github.com/huggingface/swift-coreml-transformers), вы можете использовать BERT, GPT-2 и т. Д. На iOS!

AllenNLP - это библиотека НЛП от Института искусственного интеллекта Аллена, построенная на основе PyTorch.

Flair - Также библиотека NLP, которая поставляется с моделями для NER, POS и т. Д., Также поддерживает встраивание BERT, ELMO, XLNET и т. Д.

GluonNLP - это инструментарий NLP поверх Apache MXNet и был одной из первых библиотек, включающих предварительно обученные встраивания BERT. В нем много полезных примеров / туториалов.

Надеюсь, в 2020 году будет еще больше инноваций и прорывов в области НЛП. Чтобы узнать больше о НЛП и ИИ, вы можете подписаться на меня в твиттере - https://twitter.com/MSuryavansh