[WIP] Making `Camembert` independent from Roberta
Author: Mustapha-AJEGHRIR
Pull request: yes

# What does this PR do?

related to  #19303 

Making the Camembert model (pytorch version) independent from Roberta

I have changed all the classes of camembert by copy paste from Roberta. I have done the litte necessary changes for every thing to work.

I'm still wondering how to change blocks like those, I have to  add a specific checkpoint for Camembert ? :
```python
    @add_code_sample_docstrings(
        processor_class=_TOKENIZER_FOR_DOC,
        checkpoint="deepset/roberta-base-squad2",
        output_type=QuestionAnsweringModelOutput,
        config_class=_CONFIG_FOR_DOC,
        expected_output="' puppet'",
        expected_loss=0.86,
    )
```
For testing, the following test works well :
```bash
$ RUN_SLOW=1 pytest tests/models/camembert/test_modeling_camembert.py
```

However, I have noticed the tests are only for the `CamembertModel` but not other classes like `CamembertForCausalLM` ...

## 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#start-contributing-pull-requests),
      Pull Request section?
- [x] 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).
- [ ] Did you write any new necessary tests?


## Who can review?
@sgugger related to  #19303 

Comments:
In the `CamembertPreTrainedModel` I left `base_model_prefix = "roberta"` to be equal to "roberta". If I change it into "camembert" the test fails. This is normal ?

_The documentation is not available anymore as the PR was closed or merged._

Thanks a lot for your answers @sgugger. I took some time to understand the concepts of `flake8` and `repo-consistency-

I have done one thing without being very sure about it (that was the only way to make `make fixup` happy). I added the `CamembertPreTrainedModel` class into the `__init__` and `dummy_pt_objects` (as in the PR). I don't know if this is the correct way to do it ?

I don't understand why some torch tests failed just by replacing `self.camembert` with `self.roberta`. 

Hi @sgugger, I have done git rebase from the huggingface:main, this brought all the other commit over my branch, this might be very difficult to read. If you want I can close this pull request and open a clean one ?

Arg, yes we would need a clean PR: even if I can see the changes are not related, it will mess up authorship of this commit when we merge your PR (it will show all the other random commits of your rebase) and if somehow this PR introduces a bug, when we come look at it later, it will be hard to see what changed the error.

Tip: for GitHub you need to force-push after a rebase when your PR is already open (with `git push -u origin branch --force`)