MDK8888 / GPTFast

Accelerate your Hugging Face Transformers 7.6-9x. Native to Hugging Face and PyTorch.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Doesn't work on kaggle notebooks - ValueError: Unable to compare versions for numpy>=1.17: need=1.17 found=None. This is unusual. Consider reinstalling numpy.

c1505 opened this issue · comments

to reproduce

  • pip install gpt-fast
  • run the code included the in readme
  • reinstalling numpy with  !pip install numpy --upgrade fixes the numpy error, but then there is an additional error

environment

  • kaggle notebook
  • t4x2 gpu

Additional details/thoughts

  • Maybe kaggle has specific dependency requirements that break when this install is done. Later I may try installing the dependencies allowing for any matching minor versions.
  • prior to reinstalling numpy, if I run !pip list , it shows as being present

The numpy error

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[6], line 3
      1 import os
      2 import torch
----> 3 from transformers import AutoTokenizer
      4 from GPTFast.Core import gpt_fast
      5 from GPTFast.Helpers import timed

File /opt/conda/lib/python3.10/site-packages/transformers/__init__.py:26
     23 from typing import TYPE_CHECKING
     25 # Check the dependencies satisfy the minimal versions required.
---> 26 from . import dependency_versions_check
     27 from .utils import (
     28     OptionalDependencyNotAvailable,
     29     _LazyModule,
   (...)
     48     logging,
     49 )
     52 logger = logging.get_logger(__name__)  # pylint: disable=invalid-name

File /opt/conda/lib/python3.10/site-packages/transformers/dependency_versions_check.py:57
     54         if not is_accelerate_available():
     55             continue  # not required, check version only if installed
---> 57     require_version_core(deps[pkg])
     58 else:
     59     raise ValueError(f"can't find {pkg} in {deps.keys()}, check dependency_versions_table.py")

File /opt/conda/lib/python3.10/site-packages/transformers/utils/versions.py:117, in require_version_core(requirement)
    115 """require_version wrapper which emits a core-specific hint on failure"""
    116 hint = "Try: `pip install transformers -U` or `pip install -e '.[dev]'` if you're working with git main"
--> 117 return require_version(requirement, hint)

File /opt/conda/lib/python3.10/site-packages/transformers/utils/versions.py:111, in require_version(requirement, hint)
    109 if want_ver is not None:
    110     for op, want_ver in wanted.items():
--> 111         _compare_versions(op, got_ver, want_ver, requirement, pkg, hint)

File /opt/conda/lib/python3.10/site-packages/transformers/utils/versions.py:39, in _compare_versions(op, got_ver, want_ver, requirement, pkg, hint)
     37 def _compare_versions(op, got_ver, want_ver, requirement, pkg, hint):
     38     if got_ver is None or want_ver is None:
---> 39         raise ValueError(
     40             f"Unable to compare versions for {requirement}: need={want_ver} found={got_ver}. This is unusual. Consider"
     41             f" reinstalling {pkg}."
     42         )
     43     if not ops[op](version.parse(got_ver), version.parse(want_ver)):
     44         raise ImportError(
     45             f"{requirement} is required for a normal functioning of this module, but found {pkg}=={got_ver}.{hint}"
     46         )

ValueError: Unable to compare versions for numpy>=1.17: need=1.17 found=None. This is unusual. Consider reinstalling numpy.

the other error

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
File /opt/conda/lib/python3.10/site-packages/transformers/utils/import_utils.py:1472, in _LazyModule._get_module(self, module_name)
   1471 try:
-> 1472     return importlib.import_module("." + module_name, self.__name__)
   1473 except Exception as e:

File /opt/conda/lib/python3.10/importlib/__init__.py:126, in import_module(name, package)
    125         level += 1
--> 126 return _bootstrap._gcd_import(name[level:], package, level)

File <frozen importlib._bootstrap>:1050, in _gcd_import(name, package, level)

File <frozen importlib._bootstrap>:1027, in _find_and_load(name, import_)

File <frozen importlib._bootstrap>:1006, in _find_and_load_unlocked(name, import_)

File <frozen importlib._bootstrap>:688, in _load_unlocked(spec)

File <frozen importlib._bootstrap_external>:883, in exec_module(self, module)

File <frozen importlib._bootstrap>:241, in _call_with_frames_removed(f, *args, **kwds)

File /opt/conda/lib/python3.10/site-packages/transformers/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.py:30
     29 if is_speech_available():
---> 30     import torchaudio.compliance.kaldi as ta_kaldi
     32 if is_torch_available():

File /opt/conda/lib/python3.10/site-packages/torchaudio/__init__.py:1
----> 1 from . import (  # noqa: F401
      2     _extension,
      3     compliance,
      4     datasets,
      5     functional,
      6     io,
      7     kaldi_io,
      8     models,
      9     pipelines,
     10     sox_effects,
     11     transforms,
     12     utils,
     13 )
     14 from ._backend.common import AudioMetaData  # noqa

File /opt/conda/lib/python3.10/site-packages/torchaudio/_extension/__init__.py:45
     44 if _IS_TORCHAUDIO_EXT_AVAILABLE:
---> 45     _load_lib("libtorchaudio")
     47     import torchaudio.lib._torchaudio  # noqa

File /opt/conda/lib/python3.10/site-packages/torchaudio/_extension/utils.py:64, in _load_lib(lib)
     63     return False
---> 64 torch.ops.load_library(path)
     65 torch.classes.load_library(path)

File /opt/conda/lib/python3.10/site-packages/torch/_ops.py:933, in _Ops.load_library(self, path)
    929 with dl_open_guard():
    930     # Import the shared library into the process, thus running its
    931     # static (global) initialization code in order to register custom
    932     # operators with the JIT.
--> 933     ctypes.CDLL(path)
    934 self.loaded_libraries.add(path)

File /opt/conda/lib/python3.10/ctypes/__init__.py:374, in CDLL.__init__(self, name, mode, handle, use_errno, use_last_error, winmode)
    373 if handle is None:
--> 374     self._handle = _dlopen(self._name, mode)
    375 else:

OSError: /opt/conda/lib/python3.10/site-packages/torchaudio/lib/libtorchaudio.so: undefined symbol: _ZNK5torch8autograd4Node4nameB5cxx11Ev

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
Cell In[10], line 77
     44 MAX_TOKENS=50
     46 cache_config = {
     47     "model_config": {
     48         "path_to_blocks": ["transformer", "h"],
   (...)
     74                 "from torch import nn"]
     75 }
---> 77 gpt_fast_model = gpt_fast(model_name, sample_function=argmax, max_length=60, cache_config=cache_config, draft_model_name=draft_model_name)
     78 gpt_fast_model.to(device)
     80 fast_compile_times = []

File /opt/conda/lib/python3.10/site-packages/GPTFast/Core/GPTFast.py:11, in gpt_fast(model_name, sample_function, max_length, cache_config, **spec_dec_kwargs)
      9 def gpt_fast(model_name:str, sample_function:Callable, max_length:int, cache_config:dict, **spec_dec_kwargs):
     10     model = load_int8(model_name)
---> 11     model = add_kv_cache(model, sample_function, max_length, cache_config, dtype=torch.float16)
     12     spec_decode = False
     13     if spec_dec_kwargs:

File /opt/conda/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py:208, in add_kv_cache(transformer, sampling_fn, max_length, cache_config, dtype)
    207 def add_kv_cache(transformer:nn.Module, sampling_fn:Callable, max_length:int, cache_config:dict, dtype) -> KVCacheModel:
--> 208     model = KVCacheModel(transformer, sampling_fn, max_length, cache_config, dtype)
    209     return model

File /opt/conda/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py:21, in KVCacheModel.__init__(self, model, sample_fn, max_length, cache_config, dtype)
     17 self.sample = types.MethodType(sample_fn, self)
     19 assert not isinstance(model, BloomForCausalLM), "Bloom models currently have an unsupported kv cache shape."
---> 21 self._model = self.add_static_cache_to_model(model, cache_config, max_length, dtype, self.device)
     22 config = self._model.config
     23 self._max_length = max_length

File /opt/conda/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py:50, in KVCacheModel.add_static_cache_to_model(cls, model, cache_config, max_generated_length, dtype, device)
     48     module_forward_str_kv_cache = add_input_pos_to_func_str(module_forward_str, forward_prop_ref, "input_pos=input_pos")
     49     module_forward_str_kv_cache = add_default_parameter(module_forward_str_kv_cache, "forward", "input_pos", "Optional[torch.Tensor]", None, True)
---> 50     add_str_as_func(module_with_input_pos, "forward", module_forward_str_kv_cache, imports)
     52     module_with_input_pos = getattr(module_with_input_pos, prop)
     54 assert isinstance(module_with_input_pos, nn.ModuleList), "Once we finish iterating through 'path_to_blocks', the property that you arrive at must be a nn.ModuleList."

File /opt/conda/lib/python3.10/site-packages/GPTFast/Helpers/Class/add_str_as_func.py:11, in add_str_as_func(obj, method_name, func_str, imports)
      9 func_code = compile(complete_func_str, "<string>", "exec")
     10 namespace = {}
---> 11 exec(func_code, namespace)
     13 # Extract the func from the namespace
     14 my_func = namespace[method_name]

File <string>:3

File <frozen importlib._bootstrap>:1073, in _handle_fromlist(module, fromlist, import_, recursive)

File <frozen importlib._bootstrap>:1075, in _handle_fromlist(module, fromlist, import_, recursive)

File /opt/conda/lib/python3.10/site-packages/transformers/utils/import_utils.py:1463, in _LazyModule.__getattr__(self, name)
   1461 elif name in self._class_to_module.keys():
   1462     module = self._get_module(self._class_to_module[name])
-> 1463     value = getattr(module, name)
   1464 else:
   1465     raise AttributeError(f"module {self.__name__} has no attribute {name}")

File /opt/conda/lib/python3.10/site-packages/transformers/utils/import_utils.py:1462, in _LazyModule.__getattr__(self, name)
   1460     value = self._get_module(name)
   1461 elif name in self._class_to_module.keys():
-> 1462     module = self._get_module(self._class_to_module[name])
   1463     value = getattr(module, name)
   1464 else:

File /opt/conda/lib/python3.10/site-packages/transformers/utils/import_utils.py:1474, in _LazyModule._get_module(self, module_name)
   1472     return importlib.import_module("." + module_name, self.__name__)
   1473 except Exception as e:
-> 1474     raise RuntimeError(
   1475         f"Failed to import {self.__name__}.{module_name} because of the following error (look up to see its"
   1476         f" traceback):\n{e}"
   1477     ) from e

RuntimeError: Failed to import transformers.models.audio_spectrogram_transformer.feature_extraction_audio_spectrogram_transformer because of the following error (look up to see its traceback):
/opt/conda/lib/python3.10/site-packages/torchaudio/lib/libtorchaudio.so: undefined symbol: _ZNK5torch8autograd4Node4nameB5cxx11Ev