MiniCPM icon indicating copy to clipboard operation
MiniCPM copied to clipboard

[Bug]: RuntimeError

Open WoNiuHu opened this issue 1 year ago • 1 comments

Is there an existing issue ? / 是否已有相关的 issue ?

  • [X] I have searched, and there is no existing issue. / 我已经搜索过了,没有相关的 issue。

Describe the bug / 描述这个 bug

执行命令如下。 1 formatted_time=$(date +"%Y%m%d%H%M%S") 2 echo $formatted_time 3 4 export NCCL_P2P_DISABLE=1 5 export NCCL_IB_DISABLE=1 6 7 mlx worker launch python finetune.py
8 --model_name_or_path MiniCPM-2B-sft-bf16
9 --output_dir output/OCNLILoRA/$formatted_time/
10 --train_data_path data/ocnli_public_chatml/train.json
11 --eval_data_path data/ocnli_public_chatml/dev.json
12 --learning_rate 5e-5 --per_device_train_batch_size 16
13 --per_device_eval_batch_size 128 --model_max_length 128 --bf16 --use_lora false
14 --gradient_accumulation_steps 1 --warmup_steps 100
15 --max_steps 1000 --weight_decay 0.01
16 --evaluation_strategy steps --eval_steps 500
17 --save_strategy steps --save_steps 500 --seed 42
18 --log_level info --logging_strategy steps --logging_steps 10
19 --deepspeed configs/ds_config_zero3_offload.json

Detected ZeRO Offload and non-DeepSpeed optimizers: This combination should work as long as the custom optimizer has both CPU and GPU implementation (except LAMB) ***** Running training ***** Num examples = 50,486 Num Epochs = 1 Instantaneous batch size per device = 16 Total train batch size (w. parallel, distributed & accumulation) = 16 Gradient Accumulation steps = 1 Total optimization steps = 1,000 Number of trainable parameters = 2,949,120 0%| | 0/1000 [00:00<?, ?it/s][rank0]: Traceback (most recent call last): [rank0]: File "finetune.py", line 221, in [rank0]: trainer.train() [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/transformers/trainer.py", line 1938, in train [rank0]: return inner_training_loop( [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/transformers/trainer.py", line 2279, in _inner_training_loop [rank0]: tr_loss_step = self.training_step(model, inputs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/transformers/trainer.py", line 3318, in training_step [rank0]: loss = self.compute_loss(model, inputs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/transformers/trainer.py", line 3363, in compute_loss [rank0]: outputs = model(**inputs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl [rank0]: return self._call_impl(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl [rank0]: return forward_call(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/accelerate/utils/operations.py", line 820, in forward [rank0]: return model_forward(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/accelerate/utils/operations.py", line 808, in call [rank0]: return convert_to_fp32(self.model_forward(*args, **kwargs)) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/amp/autocast_mode.py", line 43, in decorate_autocast [rank0]: return func(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/peft/peft_model.py", line 1577, in forward [rank0]: return self.base_model( [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl [rank0]: return self._call_impl(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl [rank0]: return forward_call(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/peft/tuners/tuners_utils.py", line 188, in forward [rank0]: return self.model.forward(*args, **kwargs) [rank0]: File "/root/.cache/huggingface/modules/transformers_modules/MiniCPM-2B-sft-bf16/modeling_minicpm.py", line 1196, in forward [rank0]: outputs = self.model( [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl [rank0]: return self._call_impl(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl [rank0]: return forward_call(*args, **kwargs) [rank0]: File "/root/.cache/huggingface/modules/transformers_modules/MiniCPM-2B-sft-bf16/modeling_minicpm.py", line 1040, in forward [rank0]: inputs_embeds = self.embed_tokens(input_ids) * self.config.scale_emb [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl [rank0]: return self._call_impl(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl [rank0]: return forward_call(*args, **kwargs) [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/modules/sparse.py", line 164, in forward [rank0]: return F.embedding( [rank0]: File "/root/anaconda3/envs/minicpm/lib/python3.8/site-packages/torch/nn/functional.py", line 2267, in embedding [rank0]: return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse) [rank0]: RuntimeError: 'weight' must be 2-D 0%| | 0/1000 [00:01<?, ?it/s]

To Reproduce / 如何复现

RuntimeError

Expected behavior / 期望的结果

No response

Screenshots / 截图

No response

Environment / 环境

- OS: [e.g. Ubuntu 20.04]
- Pytorch: [e.g. torch 2.0.0]
- CUDA: [e.g. CUDA 11.8]
- Device: [e.g. A10, RTX3090]

Additional context / 其他信息

No response

WoNiuHu avatar Sep 24 '24 04:09 WoNiuHu

你好,请问你用的是哪个代码进行sft训练的,感觉跟我们官方推荐的代码以及llamafactory都不一样

LDLINGLINGLING avatar Sep 24 '24 07:09 LDLINGLINGLING