昇腾910A跑通llamafactory微调Qwen2.5-72B,解决RuntimeError: Error building extension 'cpu_adam'报错
收藏回复举报
昇腾910A跑通llamafactory微调Qwen2.5-72B,解决RuntimeError: Error building extension 'cpu_adam'报错
发表于2024-12-05 11:15:22
0 查看

硬件:Atlas800-9000,8卡910A

驱动版本:23.0.0

CANN:8.0.RC3.alpha001

torch_npu:2.1.0.post6

Qwen2.5_72B微调配置文件:

### model 

model_name_or_path: /home/aicc/Qwen2.5-72B-Instruct/ 

### method 

stage: sft 

do_train: true 

finetuning_type: lora 

lora_target: all 

deepspeed: examples/deepspeed/ds_z3_offload_config.json 

### dataset 

dataset: alpaca_en_demo 

template: qwen 

cutoff_len: 2048 

max_samples: 1000 

overwrite_cache: true 

preprocessing_num_workers: 16 

### output 

output_dir: saves/qwen2_72b 

logging_steps: 10 

save_steps: 500 

plot_loss: true 

overwrite_output_dir: true 

### train 

per_device_train_batch_size: 1 

gradient_accumulation_steps: 2 

learning_rate: 1.0e-4 

num_train_epochs: 3.0 

lr_scheduler_type: cosine 

warmup_ratio: 0.1 

fp16: true 

ddp_timeout: 180000000 

### eval 

val_size: 0.1 

per_device_eval_batch_size: 1 

eval_strategy: steps 

eval_steps: 500 

初次拉起训练,权重可以正常加载,但加载完权重后出现cpu_adam方面报错。

主要报错信息如下:

RuntimeError: Error building extension 'cpu_adam' 

ImportError: /root/.cache/torch_extensions/py310_cpu/cpu_adam/cpu_adam.so: cannot open shared object file: No such file or directory 

AttributeError: 'DeepSpeedCPUAdam' object has no attribute 'ds_opt_adam'

问题原因:经过一系列排查(包括更换deepspeed版本和transformers版本均不能解决问题),最终发现是gcc版本较低,报错环境gcc版本为7.3.0,由于训练拉起过程需要依赖gcc对cpu侧进行算子编译,由于gcc问题导致算子编译失败,通过拉取镜像进行测试发现gcc7.5.0及以上可以正常训练,之后在物理机上将gcc升级到7.5.0后同样可以正常拉起训练。

gcc编译安装参考链接:linux升级gcc版本详细教程_gcc升级-CSDN博客

我要发帖子