Какую модель (GPT2, BERT, XLNet и т. Д.) Вы бы использовали для задачи классификации текста? Почему?

Я пытаюсь обучить модель задаче классификации предложений. Входными данными является предложение (вектор целых чисел), а выходными данными - метка (0 или 1). Я видел несколько статей об использовании Bert и GPT2 для задач классификации текста. Однако я не уверен, с какой из них выбрать для начала. Какие из этих последних моделей НЛП, таких как оригинальная модель Transformer, Bert, GPT2, XLNet, вы бы использовали для начала? И почему? Я бы предпочел реализовать в Tensorflow, но я тоже могу пойти на PyTorch. Спасибо!


person khemedi    schedule 08.09.2019    source источник


Ответы (4)


Я согласен с ответом Макса, но если ограничением является использование современной большой предварительно обученной модели, есть действительно простой способ сделать это. Библиотека от HuggingFace называется pytorch-transformers. Независимо от того, выбрали ли вы BERT, XLNet или что-то еще, их легко заменить. Здесь есть подробное руководство по используя эту библиотеку для классификации текста.

РЕДАКТИРОВАТЬ: я только что наткнулся на это репо, pytorch-transformers-classification (лицензия Apache 2.0 ), который позволяет делать именно то, что вы хотите.

person Sam H.    schedule 09.09.2019

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

Когда вы будете работать над проблемой, вы, вероятно, протестируете все вышеперечисленные модели и сравните их. Какой из них выбрать первым? Эндрю Нг в статье «Машинное обучение» предлагает начать с простой модели, чтобы вы могли быстро повторить и протестировать свою идею, конвейер предварительной обработки данных и т. д.

Не пытайтесь спроектировать и построить идеальную систему. Вместо этого быстро создайте и обучите базовую систему - возможно, всего за несколько дней.

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

Обратите внимание, что современные модели НЛП содержат большое количество параметров, и их сложно обучить с нуля без большого набора данных. Вот почему вы можете захотеть использовать переносное обучение: вы можете загрузить предварительно обученную модель и использовать ее в качестве основы и точно настроить ее для вашего набора данных для конкретной задачи, чтобы добиться большей производительности и сократить время обучения.

person Max    schedule 08.09.2019

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

Однако, поделившись своим опытом, XLNet пока что с большим отрывом превосходит все остальные модели. Следовательно, если обучение не является целью, я бы просто начал с XLNET, а затем попробовал еще несколько и закончил. Это просто экономит время на исследованиях.

Репо ниже отлично подходит, чтобы все это сделать быстро. Престижность им.

https://github.com/microsoft/nlp-recipes

Он использует трансформаторы с обтягивающим лицом и делает их очень простыми. ????

person Narahari B M    schedule 24.02.2020

Я использовал XLNet, BERT и GPT2 для задач обобщения (только на английском языке). Исходя из моего опыта, GPT2 лучше всех работает с короткими заметками размером с абзац, тогда как BERT лучше работает с более длинными текстами (до 2-3 страниц). Вы можете использовать XLNet в качестве эталона.

person m.borhan    schedule 08.07.2021