Undefined behavior
## 🐛 Bug

There is an undefined behavior in `get_from_cache()` method in `transformers/transformers/file_utils.py`:
```python3
if not os.path.exists(cache_path) and etag is None:
    matching_files = fnmatch.filter(os.listdir(cache_dir), filename + '.*')
    matching_files = list(filter(lambda s: not s.endswith('.json'), matching_files))
    if matching_files:
        cache_path = os.path.join(cache_dir, matching_files[-1])
``` 

According to [docs](https://docs.python.org/3/library/os.html)  `os.listdir()`
> Return a list containing the names of the entries in the directory given by path. The list is in **arbitrary order**, ...

so taking last element from list returned by `os.listdir()` in the last row of snippet doesn't make sense because of arbitrary order. A possible solution is to add `sorted()`:
```python3
cache_path = os.path.join(cache_dir, sorted(matching_files)[-1])
```
I can make a PR if you agree.
Yes thanks would be happy to welcome a PR.
Thanks for ca(t😂)ching that<|||||>This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
