Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用多进程处理数据时,报错TypeError: _LazyConfigMapping.__init__() missing 1 required positional argument: 'mapping' #1328

Closed
zodiacg opened this issue Jul 9, 2024 · 7 comments

Comments

@zodiacg
Copy link

zodiacg commented Jul 9, 2024

Describe the bug
preprocess_num_proc不为1时,报错:

Traceback (most recent call last):        
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/multiprocess/process.py", line 314, in _bootstrap
    self.run()
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/multiprocess/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/multiprocess/pool.py", line 114, in worker
    task = get()
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/multiprocess/queues.py", line 370, in get
    return _ForkingPickler.loads(res)
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/dill/_dill.py", line 303, in loads
    return load(file, ignore, **kwds)
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/dill/_dill.py", line 289, in load
    return Unpickler(file, ignore=ignore, **kwds).load()
  File "XXX/miniconda3/envs/swift118/lib/python3.10/site-packages/dill/_dill.py", line 444, in load
    obj = StockUnpickler.load(self)
TypeError: _LazyConfigMapping.__init__() missing 1 required positional argument: 'mapping'

之前的版本是swift2.1.1.post2,不存在类似问题。

Your hardware and system info
Write your system info like CUDA version/system/GPU/torch version here(在这里给出硬件信息和系统信息,如CUDA版本,系统,GPU型号和torch版本等)

  • swift 2.2.1
  • torch 2.3.0
  • transformers 4.40.2
  • datasets 2.18.2

Additional context
Add any other context about the problem here(在这里补充其他信息)
_LazyConfigMapping来自transformers.models.auto.configuration_auto

@tastelikefeet
Copy link
Collaborator

感觉是transformers版本不匹配,运行命令能发一下吗

@zodiacg
Copy link
Author

zodiacg commented Jul 9, 2024

命令难发呀…开发环境是隔离的。与数据集关系比较密切的参数:

python custom_ft.py \
    --model_type custom \
    --model_id_or_path ~/checkpoints/qwen2_7b_insttruct \
    --sft_type full \
    --dataset custom_pt_sharegpt4v_cap100k \
              custom_pt_sg4v_595k \
              custom_pt_flickr_cn \
              custom_pt_cogvlm_zh \
              custom_pt_cogvlm_en \
              custom_llavar_pt \
    --train_dataset_sample -1 \
    --val_dataset_sample 1000 \
    --preprocess_num_proc 32 \
    --num_train_epochs 1 \
    --max_length 800 \
    --check_dataset_strategy warning \
    --truncation_strategy delete

有可能跟自定义模型和数据集有关?我模型和数据集都是用注册的方式自定义添加的。

@tastelikefeet
Copy link
Collaborator

_LazyConfigMapping是模型使用的,看起来和模型有关,这个模型好像是qwen2-7b-instruct,能否model_type直接使用qwen2-7b-instruct呢

@zodiacg
Copy link
Author

zodiacg commented Jul 9, 2024

是改的多模态,所以model_type需要是自定义的。我再定位下看看。2.1.1到2.2.1之间有相关的改动吗?因为2.1.1.post2是正常的。

@tastelikefeet
Copy link
Collaborator

改动比较多,但是模型注册这里没有改动,所以才猜测是否是transformers版本问题,上面的栈信息似乎没有swift的栈,如果可能建议栈信息更多一些

@zodiacg
Copy link
Author

zodiacg commented Jul 9, 2024

反复只出现了这一个栈,也比较懵。transformers版本没动。目前swift建议的搭配版本是?

@tastelikefeet
Copy link
Collaborator

讲道理我们应该兼容的transformers的版本比较多,我自己最近也在基于llava改动多模态模型并注册,并没有出现这个问题啊
方便弄个新的conda环境试试嘛,重新装下依赖

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants