TL; DR = ваши предыдущие модели НЛП неэффективны и устарели. Хорошего дня.

[* Обновлено 6 ноября с помощью Albert 2.0 и официального выпуска исходного кода]

Google Research и Toyota Technological Institute совместно выпустили новую статью, которая знакомит мир с предположительно преемником BERT, гораздо меньшим и более умным Lite Bert по имени ALBERT. (АЛЬБЕРТ: Lite BERT для самостоятельного изучения языковых представлений).

Результаты ALBERT сами по себе впечатляют с точки зрения конечных результатов (установка нового уровня техники для GLUE, RACE, SQuAD), но… настоящим сюрпризом является резкое уменьшение размера модели / параметров.

Сочетание двух ключевых изменений архитектуры и изменения обучения позволяет ALBERT как превзойти производительность, так и значительно уменьшить размер модели. Рассмотрим сравнение размеров ниже - BERT x-large имеет 1,27 миллиарда параметров, а ALBERT x-large - 59 миллионов параметров!

В этой статье есть что раскрыть, и я попытаюсь вникнуть во все основные моменты ниже.

Для НЛП: всегда ли большие модели лучше? Нет…

Давайте начнем с важного момента для НЛП в целом - в прошлом году в НЛП был достигнут прогресс за счет увеличения масштабов моделей трансформаторного типа, так что каждая более крупная модель постепенно повышала точность конечной задачи за счет простого построения все более крупной предварительно обученной модели. В исходной статье BERT они показали, что большие скрытые размеры, больше скрытых слоев и больше внимания привели к прогрессивным улучшениям и протестировали до 1024 скрытых размеров.

Самая крупная модель НЛП на сегодняшний день - это недавно выпущенная NVIDIA Megatron, огромная модель с 8 миллиардами параметров, которая более чем в 24 раза превышает размер BERT и почти в 6 раз превышает GPT-2 OpenAI. Мегатрон обучался в течение 9 дней на установке из 512 графических процессоров.

Однако, возможно, есть переломный момент или точка насыщения, когда больше не всегда означает лучше, и авторы ALBERT показывают, что их самая большая модель BERT X-Large со скрытым размером 2048 и 4X параметрами исходного BERT large на самом деле подходит. снижение производительности почти на 20%.

Это похоже на эффект увеличения глубины слоя для компьютерного зрения. Увеличение глубины слоя для компьютерного зрения до некоторой степени улучшается, а затем идет вниз. Пример - ResNet-1000 не превосходит ResNet152 даже при том, что у него в 6,5 раза больше слоев. Другими словами, существует точка насыщения, когда сложность обучения подавляет и снижает любые выгоды от дополнительной мощности сети.

Таким образом, помня об этом, создатели ALBERT приступили к усовершенствованию архитектуры и методов обучения, чтобы добиться лучших результатов, вместо того, чтобы просто создавать «более крупный BERT».

Что такое АЛЬБЕРТ?

Основная архитектура ALBERT похожа на BERT в том, что она использует архитектуру кодировщика трансформатора вместе с активацией GELU. В статье они также используют тот же размер словаря 30 КБ, что и в исходном BERT. (V = 30 000). Однако АЛЬБЕРТ вносит три существенных и важных изменения:

Улучшения архитектуры для более эффективного использования параметров:

1 - Факторизованная параметризация встраивания

Авторы ALBERTS отмечают, что для BERT, XLNet и RoBERTa размер вложения WordPiece (E) напрямую привязан к H, размеру скрытого слоя.

Однако авторы ALBERT отмечают, что вложения WordPiece предназначены для изучения контекстных независимых представлений. Встраивания скрытых слоев предназначены для изучения контекстно-зависимых зависимых представлений.

Возможности BERT во многом зависят от изучения контекстно-зависимых представлений через скрытые слои. Если вы свяжете H и E, и с NLP, требующим большого V (словаря), тогда ваша матрица вложения E, которая на самом деле является V * E, должна масштабироваться с H (скрытые слои) ... и, таким образом, вы получите модели, которые могут иметь миллиарды параметров, но большинство из них редко обновляются во время обучения.

Поэтому связывание двух элементов, которые работают с разными целями, означает неэффективные параметры.

Таким образом, развязывание этих двух параметров приводит к более эффективному использованию параметров, и, следовательно, H (зависит от контекста) всегда должно быть больше, чем E (независимо от контекста).

Для этого АЛЬБЕРТ разбивает параметры внедрения на две меньшие матрицы. Таким образом, вместо проецирования одного горячего вектора непосредственно в H, один горячий вектор проецируется в матрицу меньшего размера E… .и более низкого измерения, а затем проецирует E в скрытое пространство H.

Таким образом, параметры уменьшаются от Big O из (V * H) до меньшего Big O из (V * E + E * H).

2 - Совместное использование параметров между слоями

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

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

Изменения в обучении - СОП или прогнозирование порядка вынесения приговоров:

ALBERT действительно использует MLM (моделирование маскированного языка), как и BERT, используя маскировку до 3 слов (максимум 3 n-граммов).

Однако там, где BERT также использовал NSP, или предсказание следующего предложения, в дополнение к MLM… ALBERT разработал собственный метод обучения под названием SOP.

Почему бы не использовать NSP? Важно отметить, что авторы RoBERTa показали, что потеря предсказания следующего предложения (NSP), использованная в исходном BERT, была не очень эффективна в качестве обучающего механизма, и ее просто не использовали. Изобретатели ALBERT предположили, почему NSP не так эффективен, однако они использовали это для разработки SOP - Sentence Order Prediction.

Автор АЛЬБЕРТА предположил, что NSP (предсказание следующего предложения) объединяет предсказание темы с предсказанием согласованности. Для справки, NSP принимает два предложения: положительное совпадение - это второе предложение из того же документа, отрицательное совпадение - это второе предложение из другого документа.

В отличие от этого, авторы ALBERT чувствовали, что согласованность между предложениями была действительно задачей / потерей, на которой нужно сосредоточиться, а не прогнозированием темы, и, таким образом, СОП выполняется следующим образом:

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

Это позволяет избежать проблем с предсказанием темы и помогает АЛЬБЕРТУ учиться более тонко, рассуждать или связывать предложения.

Результаты, конечно, говорят сами за себя.

Что если мы увеличим масштаб ALBERT?

В соответствии с ранее упомянутым примечанием о том, как масштабирование приводит к уменьшению отдачи, авторы ALBERT провели собственное тестирование масштабирования ALBERT и нашли пиковые точки как для глубины, так и для ширины слоя (скрытый размер). Таким образом, авторы рекомендуют 12-уровневые модели для совместного использования перекрестных параметров в стиле ALBERT.

АЛЬБЕРТ обнаружил, что устранение отсева, добавление данных повышает производительность:

В соответствии с тем, что обнаружило компьютерное зрение (см. Мою статью о добавлении данных путем расширения и предотвращении отсева), авторы ALBERT сообщают об улучшении производительности за счет предотвращения отсева и, конечно же, обучения с большим количеством данных.

Резюме:

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

Авторы отмечают, что будущая работа ALBERT заключается в повышении вычислительной эффективности, возможно, за счет рассеянного или блокирующего внимания. Таким образом, мы надеемся, что в будущем от АЛЬБЕРТА ожидается еще больше!

  • Обновление - это еще не все, так как Google выпустил как официальный источник, так и предоставил v2 Albert как часть выпуска исходного кода!

Вот улучшения от v1 до v2 - в зависимости от модели это улучшение в среднем на 1–3%:

Github и официальный / неофициальный источник ALBERT?

Благодаря обратной связи от Дамиана Хименеса, я рад отметить, что Google выпустил официальный исходный код для ALBERT, v2:



Неофициальная версия PyTorch: Благодаря совету Тайлера Калбаха, рад отметить, что теперь доступна неофициальная версия ALBERT на PyTorch!



Неофициальная версия TensorFlow: благодаря совету от Энгберта Тинкампа в комментариях на GitHub была размещена неофициальная версия ALBERT TensorFlow:



Ссылка на статью: ALBERT: Lite BERT для самостоятельного изучения языковых представлений