ms-swift icon indicating copy to clipboard operation
ms-swift copied to clipboard

deepspeed报错

Open jfy1016 opened this issue 8 months ago • 2 comments

CUDA_VISIBLE_DEVICES=0,1,2
MAX_PIXELS=1003520
swift sft
--model /home/jdn/.cache/modelscope/hub/models/deepseek-ai/deepseek-vl2-tiny
--dataset /home/jdn/deepseek/save_json/xunlian_CT_and_Xray.json
--train_type lora
--torch_dtype float16
--num_train_epochs 5
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--learning_rate 1e-4
--lora_rank 8
--lora_alpha 32
--target_modules all-linear
--freeze_vit true
--gradient_accumulation_steps 16
--lazy_tokenize true
--eval_steps 50
--save_steps 50
--save_total_limit 5
--logging_steps 5
--max_length 2048
--output_dir /home/jdn/deepseek/output
--warmup_ratio 0.05
--lazy_tokenize true
--dataloader_num_workers 2
--deepspeed zero3 报错Traceback (most recent call last): File "/home/jdn/ms-swift/swift/cli/sft.py", line 11, in sft_main() File "/home/jdn/ms-swift/swift/llm/train/sft.py", line 283, in sft_main return SwiftSft(args).main() File "/home/jdn/ms-swift/swift/llm/train/sft.py", line 29, in init super().init(args) File "/home/jdn/ms-swift/swift/llm/base.py", line 18, in init self.args = self._parse_args(args) File "/home/jdn/ms-swift/swift/llm/base.py", line 30, in _parse_args args, remaining_argv = parse_args(self.args_class, args) File "/home/jdn/ms-swift/swift/utils/utils.py", line 148, in parse_args args, remaining_args = parser.parse_args_into_dataclasses(argv, return_remaining_strings=True) File "/home/jdn/anaconda3/envs/jdn/lib/python3.10/site-packages/transformers/hf_argparser.py", line 339, in parse_args_into_dataclasses obj = dtype(**inputs) File "", line 300, in init File "/home/jdn/ms-swift/swift/llm/argument/train_args.py", line 160, in post_init self._init_deepspeed() File "/home/jdn/ms-swift/swift/llm/argument/train_args.py", line 178, in _init_deepspeed raise ValueError('DeepSpeed is not compatible with device_map. ' ValueError: DeepSpeed is not compatible with device_map. n_gpu: 3, local_world_size: 1.如何修改

jfy1016 avatar Apr 25 '25 02:04 jfy1016

@Jintao-Huang

jfy1016 avatar Apr 25 '25 02:04 jfy1016

NPROC_PER_NODE=3 \

Jintao-Huang avatar Apr 25 '25 15:04 Jintao-Huang

I encountered the same issue, set NPROC_PER_NODE to the same number as n_gpus work for me.

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
NPROC_PER_NODE=8 \
swift sft \
    --model /models/Qwen3-32B \
......................

drop-out avatar Jun 17 '25 09:06 drop-out

Traceback (most recent call last): File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/cli/sft.py", line 7, in sft_main() File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/train/sft.py", line 267, in sft_main return SwiftSft(args).main() File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/train/sft.py", line 27, in init super().init(args) File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/base.py", line 19, in init self.args = self._parse_args(args) File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/base.py", line 31, in _parse_args args, remaining_argv = parse_args(self.args_class, args) File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/utils/utils.py", line 151, in parse_args args, remaining_args = parser.parse_args_into_dataclasses(argv, return_remaining_strings=True) File "/usr/local/python3.10.15/lib/python3.10/site-packages/transformers/hf_argparser.py", line 358, in parse_args_into_dataclasses obj = dtype(**inputs) File "", line 312, in init File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/argument/train_args.py", line 166, in post_init self._init_deepspeed() File "/usr/local/python3.10.15/lib/python3.10/site-packages/swift/llm/argument/train_args.py", line 184, in _init_deepspeed raise ValueError('DeepSpeed is not compatible with device_map. ' ValueError: DeepSpeed is not compatible with device_map. n_gpu: 2, local_world_size: 1. [ERROR] 2025-06-25-06:18:38 (PID:257, Device:-1, RankID:-1) ERR99999 UNKNOWN applicaiton exception

tangquanwei avatar Jun 25 '25 06:06 tangquanwei

ASCEND_RT_VISIBLE_DEVICES=0,1 NPROC_PER_NODE=2

swift sft
... --train_type full
--torch_dtype bfloat16
--num_train_epochs 2
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--device_map auto
--learning_rate 1e-4
--target_modules all-linear
--freeze_vit true
--gradient_accumulation_steps $(expr 16 / $NPROC_PER_NODE)
--eval_steps 50
--save_steps 50
--save_total_limit 2
--logging_steps 5
--max_length 2048
--warmup_ratio 0.05
--dataloader_num_workers 0
--model_kwargs '{"device_map": null}'
--deepspeed zero0

仍然会报错 ValueError: DeepSpeed is not compatible with device_map. n_gpu: 2, local_world_size: 1.

tangquanwei avatar Jun 25 '25 06:06 tangquanwei

原因在于,这一块进程管理没有做好:NPROC_PER_NODE 和 --nproc_per_node 的差别,多卡运行的时候,请在运行脚本设置NPROC_PER_NODE,不要在swift sft 运行入参传 --device_map, --nproc_per_node ,因为这个会被transformer框架进程干预。

The reason is that the process management in this area is not done well: the difference between NPROC_PER_NODE and --nproc_per_node. When running with multiple cards, please set NPROC_PER_NODE in the running script, and do not pass --device_map and --nproc_per_node as parameters in Swift SFT, because this will be interfered with by the Transformer framework process.

Kevinwenya avatar Oct 23 '25 02:10 Kevinwenya

原因在于,这一块进程管理没有做好:NPROC_PER_NODE 和 --nproc_per_node 的差别,多卡运行的时候,请在运行脚本设置NPROC_PER_NODE,不要在swift sft 运行入参传 --device_map, --nproc_per_node ,因为这个会被transformer框架进程干预。

The reason is that the process management in this area is not done well: the difference between NPROC_PER_NODE and --nproc_per_node. When running with multiple cards, please set NPROC_PER_NODE in the running script, and do not pass --device_map and --nproc_per_node as parameters in Swift SFT, because this will be interfered with by the Transformer framework process.

没有传入也报错了

2catycm avatar Dec 08 '25 15:12 2catycm