#python #machine-learning #nlp #bert-language-model #huggingface-transformers
#python #машинное обучение #nlp #bert-language-model #huggingface-трансформеры
Вопрос:
Я загрузил модель HuggingFace BERT из репозитория transformer, найденного здесь, и хотел бы обучить модель пользовательским меткам NER с помощью run_ner.py скрипт, как на него ссылаются здесь, в разделе «Распознавание именованных объектов».
Я определяю model («bert-base-german-cased»), data_dir («Data/sentence_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.
После этого он просто останавливается, не завершая сценарий, а просто ожидая.
Кто-нибудь знает, в чем здесь может быть проблема? Я пропустил параметр?
Мой sentence_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"
Ответ №1:
Обнаружил проблему. Это было связано с несовместимостью драйвера CUDA с установленной версией pytorch.
Для тех, у кого графический процессор Nvidia сталкивается с той же проблемой: перейдите в панель управления Nvidia -> Справка -> Системная информация -> Компоненты, там есть параметр под названием «NVCUDA.DLL » с номером водителя в столбце имен. Выбор соответствующей версии CUDA в конструкторе установки на pytorch.org должно сработать.
Кроме того, в репозитории transformers есть хороший Readme, объясняющий все шаги по обучению модели BERT с помощью команд CLI здесь.