Add minimum version check in examples (#10724)
* Add minimum version check in examples * Style * No need for new line maybe? * Add helpful comment
This commit is contained in:
@@ -33,10 +33,43 @@ Then cd in the example folder of your choice and run
|
|||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can run the version of the examples as they were for your current version of Transformers via (for instance with v3.5.1):
|
To browse the examples corresponding to released versions of 🤗 Transformers, click on the line below and then on your desired version of the library:
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Examples for older versions of 🤗 Transformers</summary>
|
||||||
|
|
||||||
|
- [v4.3.3](https://github.com/huggingface/transformers/tree/v4.3.3/examples)
|
||||||
|
- [v4.2.2](https://github.com/huggingface/transformers/tree/v4.2.2/examples)
|
||||||
|
- [v4.1.1](https://github.com/huggingface/transformers/tree/v4.1.1/examples)
|
||||||
|
- [v4.0.1](https://github.com/huggingface/transformers/tree/v4.0.1/examples)
|
||||||
|
- [v3.5.1](https://github.com/huggingface/transformers/tree/v3.5.1/examples)
|
||||||
|
- [v3.4.0](https://github.com/huggingface/transformers/tree/v3.4.0/examples)
|
||||||
|
- [v3.3.1](https://github.com/huggingface/transformers/tree/v3.3.1/examples)
|
||||||
|
- [v3.2.0](https://github.com/huggingface/transformers/tree/v3.2.0/examples)
|
||||||
|
- [v3.1.0](https://github.com/huggingface/transformers/tree/v3.1.0/examples)
|
||||||
|
- [v3.0.2](https://github.com/huggingface/transformers/tree/v3.0.2/examples)
|
||||||
|
- [v2.11.0](https://github.com/huggingface/transformers/tree/v2.11.0/examples)
|
||||||
|
- [v2.10.0](https://github.com/huggingface/transformers/tree/v2.10.0/examples)
|
||||||
|
- [v2.9.1](https://github.com/huggingface/transformers/tree/v2.9.1/examples)
|
||||||
|
- [v2.8.0](https://github.com/huggingface/transformers/tree/v2.8.0/examples)
|
||||||
|
- [v2.7.0](https://github.com/huggingface/transformers/tree/v2.7.0/examples)
|
||||||
|
- [v2.6.0](https://github.com/huggingface/transformers/tree/v2.6.0/examples)
|
||||||
|
- [v2.5.1](https://github.com/huggingface/transformers/tree/v2.5.1/examples)
|
||||||
|
- [v2.4.0](https://github.com/huggingface/transformers/tree/v2.4.0/examples)
|
||||||
|
- [v2.3.0](https://github.com/huggingface/transformers/tree/v2.3.0/examples)
|
||||||
|
- [v2.2.0](https://github.com/huggingface/transformers/tree/v2.2.0/examples)
|
||||||
|
- [v2.1.1](https://github.com/huggingface/transformers/tree/v2.1.0/examples)
|
||||||
|
- [v2.0.0](https://github.com/huggingface/transformers/tree/v2.0.0/examples)
|
||||||
|
- [v1.2.0](https://github.com/huggingface/transformers/tree/v1.2.0/examples)
|
||||||
|
- [v1.1.0](https://github.com/huggingface/transformers/tree/v1.1.0/examples)
|
||||||
|
- [v1.0.0](https://github.com/huggingface/transformers/tree/v1.0.0/examples)
|
||||||
|
</details>
|
||||||
|
|
||||||
|
Alternatively, you can find switch your cloned 🤗 Transformers to a specific version (for instance with v3.5.1) with
|
||||||
```bash
|
```bash
|
||||||
git checkout tags/v3.5.1
|
git checkout tags/v3.5.1
|
||||||
```
|
```
|
||||||
|
and run the example command as usual afterward.
|
||||||
|
|
||||||
## The Big Table of Tasks
|
## The Big Table of Tasks
|
||||||
|
|
||||||
@@ -62,12 +95,6 @@ Coming soon!
|
|||||||
| [**`translation`**](https://github.com/huggingface/transformers/tree/master/examples/seq2seq) | WMT | ✅ | - | - | -
|
| [**`translation`**](https://github.com/huggingface/transformers/tree/master/examples/seq2seq) | WMT | ✅ | - | - | -
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
## One-click Deploy to Cloud (wip)
|
|
||||||
|
|
||||||
**Coming soon!**
|
|
||||||
-->
|
|
||||||
|
|
||||||
## Distributed training and mixed precision
|
## Distributed training and mixed precision
|
||||||
|
|
||||||
All the PyTorch scripts mentioned above work out of the box with distributed training and mixed precision, thanks to
|
All the PyTorch scripts mentioned above work out of the box with distributed training and mixed precision, thanks to
|
||||||
|
|||||||
@@ -44,8 +44,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
MODEL_CONFIG_CLASSES = list(MODEL_FOR_MASKED_LM_MAPPING.keys())
|
MODEL_CONFIG_CLASSES = list(MODEL_FOR_MASKED_LM_MAPPING.keys())
|
||||||
MODEL_TYPES = tuple(conf.model_type for conf in MODEL_CONFIG_CLASSES)
|
MODEL_TYPES = tuple(conf.model_type for conf in MODEL_CONFIG_CLASSES)
|
||||||
|
|||||||
@@ -40,8 +40,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,8 +42,12 @@ from transformers import (
|
|||||||
from transformers.file_utils import PaddingStrategy
|
from transformers.file_utils import PaddingStrategy
|
||||||
from transformers.tokenization_utils_base import PreTrainedTokenizerBase
|
from transformers.tokenization_utils_base import PreTrainedTokenizerBase
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,13 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
from utils_qa import postprocess_qa_predictions
|
from utils_qa import postprocess_qa_predictions
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -40,9 +40,13 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
from utils_qa import postprocess_qa_predictions_with_beam_search
|
from utils_qa import postprocess_qa_predictions_with_beam_search
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -43,8 +43,12 @@ from transformers import (
|
|||||||
)
|
)
|
||||||
from transformers.file_utils import is_offline_mode
|
from transformers.file_utils import is_offline_mode
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -42,8 +42,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
task_to_keys = {
|
task_to_keys = {
|
||||||
"cola": ("sentence", None),
|
"cola": ("sentence", None),
|
||||||
"mnli": ("premise", "hypothesis"),
|
"mnli": ("premise", "hypothesis"),
|
||||||
|
|||||||
@@ -41,8 +41,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,12 @@ from transformers import (
|
|||||||
set_seed,
|
set_seed,
|
||||||
)
|
)
|
||||||
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
from transformers.trainer_utils import get_last_checkpoint, is_main_process
|
||||||
|
from transformers.utils import check_min_version
|
||||||
|
|
||||||
|
|
||||||
|
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||||
|
check_min_version("4.4.0.dev0")
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# coding=utf-8
|
||||||
|
# Copyright 2021 The HuggingFace Inc. team. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
from packaging import version
|
||||||
|
|
||||||
|
from .. import __version__
|
||||||
|
|
||||||
|
|
||||||
|
def check_min_version(min_version):
|
||||||
|
if version.parse(__version__) < version.parse(min_version):
|
||||||
|
if "dev" in min_version:
|
||||||
|
error_message = (
|
||||||
|
"This example requires a source install from 🤗 Transformers (see "
|
||||||
|
"`https://huggingface.co/transformers/installation.html#installing-from-source`),"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
error_message = f"This example requires a minimum version of {min_version},"
|
||||||
|
error_message += f" but the version found is {__version__}.\n"
|
||||||
|
raise ImportError(
|
||||||
|
error_message
|
||||||
|
+ (
|
||||||
|
"Check out https://huggingface.co/transformers/examples.html for the examples corresponding to other "
|
||||||
|
"versions of 🤗 Transformers."
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user