BLIP computes loss no matter what
### System Info

transformers-4.27.0.dev0

### Who can help?

@younesbelkada 

### Reproduction

Currently, `BlipForConditionalGeneration` will always return a loss, even when the user hasn't provided any labels:

```
from PIL import Image
import requests
from transformers import AutoProcessor, BlipForConditionalGeneration

processor = AutoProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

inputs = processor(images=image, return_tensors="pt")

outputs = model(**inputs)
print(outputs.keys())
```
which prints:
```
odict_keys(['loss', 'decoder_logits', 'image_embeds', 'last_hidden_state'])
```
And what's also weird is that this loss is NaN:
```
print(outputs.loss)
```
returns
```
tensor(nan, grad_fn=<AddBackward0>)
```



### Expected behavior

Returning a loss in case the user doesn't provide `labels` isn't really compliant to the design of all models in the Transformers library, which only return a loss in case the user provides labels.

Hence I'm advocating to remove [the following lines of code](https://github.com/huggingface/transformers/blob/5b67ab9924cf7587b39b59eb0bf0abd3d099e8b9/src/transformers/models/blip/modeling_blip.py#L1008-L1009). Similar to models like `T5ForConditionalGeneration`, `BartForConditionalGeneration`, it is the user's responsibility to create the appropriate labels.

Moreover, I'm not sure why [the following lines of code](https://github.com/huggingface/transformers/blob/5b67ab9924cf7587b39b59eb0bf0abd3d099e8b9/src/transformers/models/blip/modeling_blip.py#L1005-L1006) are included, as they don't seem necessary and also lead to unexpected behaviour. Again here, models like T5 and BART don't set the `input_ids` automatically to the decoder start token ID in case the user doesn't provide `input_ids`. It's the user's responsibility to provide `input_ids`. Instead, those lines should also simply be removed IMO.
i would like to work on this can you assign me