Search code examples
pythonhuggingface-transformersnamed-entity-recognition

ValueError with NERDA model import


I'm trying to import the NERDA library in order use it to engage in a Named-Entity Recognition task in Python. I initially tried importing the library in a jupyter notebook and got the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\NERDA\models.py", line 13, in <module>
    from .networks import NERDANetwork
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\NERDA\networks.py", line 4, in <module>
    from transformers import AutoConfig
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\__init__.py", line 43, in <module>
    from . import dependency_versions_check
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\dependency_versions_check.py", line 36, in <module>
    from .file_utils import is_tokenizers_available
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\transformers\file_utils.py", line 51, in <module>
    from huggingface_hub import HfApi, HfFolder, Repository
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\__init__.py", line 31, in <module>
    from .file_download import cached_download, hf_hub_url
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\file_download.py", line 37, in <module>
    if tuple(int(i) for i in _PY_VERSION.split(".")) < (3, 8, 0):
  File "C:\Users\oefel\AppData\Local\Programs\Python\Python38\lib\site-packages\huggingface_hub\file_download.py", line 37, in <genexpr>
    if tuple(int(i) for i in _PY_VERSION.split(".")) < (3, 8, 0):
ValueError: invalid literal for int() with base 10: '6rc1'

I then tried globally installing using pip in gitbash and got the same error. The library appeared to install without error but when I try the following import, I get that same ValueError:

from NERDA.models import NERDA

I've also tried some of the pre-cooked model imports and gotten the same ValueError.

from NERDA.precooked import EN_ELECTRA_EN
from NERDA.precooked import EN_BERT_ML

I can't find anything on this error online and am hoping someone may be able to lend some insight? Thanks so much!


Solution

  • Take a look at the source code of the used huggingface_hub lib. They comparing the version of your python version to do different imports.
    But you uses a release candidate python version (this tells the value '6rc1', that caused the error). Because they didn't expect/handle this, you get the int-parse-ValueError.


    Solution 1:
    Update your python version to a stable version. No release candidate. So you have an int-only version number.

    Solution 2:
    Monkeypatch sys.version, before you import the NERDA libs.

    sys.version = '3.8.0'