modelscope / ms-swift

Use PEFT or Full-parameter to finetune 350+ LLMs or 90+ MLLMs. (Qwen2.5, GLM4v, Internlm2.5, Yi, Llama3.1, Llava-Video, Internvl2, MiniCPM-V-2.6, Deepseek, Baichuan2, Gemma2, Phi3-Vision, ...)
https://swift.readthedocs.io/zh-cn/latest/Instruction/index.html
Apache License 2.0
3.49k stars 299 forks source link

运行大模型微调的例子中简单使用报错 #124

Closed weibo021 closed 10 months ago

weibo021 commented 10 months ago

运行大模型微调的例子examples/pytorch/llm/README_CN.md中简单使用: 环境:win10 anaconda python3.9 显卡:3090

错误信息: [INFO:swift] Model file modeling_qwen.py is different from the latest version v1.1.6,This is because you are using an older version or the file is updated manually. 0%| | 0/1 [00:00<?, ?it/s]Traceback (most recent call last): File "", line 1, in File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 116, in spawn_main exitcode = _main(fd, parent_sentinel) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 125, in _main prepare(preparation_data) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 236, in prepare _fixup_main_from_path(data['init_main_from_path']) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path main_content = runpy.run_path(main_path, File "D:\Anaconda3\envs\Swift_py39\lib\runpy.py", line 288, in run_path return _run_module_code(code, init_globals, run_name, File "D:\Anaconda3\envs\Swift_py39\lib\runpy.py", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File "D:\Anaconda3\envs\Swift_py39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "D:\Workshop\swift\examples\pytorch\llm\test.py", line 19, in best_ckpt_dir = sft_main(sft_args) File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\swift\llm\utils\utils.py", line 193, in x_main return llm_x(args) File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\swift\llm\sft.py", line 232, in llm_sft trainer.train(training_args.resume_from_checkpoint) File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\transformers\trainer.py", line 1591, in train return inner_training_loop( File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\transformers\trainer.py", line 1870, in _inner_training_loop for step, inputs in enumerate(epoch_iterator): File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\accelerate\data_loader.py", line 448, in iter dataloader_iter = super().iter() File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\torch\utils\data\dataloader.py", line 442, in iter return self._get_iterator() File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\torch\utils\data\dataloader.py", line 388, in _get_iterator return _MultiProcessingDataLoaderIter(self) File "D:\Anaconda3\envs\Swift_py39\lib\site-packages\torch\utils\data\dataloader.py", line 1043, in init w.start() File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\process.py", line 121, in start self._popen = self._Popen(self) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\context.py", line 224, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\context.py", line 327, in _Popen return Popen(process_obj) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\popen_spawn_win32.py", line 45, in init prep_data = spawn.get_preparation_data(process_obj._name) File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 154, in get_preparation_data _check_not_importing_main() File "D:\Anaconda3\envs\Swift_py39\lib\multiprocessing\spawn.py", line 134, in _check_not_importing_main raise RuntimeError(''' RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase.

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

0%| | 0/1 [00:00<?, ?it/s]

Jintao-Huang commented 10 months ago

dataloader_num_workers=0试试

weibo021 commented 10 months ago

dataloader_num_workers=0试试

谢谢,解决了