Предварительное обучение языковой модели на небольшом пользовательском корпусе

Мне было любопытно, можно ли использовать переносное обучение при генерации текста и повторно обучать / предварительно обучать его на конкретном виде текста.

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

Рассматривая это как конвейер, я бы описал это как:

  1. Использование предварительно обученного токенизатора BERT.
  2. Получение новых токенов из моего нового текста и добавление их к существующей предварительно обученной языковой модели (например, vanilla BERT).
  3. Повторное обучение предварительно обученной модели BERT на настраиваемом корпусе с комбинированным токенизатором.
  4. Создание текста, напоминающего текст в небольшом настраиваемом корпусе.

Звучит знакомо? Возможно ли с обнимающим лицом?


comment
См. здесь, чтобы узнать, как это делает fastai. Игнорировать что-либо с _clas, это для бита классификации. И ваш вариант использования - это именно то, для чего был разработан fastai.   -  person sachinruk    schedule 25.04.2020
comment
Можете проверить ссылку? Это кажется сломанным, я был бы очень признателен, если бы вы могли поделиться любыми другими ссылками.   -  person mitra mirshafiee    schedule 24.04.2021


Ответы (1)


Я не слышал о трубопроводе, который вы только что упомянули. Чтобы создать LM для вашего варианта использования, у вас есть два основных варианта:

  1. Дальнейшее обучение модели BERT (-base / -large) на собственном корпусе. Этот процесс называется адаптацией к домену, как также описано в этой недавней статье. Это позволит адаптировать изученные параметры модели BERT к вашей конкретной области (био / медицинский текст). Тем не менее, для этой настройки вам понадобится довольно большой корпус, чтобы помочь модели BERT лучше обновлять свои параметры.

  2. Использование предварительно обученной языковой модели, которая предварительно обучена на большом количестве предметно-ориентированного текста либо с нуля, либо точно настроена на ванильной модели BERT. Как вы, возможно, знаете, стандартная модель BERT, выпущенная Google, была обучена на тексте Википедии. После ванильного BERT исследователи попытались обучить архитектуру BERT в других доменах, помимо Википедии. Возможно, вы сможете использовать эти предварительно обученные модели, которые имеют глубокое понимание предметно-ориентированного языка. В вашем случае есть несколько моделей, например: BioBERT, BlueBERT и SciBERT.

Возможно ли с обнимающим лицом?

Я не уверен, что разработчики huggingface разработали надежный подход для предварительного обучения модели BERT на пользовательских корпусах, поскольку их код все еще находится в разработке, но если вы заинтересованы в выполнении этого шага, я предлагаю использовать код исследования Google, который был написан на Tensorflow и является полностью надежным (выпущен авторами BERT). В их readme и в разделе Pre-training with BERT был объявлен точный процесс.

person inverted_index    schedule 25.04.2020