Always initialize tied output_embeddings if it has a bias term
Author: hackyon
Pull request: yes

# What does this PR do?

This fixes a bug caused by https://github.com/huggingface/transformers/pull/28192#issuecomment-1934913583. 

Repro Steps:
1. Sync to HEAD in main
2. Run `python -m pytest tests/models/electra/test_modeling_electra.py`
3. One of the tests fails:
`FAILED tests/models/electra/test_modeling_electra.py::ElectraModelTest::test_save_load_fast_init_from_base - AssertionError: nan not less than or equal to 0.001 : generator_lm_head.bias not identical`


The issue was uncovered in https://github.com/huggingface/transformers/pull/28802.


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#create-a-pull-request),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [x] Did you write any new necessary tests?


## Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

@ArthurZucker @amyeroberts


Comments:
Hi, I caused the bug. Thanks for catching it! Can confirm this is replicable, very interested in why this wasn't caught in my pull request's CI runs or CI runs after my commit was added.

Can also confirm that this PR in its current state doesn't undo the improvement to the whisper-v3 loading time that the bug-introducing-commit aimed to add.

Cool, thanks for checking that it doesn't affect the improvement!

I think a lot of continuous integration testing frameworks tend to skip tests that "seem unaffected" by a change, but that's done using heuristics and can go wrong from time to time (such as the one we're seeing now). 

With that said, many teams tend to have a separate process that continuously runs the full gamut of tests (fast, slow, integration, etc) and reports on any build breakage/test failures it encounters. I imagine HuggingFace should have something like this as well, but it might not be working right now for some reason.

The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_28947). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

It looks like the CI skipped some tests, and tie_weights() still need to be added some models (ex. BertGeneration, Realm). I'm trying to run the full range of tests now to find all these cases.

Aside: seems like there's already quite a bit of test failures even running on main in HEAD because there's no CI that runs over all the tests (even the non-slow ones). Feels like these failures won't really be uncovered unless someone modifies a specific model, but in that case, they will encounter failures unrelated to their change. 

Perhaps it's worth adding a CI that continuously runs all the tests for all the models?