Обучайте BERT с помощью команд интерфейса командной строки

Я загрузил модель HuggingFace BERT из репозитория трансформаторов, найденного здесь, и хотел бы обучить модель на пользовательских NER подписывает ярлыки с помощью сценария run_ner.py, поскольку на него есть ссылка здесь в разделе Распознавание именованных объектов .

Я определяю модель (bert-base-german-cased), data_dir (Data / offer_data.txt) и метки (Data / labels.txt) как значения по умолчанию в коде.

Теперь я использую этот ввод для командной строки:

python run_ner.py --output_dir="Models" --num_train_epochs=3 --logging_steps=100 --do_train --do_eval --do_predict

Но все, что он говорит мне:

Some weights of the model checkpoint at bert-base-german-cased were not used when initializing BertForTokenClassification: ['cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.transform.LayerNorm.w
eight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.decoder.weight', 'cls.seq_relationship.weight', 'cls.seq_relationship.bias']
- This IS expected if you are initializing BertForTokenClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPretraining model).
- This IS NOT expected if you are initializing BertForTokenClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
Some weights of BertForTokenClassification were not initialized from the model checkpoint at bert-base-german-cased and are newly initialized: ['classifier.weight', 'classifier.bias']
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

После этого он просто останавливается, не заканчивая скрипт, а просто ожидая.

Кто-нибудь знает, в чем может быть проблема? Мне не хватает параметра?

Мой файл Offer_data.txt в формате CoNLL выглядит так (небольшой фрагмент):

Strafverfahren O
gegen O
; O
wegen O
Diebstahls O
hat O
das O
Amtsgericht Ort
Leipzig Ort
- O
Strafrichter O

Вот как я определил свои метки в файле labels.txt:

"Date", "Delikt", "Strafe_Tatbestand", "Schadensbetrag", "Geständnis_ja", "Vorstrafe_ja", "Vorstrafe_nein", "Ort",
"Strafe_Gesamtfreiheitsstrafe_Dauer", "Strafe_Gesamtsatz_Dauer", "Strafe_Gesamtsatz_Betrag"

person Stimmot    schedule 02.11.2020    source источник


Ответы (1)


Обнаружил проблему. Это было связано с тем, что драйвер CUDA несовместим с установленной версией pytorch.

Для тех, кто с графическим процессором Nvidia сталкивается с той же проблемой: при переходе к панели управления Nvidia - ›Справка -› Информация о системе - ›Компоненты, есть параметр NVCUDA.DLL с номером драйвера в столбце имен. Выбор соответствующей версии CUDA в построителе установки на pytorch.org должен помочь.

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

person Stimmot    schedule 03.11.2020