Model checkpoint twice as large when saved with safetensors
### System Info

- `transformers` version: 4.30.2
- Platform: Linux-5.15.0-1037-gcp-x86_64-with-glibc2.31
- Python version: 3.9.16
- Huggingface_hub version: 0.15.1
- Safetensors version: 0.3.1
- PyTorch version (GPU?): 2.0.0 (True)
- Tensorflow version (GPU?): not installed (NA)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: no
- Using distributed or parallel set-up in script?: no

### Who can help?

_No response_

### 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

```
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("facebook/opt-2.7b")
model.save_pretrained("opt_safetensor", safe_serialization=True)
```

The original pytorch_model.bin is 5.3GB and the new one is sharded:
model-00001-of-00002.safetensors 9.3GB
model-00002-of-00002.safetensors 601MB

### Expected behavior

Is that the expected behaviour? I would expect the weights to have roughly the same size when saved using safetensors.
Hi @lenbrocki 

Could you make a self-complete code snippet in `Reproduction` section, please. Thank you.<|||||>I have updated the Reproduction section<|||||>Thanks @lenbrocki !

cc @Narsil <|||||>This model is saved in `float16`.  `from_pretrained` will by default load it in `float32`.

`from_pretrained(..., torch_dtype=torch.float16)`

Should fix it.<|||||>Yes, that fixed it. Thanks!