使用魔搭来下载的模型,测试模型可以正常使用。
安装配置最新的modelscope/swift , 然后使用提供的example里面的scripts来进行测试,运行qwen-14b-chat-int8/qlora/sft.sh , 装载完模型过后,报错,信息如下:
Loading checkpoint shards: 100%|██████████████████████████████████████████████████████████████████████| 8/8 [00:07<00:00, 1.13it/s]
[INFO:swift] registered_causal_mask to cuda
[INFO:swift] Setting lora_target_modules: ['c_proj', 'w2', 'c_attn', 'w1']
Traceback (most recent call last):
File "/root/autodl-tmp/swift/examples/pytorch/llm/scripts/qwen_14b_chat_int8/qlora/../../../llm_sft.py", line 7, in <module>
best_ckpt_dir = sft_main()
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/llm/utils/utils.py", line 193, in x_main
return llm_x(args)
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/llm/sft.py", line 77, in llm_sft
model = Swift.prepare_model(model, lora_config)
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/base.py", line 495, in prepare_model
return SwiftModel(model, config, **kwargs)
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/base.py", line 60, in __init__
self.adapters[DEFAULT_ADAPTER] = self._prepare_model(
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/base.py", line 299, in _prepare_model
return SWIFT_MAPPING[config.swift_type][1].prepare_model(
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/lora.py", line 223, in prepare_model
LoRA._dynamic_patch_lora(
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/lora.py", line 328, in _dynamic_patch_lora
lora_module = QuantLinear(
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/swift/tuners/lora.py", line 107, in __init__
self.active_adapter = adapter_name
File "/root/anaconda3/envs/qwen/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1674, in __setattr__
super().__setattr__(name, value)
AttributeError: can't set attribute 'active_adapter'
然后又测试了qwen-14b-chat-int4的脚本,发现问题是一样的。
请问大致问题是什么?有没有啥解决办法?
从你提供的错误信息来看,问题似乎出在LoRA模块上。具体来说,当你尝试动态修补LoRA时,出现了AttributeError: can't set attribute 'active_adapter'
的错误。
这个错误可能意味着你的模型没有正确初始化,或者你的代码在处理LoRA模块时出现了问题。为了解决这个问题,你可以尝试以下几种方法:
确保你已经正确安装了所有必要的依赖库,包括PyTorch、Swift和LoRA。
检查你的代码,确保你没有在不应该的地方修改或访问LoRA模块的属性。
检查你的模型结构,确保所有的层都已经被正确初始化。
如果可能的话,尝试使用一个更简单的模型或数据集来重现这个问题,以便更好地理解问题的根源。
该问题可能是由于当前版本的Swift模型适配器不兼容LORA模块。目前魔搭最新版的Swift支持LORA模型适配器,但是在运行LORA模型时可能会出现问题。可以尝试以下几种解决方案: