sn-gamestate icon indicating copy to clipboard operation
sn-gamestate copied to clipboard

Dependency conflict with torch 1.13 and transformers>4.47

Open zacstewart opened this issue 8 months ago • 1 comments

It seems that mmdet has an unbounded dependency on transformers. Since transformers 4.48, PyTorch 1 is no longer supported. sn-gamestate depends explicitly on torch==1.13.1 and upon mmdet~=3.1.0. The latter (because of it's unbounded dependency) installs latest transformers and you get the following error at runtime. By explicitly declaring transformers==4.47.1 as a dependency you can get around this.

Traceback (most recent call last):
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/bin/tracklab", line 10, in <module>
    sys.exit(main())
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/main.py", line 94, in decorated_main
    _run_hydra(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    _run_app(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    run_and_report(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    raise ex
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    return func()
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    lambda: hydra.run(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/hydra.py", line 132, in run
    _ = ret.return_value
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/core/utils.py", line 260, in return_value
    raise self._return_value
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/core/utils.py", line 186, in run_job
    ret.return_value = task_function(task_cfg)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/tracklab/main.py", line 38, in main
    inst_module = instantiate(module, device=device, tracking_dataset=tracking_dataset)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 226, in instantiate
    return instantiate_node(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 347, in instantiate_node
    return _call_target(_target_, partial, args, kwargs, full_key)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/tracklab/utils/monkeypatch_hydra.py", line 52, in new_call_target
    return _target_(*args, **kwargs)
  File "/home/zac/Code/SoccerNet/sn-gamestate/sn_gamestate/jersey/mmocr_api.py", line 25, in __init__
    self.ocr = MMOCRInferencer(det='dbnet_resnet18_fpnc_1200e_icdar2015', rec='SAR')
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/apis/inferencers/mmocr_inferencer.py", line 69, in __init__
    self.textdet_inferencer = TextDetInferencer(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/apis/inferencers/base_mmocr_inferencer.py", line 65, in __init__
    super().__init__(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/infer/infer.py", line 180, in __init__
    self.model = self._init_model(cfg, weights, device)  # type: ignore
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/infer/infer.py", line 483, in _init_model
    model = MODELS.build(cfg.model)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/build_functions.py", line 98, in build_from_cfg
    obj_cls = registry.get(obj_type)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 451, in get
    self.import_from_location()
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 376, in import_from_location
    import_module(loc)
  File "/home/zac/.local/share/uv/python/cpython-3.9.23-linux-x86_64-gnu/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/__init__.py", line 2, in <module>
    from .common import *  # NOQA
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/__init__.py", line 2, in <module>
    from .backbones import *  # NOQA
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/backbones/__init__.py", line 2, in <module>
    from .clip_resnet import CLIPResNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/backbones/clip_resnet.py", line 4, in <module>
    from mmdet.models.backbones import ResNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/__init__.py", line 2, in <module>
    from .backbones import *  # noqa: F401,F403
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/backbones/__init__.py", line 7, in <module>
    from .efficientnet import EfficientNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/backbones/efficientnet.py", line 14, in <module>
    from ..utils import make_divisible
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/utils/__init__.py", line 18, in <module>
    from .vlfuse_helper import BertEncoderLayer, VLFuse, permute_and_flatten
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/utils/vlfuse_helper.py", line 13, in <module>
    from transformers.modeling_utils import apply_chunking_to_forward
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/modeling_utils.py", line 61, in <module>
    from .integrations.flex_attention import flex_attention_forward
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/integrations/flex_attention.py", line 45, in <module>
    class WrappedFlexAttention:
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/integrations/flex_attention.py", line 60, in WrappedFlexAttention
    @torch.compiler.disable(recursive=False)
AttributeError: module 'torch' has no attribute 'compiler'

zacstewart avatar Jul 25 '25 10:07 zacstewart

After this, I face the issue of RuntimeError: share_filename: only available on CPU

This seems like issue when running with mps on mac. https://github.com/pytorch/pytorch/issues/87688#issuecomment-1578443113https://github.com/pytorch/pytorch/issues/87688#issuecomment-1578443113 This seems to be the solution but can't make a change in the .venv

Any workarounds?

yashb042 avatar Aug 12 '25 07:08 yashb042