huggingface / nanotron

Minimalistic large language model 3D-parallelism training
Apache License 2.0
1.01k stars 91 forks source link

Circular import #191

Open xcvil opened 1 month ago

xcvil commented 1 month ago

The circular import problem still exist from nanotron 0.4

>>> from nanotron import logging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.10/dist-packages/nanotron/logging.py", line 38, in <module>
    from nanotron.config.config import LoggingArgs
  File "/usr/local/lib/python3.10/dist-packages/nanotron/config/__init__.py", line 2, in <module>
    from nanotron.config.config import *
  File "/usr/local/lib/python3.10/dist-packages/nanotron/config/config.py", line 13, in <module>
    from nanotron.config.lighteval_config import LightEvalConfig
  File "/usr/local/lib/python3.10/dist-packages/nanotron/config/lighteval_config.py", line 5, in <module>
    from nanotron.config.parallelism_config import ParallelismArgs
  File "/usr/local/lib/python3.10/dist-packages/nanotron/config/parallelism_config.py", line 4, in <module>
    from nanotron.config.utils_config import (
  File "/usr/local/lib/python3.10/dist-packages/nanotron/config/utils_config.py", line 8, in <module>
    from nanotron.parallel.pipeline_parallel.engine import (
  File "/usr/local/lib/python3.10/dist-packages/nanotron/parallel/pipeline_parallel/__init__.py", line 1, in <module>
    from nanotron.parallel.pipeline_parallel.engine import PipelineEngine
  File "/usr/local/lib/python3.10/dist-packages/nanotron/parallel/pipeline_parallel/engine.py", line 8, in <module>
    from nanotron.logging import log_rank
ImportError: cannot import name 'log_rank' from partially initialized module 'nanotron.logging' (most likely due to a circular import) (/usr/local/lib/python3.10/dist-packages/nanotron/logging.py)
zzhhjjj commented 1 month ago

Hello. Have you used pip install nanotron? If so, could you please try running pip install -e . instead?