模型LoRA微调课程中,我学习了通过 LoRA 方法对 DeepSeek-R1-Distill-Qwen-1.5B 模型进行微调,使其能模仿《甄嬛传》中甄嬛的语气对话。下面是听课及实操过程中整理的部分学习笔记:
学习到的内容
LoRA :是一种高效参数微调方法,冻结原始模型参数,在 Attention 层的 QKV 等模块引入低秩旁路结构(含可训练矩阵 A 和 B),仅更新这两个矩阵,减少参数量和开销,同时保持较好性能。
另外还熟悉了昇思大模型平台和MindSpore 框架,了解了从环境准备、数据集处理、模型加载配置到启动微调的一个完整的流程。(小Tips,一开始没找到jupyter里面开发板相关的文档,后来发现课程里提到开发板实体硬件要用2.5.0的版本,而云上需要用到2.6.0的环境…)
实践过程(在云服务器及自己的conda虚拟环境中都做了尝试)
环境准备:卸载旧版本,安装指定版本的 mindspore、mindnlp 和 openmind_hub。
数据集处理:用 openmind_hub 下载 huanhuan.json 数据集,通过 process_func 函数处理,构建对话模板,生成 input_ids 等,统一序列长度为 64,并裁剪数据集。
模型微调:加载基础模型和 tokenizer,配置 LoRA 参数,设置训练参数与回调函数(用于保存 LoRA 适配器权重),启动训练。
问题及解决
- 训练慢:用
disable_multi_thread()
禁用多线程提升性能。 - 数据集格式问题:检查处理函数逻辑,调整生成逻辑确保格式正确。
- 权重占空间大:通过自定义回调函数移除基础模型权重,节约空间。
- 版本兼容问题:严格按要求安装指定版本库解决。