Flaubert
Author: LysandreJik
Pull request: yes

From PR #2632 by [formiel](https://github.com/formiel).

This PR adds [FlauBERT](https://github.com/getalp/Flaubert). Most of the code is derived from XLM (there are some new features in FlauBERT such as pre_norm and layerdrop).

The failing tests were fixed.

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=h1) Report
> Merging [#2677](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/adb8c93134f02fd0eac2b52189364af21977004c?src=pr&el=desc) will **decrease** coverage by `0.49%`.
> The diff coverage is `36.22%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/2677/graphs/tree.svg?width=650&token=9qOlN6Hb1c&height=150&src=pr)](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=tree)

```diff
@@           Coverage Diff            @@
##           master   #2677     +/-   ##
========================================
- Coverage   74.59%   74.1%   -0.5%     
========================================
  Files          89      92      +3     
  Lines       14971   15167    +196     
========================================
+ Hits        11168   11239     +71     
- Misses       3803    3928    +125
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/2677/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9fX2luaXRfXy5weQ==) | `98.87% <100%> (+0.03%)` | :arrow_up: |
| [src/transformers/configuration\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/2677/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2F1dG8ucHk=) | `100% <100%> (ø)` | :arrow_up: |
| [src/transformers/modeling\_flaubert.py](https://codecov.io/gh/huggingface/transformers/pull/2677/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19mbGF1YmVydC5weQ==) | `29.32% <29.32%> (ø)` | |
| [src/transformers/tokenization\_flaubert.py](https://codecov.io/gh/huggingface/transformers/pull/2677/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fZmxhdWJlcnQucHk=) | `40.42% <40.42%> (ø)` | |
| [src/transformers/configuration\_flaubert.py](https://codecov.io/gh/huggingface/transformers/pull/2677/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2ZsYXViZXJ0LnB5) | `75% <75%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=footer). Last update [adb8c93...924cb7e](https://codecov.io/gh/huggingface/transformers/pull/2677?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Is the `layerdrop` configuration argument used anywhere? I don't see any usage in the modeling file.

Hi @LysandreJik, 

Thanks a lot for working on my PR!

Good catch on layerdrop! It is currently not used for inference (it might be in a future version), so I decided to remove it from the code. As it may be useful for fine-tuning, let me add it and create a new PR. Sorry for the inconvenience!

Alright, I've completely updated the documentation as well as the tests. I'm merging this PR, feel free to open a new one concerning the `layerdrop`.

I've just opened a new PR for `layerdrop`. Thank you so much for your kind support to the integration of our model into your library!

A pleasure!