«Дымящееся» кунг-фу в моделях классификации текстов

искусственный интеллект

Эта статья была впервые опубликована на:Уокер ИИ

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

BERT-базовая модель состоит из 12 слоев трансформаторов, и модель имеет около 100 миллионов параметров, задействованных в работе, в то время как более совершенный BERT-большой состоит из 24 слоев преобразователей, а количество параметров достигает даже 300 миллионов. Производительность и видеопамять предъявляют более высокие требования, особенно в корпоративных целевых приложениях, которые требуют более продвинутых графических процессоров для завершения обучения модели. То же самое и в процессе логического вывода.В реальной ситуации развертывания в онлайне ответ на текстовый анализ уровня мс, а аренда сервера с высокой вычислительной мощностью стоит очень дорого, так есть ли способ ловить рыбу и медведь? об уменьшении сложности модели без ущерба для точности классификации?

Ответ положительный.

1. Используйте BERT как услугу (уменьшите количество обучающих вычислений).

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

Этот метод пропускает процесс обучения, что создает проблемы, поскольку параметры предварительного обучения BERT поступают из крупномасштабного корпуса и представляют собой модель общего назначения, в то время как то, что мы делаем, часто является классификацией текста, специфичного для предметной области, например медицинского текста. Поскольку мы не настроили модель, модель не может изучить некоторые специальные выражения в определенных полях. В настоящее время результаты модели, использующей BERT в качестве службы, будут иметь большое отклонение. Для этой проблемы необходимо добавить некоторые решения. некоторые аналогичные полные соединения после BERT., CNN, LSTM и других базовых моделей, эти базовые модели обучаются изучению специального представления в текущем наборе данных, но эти модели являются поверхностными моделями, и эффект хуже, чем результат тонкой настройки Берт.

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

2. Удалите BERT (уменьшите вычисление логического вывода)

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

Как упоминалось ранее, базовая модель BERT состоит из 12 слоев Transformer, всего 100 миллионов параметров, но не все эти параметры необходимы для текущей задачи, особенно для простой основы классификации текста. добиться хороших результатов, имея в задаче всего 30 миллионов параметров.Под руководством этой идеи было предложено множество методов дистилляции BERT.

Идея дистилляции была предложена Хинтоном в NIPS 2014. Основная идея состоит в том, чтобы обучить сложную сеть учителей (Teacher) из большого количества прогнозов, а затем использовать сеть учителей для обучения сети учеников (Student). Это важная причина, по которой дистилляция отличается от таких методов, как обрезка. Также в дистилляцииСеть учащихся изучает способность сети учителей к обобщению, а не способность сопоставлять данные.. Можно понять, что способность учителя делать вопросы для студентов, чтобы узнать, а не узнать стандартный ответ на каждый вопрос.

Взяв в качестве примера классификацию тональности текста, чтобы сеть учащихся могла изучить знания сети учителей, сеть учителей не может сообщать учащимся категорию тональности (0 или 1) текущего предложения, но должна сообщать учащимся классификацию. вероятность (например, 0,73), чтобы учащиеся могли узнать о сети учителей. На практике модель учителя часто имеет хороший классификационный эффект, и большинство полученных распределений вероятностей находятся в районе 0 или 1. В настоящее время разница между вероятностью и категорией невелика. Чтобы лучше извлечь модель учителя. , Хинтон добавил параметр сглаживания T в формулу для расчета softmax, конкретная формула выглядит следующим образом:

平滑softmax

Цель дистилляции – получить сеть ученика, количество параметров которой меньше, чем у сети учителя, но при этом эффект сети ученика должен быть максимально приближен к эффекту сети учителя. Для достижения этой цели необходимо разработать специальную функцию потерь. Эта функция потерь должна не только измерять разницу между выходным значением вероятности сети учителя и сети ученика, но также измерять разницу между выводом метки сетью ученика и истинной меткой. Разные исследователи используют разные функции потерь, но их общий вид выглядит следующим образом:

损失函数通式

Среди них CE представляет собой потерю перекрестной энтропии, которую также можно заменить другими формулами, такими как MSE, расхождение KL и т. Д., Для измерения разницы, y - реальная метка данных, q - результат предыдущей формулы и представляет собой выход сети учителя, а p представляет выход сети ученика.

2.1 Преобразование BERT в BiLSTM

Distilled BiLSTMМетод использует большой Берт в качестве учительской сети и двунаправленный LSTM в качестве студенческой сети.Во-первых, задача точно настраивается на Берт-большой.После обучения учительской сети исходный набор данных и расширенный набор данных используются для обучения Студенческая сеть. Дизайн потерь такой же, как и общая идея выше, но детали разные. В этом исследовании используется перекрестная энтропия жесткой метки между учительской сетью и студенческой сетью + MSE между логитами.

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

  • Используйте [маску] для случайной замены исходного слова

  • Замена исходного слова частью речи на основе тега POS

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

Результаты эксперимента следующие:

Distilled BiLSTM实验结果

Дистиллированная модель обеспечивает сравнимую с исходной моделью производительность в простых задачах классификации, но не так хороша в сложных задачах. По сравнению с исходной моделью учителя количество параметров уменьшено в 100 раз, а скорость увеличена в 15 раз.

2.2 Перегонка BERT в трансформатор

При перегонке bert в LSTM эффект не очевиден, в основном по следующим причинам:

  • Параметры LSTM не могут точно отображать семантические особенности в сложных задачах.

  • Выделение только тонко настроенной модели не может полностью изучить всю способность модели учителя к обобщению.

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

В ответ на три вышеупомянутых момента многие исследователи улучшили модель дистилляции, и выбор более поздней модели студента в основном является моделью Трансформера, такой какBERT-PKDПерегонка среднего слоя Берта,DIstillBERTПерегонка начинается на предтренировочном этапе Берта,TinyBERTВ частности, используется матрица внимания среднего слоя модели учителя, и достигаются хорошие результаты.

отTinyBERTНапример

tinyBert分层蒸馏图

Представление здесь представляет собой детали дистилляции одного из слоев.Матрица скрытого состояния и внимания каждого преобразователя сети учителя изучаются одновременно, а Attn-loss и Hidn-loss рассчитываются с соответствующими слоями сети. студенческая сеть. Это сочетается с потерей метки и потерей вектора слова в качестве общей окончательной потери.

tinyBert实验结果

Существует значительное улучшение эффекта перегонки bert в LSTM в 2.1.

3. Адаптивный механизм выхода (уменьшить количество вычислений вывода)

При использовании многослойного преобразователя Берта мы обнаружили, что результаты каждого слоя можно предсказать.Точность нижней модели низкая, а эффект высокого уровня лучше, поскольку верхний преобразователь может извлекать больше семантической информации. Однако для некоторых простых задач классификации коротких текстов с очевидными признаками нет необходимости использовать результаты последнего слоя при выводе, а результаты среднего слоя можно использовать для хорошего предсказания. Это отличается от дистилляции, упомянутой в главе 2. Дистилляция — это передача знаний учителя модели ученика, в то время как механизм раннего выхода — это адаптивный выбор для завершения рассуждений на определенном среднем уровне. процесс рассуждения, при этом скорость вывода значительно увеличивается. В то же время адаптивный доверительный порог может динамически корректироваться в соответствии с бизнес-сценарием.

FastBert в ACl2020 впервые предложил этот механизм, который является расширением динамического вывода о том, что каждый образец в поле CV проходит по разным путям. После каждого слоя Transformer автор добавляет полносвязный классификатор, который на рисунке обозначен как Branch, а исходный Bert является основой. Тренируйте тонкую настройку позвоночника во время тренировки. После обучения запускается обучающая ветвь самоперегонки с использованием полностью подключенного классификатора за последним слоем позвоночника в качестве учителя для обучения студенческой ветви. Эта дистилляция является методом самодистилляции. Потери предназначены для измерения расхождения КЛ ствола и ветвей.

fastBert模型图

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

自适应不确定性指标计算公式

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

fastBert结果展示图

По утверждению автора, при скорости=0,1 можно получить улучшение скорости в 1-10 раз, а количество вычислений уменьшается вдвое. Этот метод показал хорошие результаты при классификации нескольких наборов данных. Однако этот метод можно использовать только для задач классификации, и его необходимо преобразовать в зависимости от бизнеса.

4. Поэкспериментируйте с TextBrowser

TextBrewerоснован на PyTorch для НЛПдистилляция знанийНабор инструментов для разработки задач.

Для задачи бинарной классификации пар предложений, выданной Исследовательским центром интеллектуальных вычислений Шэньчжэньской высшей школы Харбинского технологического института.LCQMC, цель задачи состоит в том, чтобы судить, одинакова ли семантика двух предложений.

Сеть учителейRoBERTa-wwm, результаты сравнения следующие:

model LCQMC (Acc) Layers Hidden_size Feed-forward size Params Relative size
RoBERTa-wwm 89.4 12 768 3072 108M 100%
Bert 86.68 12 768 3072 108M 100%
T3 89.0 (30) 3 768 3072 44M 41%
T3-small 88.1 (30) 3 384 1536 17M 16%
T4-tiny 88.4 (30) 4 312 1200 14M 13%

отRoBERTa-wwmКак учительская сеть, она достигает лучших результатов, чем Bert-base.

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

[1] Distilling the Knowledge in a Neural Network: АР Вест V.org/ABS/1503.02…

[2] Distilling Task-Specific Knowledge from BERT into Simple Neural Networks: АР Вест V.org/ABS/1903.12…

[3] Patient Knowledge Distillation for BERT Model Compression: АР Вест V.org/ABS/1908.09…

[4] DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter: АР Вест V.org/ABS/1910.01…

[5] TinyBERT: Distilling BERT for Natural Language Understanding: АР Вест V.org/ABS/1909.10…

[6] FastBERT: a Self-distilling BERT with Adaptive Inference Time: АР Вест V.org/ABS/2004.02…,

[7] TextBrewer: GitHub.com/airaria/TeX…


PS: Для получения дополнительной технической галантереи, пожалуйста, обратите внимание на [Публичный аккаунт | xingzhe_ai] и обсудите с ходоками!