I am a beginner trying to train Minilm using Hugging Face
I have followed this tutorial: Simple Training with the ๐ค Transformers Trainer - YouTube
My Dataset:
DatasetDict({
train: Dataset({
features: [โtec_nameโ, โlabelโ, โsentenceโ],
num_rows: 10356
})
validation: Dataset({
features: [โtec_nameโ, โlabelโ, โsentenceโ],
num_rows: 1295
})
test: Dataset({
features: [โtec_nameโ, โlabelโ, โsentenceโ],
num_rows: 1294
})
})
Codes:
from transformers import TrainingArguments
batch_size = 64
logging_steps = len(ds[โtrainโ])
output_dir1=โminilm-finetuned_1โ
training_args = TrainingArguments(output_dir=output_dir1,
num_train_epochs=5,
learning_rate=2e-5,
per_device_train_batch_size=batch_size,
per_device_eval_batch_size=batch_size,
weight_decay=0.01,
evaluation_strategy=โepochโ,
push_to_hub=True)
trainer = WeightedLossTrainer(model=model,
args=training_args,
compute_metrics=compute_metrics,
train_dataset=ds[โtrainโ],
eval_dataset=ds[โvalidationโ],
tokenizer=tokenizer)
trainer.train()
However an error was returned when I trained the model which showed the following:
/usr/local/lib/python3.10/dist-packages/transformers/optimization.py:407: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set no_deprecation_warning=True
to disable this warning
warnings.warn(
[501/810 00:58 < 00:36, 8.47 it/s, Epoch 3.09/5]
Step Training Loss Validation Loss
[21/21 00:00]
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ in <cell line: 1>:1 โ
โ โ
โ /usr/local/lib/python3.10/dist-packages/transformers/trainer.py:1664 in train โ
โ โ
โ 1661 โ โ inner_training_loop = find_executable_batch_size( โ
โ 1662 โ โ โ self._inner_training_loop, self._train_batch_size, args.auto_find_batch_size โ
โ 1663 โ โ ) โ
โ โฑ 1664 โ โ return inner_training_loop( โ
โ 1665 โ โ โ args=args, โ
โ 1666 โ โ โ resume_from_checkpoint=resume_from_checkpoint, โ
โ 1667 โ โ โ trial=trial, โ
โ โ
โ /usr/local/lib/python3.10/dist-packages/transformers/trainer.py:2019 in _inner_training_loop โ
โ โ
โ 2016 โ โ โ โ โ self.state.epoch = epoch + (step + 1 + steps_skipped) / steps_in_epo โ
โ 2017 โ โ โ โ โ self.control = self.callback_handler.on_step_end(args, self.state, s โ
โ 2018 โ โ โ โ โ โ
โ โฑ 2019 โ โ โ โ โ self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_k โ
โ 2020 โ โ โ โ else: โ
โ 2021 โ โ โ โ โ self.control = self.callback_handler.on_substep_end(args, self.state โ
โ 2022 โ
โ โ
โ /usr/local/lib/python3.10/dist-packages/transformers/trainer.py:2300 in _maybe_log_save_evaluate โ
โ โ
โ 2297 โ โ โ โ โ ) โ
โ 2298 โ โ โ โ โ metrics.update(dataset_metrics) โ
โ 2299 โ โ โ else: โ
โ โฑ 2300 โ โ โ โ metrics = self.evaluate(ignore_keys=ignore_keys_for_eval) โ
โ 2301 โ โ โ self._report_to_hp_search(trial, self.state.global_step, metrics) โ
โ 2302 โ โ โ โ
โ 2303 โ โ โ # Run delayed LR scheduler now that metrics are populated โ
โ โ
โ /usr/local/lib/python3.10/dist-packages/transformers/trainer.py:3029 in evaluate โ
โ โ
โ 3026 โ โ start_time = time.time() โ
โ 3027 โ โ โ
โ 3028 โ โ eval_loop = self.prediction_loop if self.args.use_legacy_prediction_loop else se โ
โ โฑ 3029 โ โ output = eval_loop( โ
โ 3030 โ โ โ eval_dataloader, โ
โ 3031 โ โ โ description=โEvaluationโ, โ
โ 3032 โ โ โ # No point gathering the predictions if there are no metrics, otherwise we d โ
โ โ
โ /usr/local/lib/python3.10/dist-packages/transformers/trainer.py:3318 in evaluation_loop โ
โ โ
โ 3315 โ โ โ โ โ EvalPrediction(predictions=all_preds, label_ids=all_labels, inputs=a โ
โ 3316 โ โ โ โ ) โ
โ 3317 โ โ โ else: โ
โ โฑ 3318 โ โ โ โ metrics = self.compute_metrics(EvalPrediction(predictions=all_preds, lab โ
โ 3319 โ โ else: โ
โ 3320 โ โ โ metrics = {} โ
โ 3321 โ
โ in compute_metrics:5 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
AttributeError: โEvalPredictionโ object has no attribute โpredictionโ
Any assistance is welcomed. Please Help