Incorrect backward pass in the four bits LLaMA 2 70B
### System Info

This issue needs to be treated as a code review comment.

### Who can help?

@TimDettmers @ArthurZucker @younesbelkada
 
 It seems that when `config.pretraining_tp` is greater than one, then the projections of the keys, queries, and values in the `LlamaAttention` implemented using `torch.nn.functional.linear`.  Hence, in such cases the implementation bypasses `torch.nn.Linear.forward ` which if i understand correctly is problematic when the underlined linear module is replaced by `bitsandbytes`.

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

This issue needs to be treated as a code review comment. So, I didn't implement a concrete code for demonstrating the problem.

### Expected behavior

A seamless integration with `bitsandbytes`.
Hi @noamwies 
For fine-tuning llama2 models that have `config.pretraining_tp>1` consider calling

```python
model.config.pretraining_tp = 1
```

Before training, make sure to use the main branch of `transformers` to include: https://github.com/huggingface/transformers/pull/24906 

```bash
pip uninstall transformers
pip install git+https://github.com/huggingface/transformers
```<|||||>This is a duplicate of #24961, as well https://github.com/facebookresearch/llama/issues/423 , and https://github.com/TimDettmers/bitsandbytes/issues/610. This is not something that will be fixed in `transformers` and not sure you need to fix it, since the pretraining tp should stay at 1 for most use cases