DataCollator that allows strings in datasets and untouch the strings
### Feature request

A default data_collator that allows strings to pass through and untouch the strings.

### Motivation

When I use `remove_unused_columns=True`， I can't  get the raw input sequences in string format in my batch.
When I use `remove_unused_columns=False`, I can't use the default data collator, because it raises the following error.
```
ValueError: Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' 'truncation=True' to have batched tensors with the same length. Perhaps your features (`translation` in this case) have excessive nesting (inputs type `list` where type `int` is expected).
```
I constantly fail into this issue and I have to implement my own data collator each time. I wonder if there will be/has been an official implementation for this feature. 

### Your contribution

I can submit a PR, but I am not sure if the feature already exists somewhere that I did not know.
Data collators inside Transformers exist for the Trainer, which in turn send all inputs to the model directly. The model won't be able to accept the raw strings, so the use case is not obvious.

Transformers is a library of models at its core, so while we provide some functionality to train/fine-tune them easily, our goal isn't to be comprehensive :-)<|||||>But it's very easy to pop those raw strings out of the batch before passing into the model. If the raw strings are not passed into the batch, it will be hard to align the raw string to tokenized data because the data is randomly shuffled.<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.<|||||>Is there are reason for "labels_ids" to be constrained to numeric values? (torch.long and torch.float). I'm working on a use case where the labels are represented as alphanumeric and it would be nice to preserve the original ID as it traces back to the original source of data. You can always convert alphanumeric values to numeric, but then you have to keep a dictionary offline to map it back. The other workaround would be to build our custom data collator as suggested in the original post but why write another function for this small change. I agree that it doesn't make sense to allow strings for a model that won't accept them. Can we make an exception for the "labels_ids"?