xnli benchmark
Author: VictorSanh
Pull request: yes

adapted from `run_glue.py`

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/1682?src=pr&el=h1) Report
> Merging [#1682](https://codecov.io/gh/huggingface/transformers/pull/1682?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/7daacf00df433621e3d3872a9f3bb574d1b00f5a?src=pr&el=desc) will **increase** coverage by `1.67%`.
> The diff coverage is `35.84%`.

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

```diff
@@            Coverage Diff            @@
##           master   #1682      +/-   ##
=========================================
+ Coverage   84.03%   85.7%   +1.67%     
=========================================
  Files          94      92       -2     
  Lines       14021   13704     -317     
=========================================
- Hits        11782   11745      -37     
+ Misses       2239    1959     -280
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/1682?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [transformers/configuration\_distilbert.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2NvbmZpZ3VyYXRpb25fZGlzdGlsYmVydC5weQ==) | `89.74% <ø> (ø)` | :arrow_up: |
| [transformers/tokenization\_distilbert.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rva2VuaXphdGlvbl9kaXN0aWxiZXJ0LnB5) | `100% <ø> (ø)` | :arrow_up: |
| [transformers/modeling\_distilbert.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX2Rpc3RpbGJlcnQucHk=) | `95.8% <ø> (-0.03%)` | :arrow_down: |
| [transformers/data/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvX19pbml0X18ucHk=) | `100% <100%> (ø)` | :arrow_up: |
| [transformers/data/processors/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvcHJvY2Vzc29ycy9fX2luaXRfXy5weQ==) | `100% <100%> (ø)` | :arrow_up: |
| [transformers/tokenization\_xlm.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rva2VuaXphdGlvbl94bG0ucHk=) | `83.6% <100%> (+0.39%)` | :arrow_up: |
| [transformers/data/metrics/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvbWV0cmljcy9fX2luaXRfXy5weQ==) | `34.04% <25%> (-0.85%)` | :arrow_down: |
| [transformers/data/processors/xnli.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL2RhdGEvcHJvY2Vzc29ycy94bmxpLnB5) | `31.11% <31.11%> (ø)` | |
| [transformers/modeling\_ctrl.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX2N0cmwucHk=) | `95.45% <0%> (-1.01%)` | :arrow_down: |
| [transformers/modeling\_transfo\_xl.py](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3RyYW5zZm9feGwucHk=) | `75.16% <0%> (-0.75%)` | :arrow_down: |
| ... and [39 more](https://codecov.io/gh/huggingface/transformers/pull/1682/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/1682?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/1682?src=pr&el=footer). Last update [7daacf0...828058a](https://codecov.io/gh/huggingface/transformers/pull/1682?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Great addition! As you may have seen, we've been slowly moving the utils from our examples folder to the actual transformer library. 
We've done so with GLUE and we have put the processors directly in `transformers/data/processors/glue.py`. This way the processors may be used as a component of the library rather than as a utility class/function.

Do you think you could do the same for XNLI? It would require you to create a file `transformers/data/processors/xnli.py` and put the `XnliProcessor` there.

Concerning the documentation, if you choose to add `XnliProcessor` to the processors it would be great to add it to the processors documentation in `docs/source/main_classes/processors.rst`

This one looks ready to be merged. @thomwolf ?