from swift.llm import DatasetName, ModelType, SftArguments, sft_main
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
sft_args = SftArguments(
model_type=ModelType.qwen1half_7b_chat,
dataset=[DatasetName.ms_bench_mini],
train_dataset_sample=1000,
logging_steps=5,
max_length=2048,
learning_rate=5e-5,
warmup_ratio=0.4,
output_dir='output',
lora_target_modules=['ALL'],
self_cognition_sample=500,
model_name=['小黄', 'Xiao Huang'],
model_author=['魔搭', 'ModelScope'])
output = sft_main(sft_args)
best_model_checkpoint = output['best_model_checkpoint']
print(f'best_model_checkpoint: {best_model_checkpoint}')
print(f'''CUDA_VISIBLE_DEVICES=0 swift export \
--ckpt_dir {best_model_checkpoint} \
--quant_bits 4 --quant_method awq \
--merge_lora true''')
根据您提供的代码和描述,问题的核心在于执行量化操作时出现了 503 错误。以下是可能的原因及解决方案:
qwen1half_7b_chat
模型的微调和量化需要较高的显存支持。即使使用 A10 GPU(24 GB 显存),在量化过程中可能会因为显存不足导致失败。nvidia-smi
如果显存接近满载,建议释放其他进程或重启环境。
--quant_bits
参数从 4
调整为 8
,以减少显存需求:
CUDA_VISIBLE_DEVICES=0 swift export \
--ckpt_dir {best_model_checkpoint} \
--quant_bits 8 --quant_method awq \
--merge_lora true
awq
是一种高效的量化方法,但并非所有模型都完全支持该方法。如果 qwen1half_7b_chat
模型未经过适配,可能会导致量化失败。gptq
或 bitsandbytes
:
CUDA_VISIBLE_DEVICES=0 swift export \
--ckpt_dir {best_model_checkpoint} \
--quant_bits 4 --quant_method gptq \
--merge_lora true
qwen1half_7b_chat
模型支持 awq
方法。如果不支持,建议参考官方文档或联系技术支持。--merge_lora true
参数用于合并 LoRA 权重。如果 LoRA 微调后的权重文件损坏或格式不正确,可能导致合并失败。best_model_checkpoint
路径下是否存在完整的 LoRA 权重文件(如 adapter_model.bin
)。CUDA_VISIBLE_DEVICES=0 swift export \
--ckpt_dir {best_model_checkpoint} \
--quant_bits 4 --quant_method awq
swift
工具链可能存在版本兼容性问题,导致量化操作失败。swift
工具链。可以通过以下命令更新:
pip install --upgrade ms-swift
ms_bench_mini
数据集格式正确,并且与 qwen1half_7b_chat
模型兼容。max_length
或 train_dataset_sample
参数值,以减少显存占用:
sft_args = SftArguments(
model_type=ModelType.qwen1half_7b_chat,
dataset=[DatasetName.ms_bench_mini],
train_dataset_sample=500, # 减少样本数量
max_length=1024, # 减少最大长度
learning_rate=5e-5,
warmup_ratio=0.4,
output_dir='output',
lora_target_modules=['ALL'],
self_cognition_sample=500,
model_name=['小黄', 'Xiao Huang'],
model_author=['魔搭', 'ModelScope']
)
swift
工具链兼容。建议使用 CUDA 11.7 或更高版本。load_in_4bit
参数加载模型,以减少显存占用。通过上述分析,您可以按照以下步骤逐步排查问题: 1. 检查显存占用,必要时降低量化精度或减少超参数规模。 2. 更换量化方法或禁用 LoRA 合并功能,验证是否为工具链或权重文件问题。 3. 确保数据集和超参数配置正确,并升级 swift
工具链至最新版本。
如果问题仍未解决,请提供完整的错误日志以便进一步分析。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352