ValueError: The model did not return a loss from the inputs, only the following keys: logits. For reference, the inputs it received are input_ids,attention_mask

Hi, I am following this tutorial to fine tune a distilbert-base-uncased model

I donโ€™t use the imdb dataset as in the tutorial but my own review.csv file which has column โ€˜Textโ€™ and โ€˜Scoreโ€™

When I train, it gives the error:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ in <module>:1                                                                                    โ”‚
โ”‚                                                                                                  โ”‚
โ”‚ โฑ 1 trainer.train()                                                                              โ”‚
โ”‚   2                                                                                              โ”‚
โ”‚   3                                                                                              โ”‚
โ”‚                                                                                                  โ”‚
โ”‚ /opt/conda/lib/python3.10/site-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,                                                                  โ”‚
โ”‚                                                                                                  โ”‚
โ”‚ /opt/conda/lib/python3.10/site-packages/transformers/trainer.py:1940 in _inner_training_loop     โ”‚
โ”‚                                                                                                  โ”‚
โ”‚   1937 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   with model.no_sync():                                                 โ”‚
โ”‚   1938 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   tr_loss_step = self.training_step(model, inputs)                  โ”‚
โ”‚   1939 โ”‚   โ”‚   โ”‚   โ”‚   else:                                                                     โ”‚
โ”‚ โฑ 1940 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   tr_loss_step = self.training_step(model, inputs)                      โ”‚
โ”‚   1941 โ”‚   โ”‚   โ”‚   โ”‚                                                                             โ”‚
โ”‚   1942 โ”‚   โ”‚   โ”‚   โ”‚   if (                                                                      โ”‚
โ”‚   1943 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   args.logging_nan_inf_filter                                           โ”‚
โ”‚                                                                                                  โ”‚
โ”‚ /opt/conda/lib/python3.10/site-packages/transformers/trainer.py:2735 in training_step            โ”‚
โ”‚                                                                                                  โ”‚
โ”‚   2732 โ”‚   โ”‚   โ”‚   return loss_mb.reduce_mean().detach().to(self.args.device)                    โ”‚
โ”‚   2733 โ”‚   โ”‚                                                                                     โ”‚
โ”‚   2734 โ”‚   โ”‚   with self.compute_loss_context_manager():                                         โ”‚
โ”‚ โฑ 2735 โ”‚   โ”‚   โ”‚   loss = self.compute_loss(model, inputs)                                       โ”‚
โ”‚   2736 โ”‚   โ”‚                                                                                     โ”‚
โ”‚   2737 โ”‚   โ”‚   if self.args.n_gpu > 1:                                                           โ”‚
โ”‚   2738 โ”‚   โ”‚   โ”‚   loss = loss.mean()  # mean() to average on multi-gpu parallel training        โ”‚
โ”‚                                                                                                  โ”‚
โ”‚ /opt/conda/lib/python3.10/site-packages/transformers/trainer.py:2780 in compute_loss             โ”‚
โ”‚                                                                                                  โ”‚
โ”‚   2777 โ”‚   โ”‚   โ”‚   โ”‚   loss = self.label_smoother(outputs, labels)                               โ”‚
โ”‚   2778 โ”‚   โ”‚   else:                                                                             โ”‚
โ”‚   2779 โ”‚   โ”‚   โ”‚   if isinstance(outputs, dict) and "loss" not in outputs:                       โ”‚
โ”‚ โฑ 2780 โ”‚   โ”‚   โ”‚   โ”‚   raise ValueError(                                                         โ”‚
โ”‚   2781 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   "The model did not return a loss from the inputs, only the following  โ”‚
โ”‚   2782 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   f"{','.join(outputs.keys())}. For reference, the inputs it received   โ”‚
โ”‚   2783 โ”‚   โ”‚   โ”‚   โ”‚   )                                                                         โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
ValueError: The model did not return a loss from the inputs, only the following keys: logits. For reference, the 
inputs it received are input_ids,attention_mask.

Please help

Are you still trying to resolve this? I used the IMDB dataset from the tutorial and its features are [โ€˜textโ€™, โ€˜labelโ€™, โ€˜input_idsโ€™, โ€˜attention_maskโ€™] after the pre-processing step. It seems you may not have the same features in your custom dataset?

I get the same error in a different context that Iโ€™m trying to resolve, so if fixing the columns doesnโ€™t help, would be curious to try it with a snippet of your dataset.