При использовании библиотеки преобразователей Huggingface я столкнулся с ошибкой на последнем этапе тонкой настройки языковой модели BERT для задачи моделирования языка в маске. Я хочу точно настроить его для корпуса финансов в предметной области, на котором эта модель еще не была обучена. Однако при вызове модели для обучения я получаю следующее сообщение об ошибке: KeyError: 'input_ids'. Ниже приведены шаги и код, который я предпринял. Любая информация приветствуется!
Сначала я создал объект набора данных из кадра данных pandas, который, в свою очередь, был создан из файла csv с одним столбцом из многих строк текста:unlabelled_dataset = Dataset.from_pandas(unlabelled)
Во-вторых, я токенизировал набор данных с помощью следующего кода:
tokenizerBERT = BertTokenizerFast.from_pretrained('bert-base-uncased') #BERT model tokenization & check
tokenizerBERT(unlabelled_dataset['paragraphs'], padding=True, truncation=True)
tokenizerBERT.save_pretrained('tokenizers/pytorch/labelled/BERT/')
В-третьих, я создал сопоставление данных в соответствии с инструкциями:
data_collator_BERT = DataCollatorForLanguageModeling(tokenizer=tokenizerBERT, mlm=True, mlm_probability=0.15)
Далее я выбираю модель from_pretrained, чтобы воспользоваться преимуществами трансферного обучения:
model_BERT = BertForMaskedLM.from_pretrained("bert-base-uncased")
Далее я передал аргументы обучения тренеру-трансформеру и инициализировал:
training_args_BERT = TrainingArguments(
output_dir="./BERT",
num_train_epochs=10,
evaluation_strategy='steps',
warmup_steps=10000,
weight_decay=0.01,
per_gpu_train_batch_size=64,
)
trainer_BERT = Trainer(
model=model_BERT,
args=training_args_BERT,
data_collator=data_collator_BERT,
train_dataset=unlabelled_dataset,
)
Последнее я вызываю модель для обучения и получаю ошибку KeyError: 'input_ids'
trainer_BERT.train()
Есть какие-нибудь идеи о том, как отладить этот подход к обучению модели?
Ниже представлено точное полученное сообщение об ошибке:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
----> 1 trainer_BERT.train()
2 trainer.save_model("./models/royalBERT")
~/anaconda3/lib/python3.7/site-packages/transformers/trainer.py in train(self, model_path, trial)
755 self.control = self.callback_handler.on_epoch_begin(self.args, self.state, self.control)
756
--> 757 for step, inputs in enumerate(epoch_iterator):
758
759 # Skip past any already trained steps if resuming training
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __next__(self)
361
362 def __next__(self):
--> 363 data = self._next_data()
364 self._num_yielded += 1
365 if self._dataset_kind == _DatasetKind.Iterable and \
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _next_data(self)
401 def _next_data(self):
402 index = self._next_index() # may raise StopIteration
--> 403 data = self._dataset_fetcher.fetch(index) # may raise StopIteration
404 if self._pin_memory:
405 data = _utils.pin_memory.pin_memory(data)
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py in fetch(self, possibly_batched_index)
45 else:
46 data = self.dataset[possibly_batched_index]
---> 47 return self.collate_fn(data)
~/anaconda3/lib/python3.7/site-packages/transformers/data/data_collator.py in __call__(self, examples)
193 ) -> Dict[str, torch.Tensor]:
194 if isinstance(examples[0], (dict, BatchEncoding)):
--> 195 examples = [e["input_ids"] for e in examples]
196 batch = self._tensorize_batch(examples)
197 if self.mlm:
~/anaconda3/lib/python3.7/site-packages/transformers/data/data_collator.py in (.0)
193 ) -> Dict[str, torch.Tensor]:
194 if isinstance(examples[0], (dict, BatchEncoding)):
--> 195 examples = [e["input_ids"] for e in examples]
196 batch = self._tensorize_batch(examples)
197 if self.mlm:
KeyError: 'input_ids'
Подробнее здесь: https://stackoverflow.com/questions/649 ... ning-of-be
Модели трансформаторов Huggingface: KeyError: сообщение «input_ids» в начале обучения модели BERT ⇐ Python
Программы на Python
1728457615
Anonymous
При использовании библиотеки преобразователей Huggingface я столкнулся с ошибкой на последнем этапе тонкой настройки языковой модели BERT для задачи моделирования языка в маске. Я хочу точно настроить его для корпуса финансов в предметной области, на котором эта модель еще не была обучена. Однако при вызове модели для обучения я получаю следующее сообщение об ошибке: KeyError: 'input_ids'. Ниже приведены шаги и код, который я предпринял. Любая информация приветствуется!
Сначала я создал объект набора данных из кадра данных pandas, который, в свою очередь, был создан из файла csv с одним столбцом из многих строк текста:unlabelled_dataset = Dataset.from_pandas(unlabelled)
Во-вторых, я токенизировал набор данных с помощью следующего кода:
tokenizerBERT = BertTokenizerFast.from_pretrained('bert-base-uncased') #BERT model tokenization & check
tokenizerBERT(unlabelled_dataset['paragraphs'], padding=True, truncation=True)
tokenizerBERT.save_pretrained('tokenizers/pytorch/labelled/BERT/')
В-третьих, я создал сопоставление данных в соответствии с инструкциями:
data_collator_BERT = DataCollatorForLanguageModeling(tokenizer=tokenizerBERT, mlm=True, mlm_probability=0.15)
Далее я выбираю модель from_pretrained, чтобы воспользоваться преимуществами трансферного обучения:
model_BERT = BertForMaskedLM.from_pretrained("bert-base-uncased")
Далее я передал аргументы обучения тренеру-трансформеру и инициализировал:
training_args_BERT = TrainingArguments(
output_dir="./BERT",
num_train_epochs=10,
evaluation_strategy='steps',
warmup_steps=10000,
weight_decay=0.01,
per_gpu_train_batch_size=64,
)
trainer_BERT = Trainer(
model=model_BERT,
args=training_args_BERT,
data_collator=data_collator_BERT,
train_dataset=unlabelled_dataset,
)
Последнее я вызываю модель для обучения и получаю ошибку KeyError: 'input_ids'
trainer_BERT.train()
Есть какие-нибудь идеи о том, как отладить этот подход к обучению модели?
Ниже представлено точное полученное сообщение об ошибке:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
----> 1 trainer_BERT.train()
2 trainer.save_model("./models/royalBERT")
~/anaconda3/lib/python3.7/site-packages/transformers/trainer.py in train(self, model_path, trial)
755 self.control = self.callback_handler.on_epoch_begin(self.args, self.state, self.control)
756
--> 757 for step, inputs in enumerate(epoch_iterator):
758
759 # Skip past any already trained steps if resuming training
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __next__(self)
361
362 def __next__(self):
--> 363 data = self._next_data()
364 self._num_yielded += 1
365 if self._dataset_kind == _DatasetKind.Iterable and \
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _next_data(self)
401 def _next_data(self):
402 index = self._next_index() # may raise StopIteration
--> 403 data = self._dataset_fetcher.fetch(index) # may raise StopIteration
404 if self._pin_memory:
405 data = _utils.pin_memory.pin_memory(data)
~/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py in fetch(self, possibly_batched_index)
45 else:
46 data = self.dataset[possibly_batched_index]
---> 47 return self.collate_fn(data)
~/anaconda3/lib/python3.7/site-packages/transformers/data/data_collator.py in __call__(self, examples)
193 ) -> Dict[str, torch.Tensor]:
194 if isinstance(examples[0], (dict, BatchEncoding)):
--> 195 examples = [e["input_ids"] for e in examples]
196 batch = self._tensorize_batch(examples)
197 if self.mlm:
~/anaconda3/lib/python3.7/site-packages/transformers/data/data_collator.py in (.0)
193 ) -> Dict[str, torch.Tensor]:
194 if isinstance(examples[0], (dict, BatchEncoding)):
--> 195 examples = [e["input_ids"] for e in examples]
196 batch = self._tensorize_batch(examples)
197 if self.mlm:
KeyError: 'input_ids'
Подробнее здесь: [url]https://stackoverflow.com/questions/64911499/huggingface-transformer-models-keyerror-input-ids-message-at-beginning-of-be[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия