Использование предварительно обученных вложений BERT в качестве входных данных для моделей textcat в Spacy 3.0

#python #nlp #spacy #spacy-3

Вопрос:

Я пытаюсь перейти на платформу обучающих конфигурационных файлов Spacy 3.0, и у меня возникают проблемы с настройкой параметров в соответствии с тем, что я хотел бы сделать. Проще говоря, я хотел бы использовать одну из готовых моделей textcat (скажем, набор слов), но передать встраивания слов, созданные предварительно обученным трансформатором (например, в базовом корпусе bert), без какой-либо тонкой настройки. До сих пор я работал над шаблоном конфигурации texcat, представленным на веб-сайте Spacy.

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

Ответ №1:

Попробуйте выполнить следующую конфигурацию. -G переключается на a transformer и -o accuracy переключается на модель ансамбля textcat:

 spacy init config -p textcat -G -o accuracy config.cfg
 

См.: https://spacy.io/api/architectures#TextCatEnsemble

Комментарии:

1. Спасибо за команду! Я запускаю его без графического процессора, и, похоже, для тренировки требуется довольно много времени. Это было бы понятно, если бы он обучал трансформатор, но я думал, что он просто использует предварительно подготовленную модель, чтобы дать мне встраивания слов для передачи в модель textcat. Я неправильно понимаю шаги в этом конвейере?

2. Обучение трансформаторам без графического процессора будет невыносимо медленным и на самом деле не рекомендуется. Если вам просто нужны статические встраивания слов, оставьте это, -G и он будет использовать встраивания слов из предварительно подготовленного конвейера, если таковой имеется, например, для -l en него будут использоваться встраивания слов из en_core_web_lg . Или вы можете предоставить свои собственные в модели, созданной с spacy init vectors помощью .

3. Еще раз спасибо за всю помощь. У меня есть последний вопрос. Если бы я пошел по пути статических вложений слов, я мог бы использовать вложения слов из en_core_web_trf . Но означает ли это также, что мне нужно добавить (в данном случае Роберту) прослушиватель трансформатора в компонент textcat? В настоящее время у него есть прослушиватель tok2vec из-за природы модели ансамбля Spacy’s out of the box textcat.

4. Встраивания трансформаторов не являются статическими, поэтому это не замена 1 к 1, как это.