Confusing behavior of push_to_hub + from_pretrained + safetensors
Author: morrisalp
Pull request: no

### System Info

- `transformers` version: 4.30.1
- Platform: Linux-5.15.0-58-generic-x86_64-with-glibc2.35
- Python version: 3.9.16
- Huggingface_hub version: 0.14.1
- Safetensors version: 0.3.1
- PyTorch version (GPU?): 2.0.0+cu117 (True)
- Tensorflow version (GPU?): 2.12.0 (True)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: yes
- Using distributed or parallel set-up in script?: no

### Who can help?

@Narsil @sgugger @stevhliu @MKhalusova

### Information

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

### Tasks

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

### Reproduction

While actively developing my model [malper/taatiknet](https://huggingface.co/malper/taatiknet) I've encountered some confusing behavior, **bolded below**:

* Using pipeline API (`pipe = pipeline(...)` etc.)
* Updating model on hub with `pipe.model.push_to_hub('malper/taatiknet', create_pr=1)` and merging PR
* Must also push tokenizer with `pipe.tokenizer.push_to_hub` (**undocumented** in current docs)
* On first update, I get an automated [PR from SFconvertbot](https://huggingface.co/malper/taatiknet/discussions/3) and merge it without thinking
* On future updates with `push_to_hub`, only `pytorch_model.bin` updates **but model.safetensors does not**
* Loading model elsewhere with `.load_pretrained('malper/taatiknet')` **loads old safetensors model and does not get new weights**

It took quite a while to figure out why my model was not updating when loaded and **not documented how to update safetensors version on HF model hub**.

### Expected behavior

At least one of the following would be desirable:

* documentation on how to update the safetensors (ST) model weights on the hub
* push_to_hub automatically pushing ST weights or printing a warning that they are not updated
* STconvertbot checking for updated base weights & providing a PR with converted weights
* documentation that from_pretrained pulls ST weights when available
* from_pretrained providing a warning when base weights & ST weights don't match (i.e. from different git commits)

Comments:
FYI, the ad-hoc solution I used now is to delete `model.safetensors` from the model hub repo and then use the convert space [here](https://huggingface.co/spaces/safetensors/convert).
But it's not obvious to do this and not convenient to have to do this every time I update the model.
IMO the behavior of `push_to_hub` and `from_pretrained` should be aligned.

Would `push_to_hub(..., safe_serialization=True)` work ? Means everything would be in safetensors directly ? (Then the PT files would not be up-to-date, but you can discard them at this point).

We're only keeping PT files by default for old `transformers` users which might not have `safetensors` dependency yet (and their version might not be `safetensors` aware).


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.