模型微调
Finetune(微调)是指将预训练模型在特定任务的数据集上进行训练,使得训练完成的新模型可以在保持原有通用能力的基础上,强化其在训练数据集上的能力。这项技术让用户在使用最先进的模型的过程中,无需从头开始训练模型,从而降低计算资源的使用成本。在这个章节,我们将介绍如何使用openMind Library进行模型微调。
PyTorch模型微调
transformers库是PyTorch模型开发的主流套件。以此为基础结合PyTorch侧主流生态库,openMind Library为用户提供了一键式训练启动命令,帮助用户快速实现从数据处理、多站点权重加载,到低参数微调、量化适配,以及微调和训练跟踪的全流程功能。
当前支持特性如下:
- 微调算法:SFT
- 高效参数微调算法:Full,LoRA,QLoRA
- 加速优化:npu_fusion_attention,npu_rms_norm
- 训练监控:SwanLab
- 分布式训练:单机单卡,单机多卡,DeepSpeed
- 导出:LoRA权重合并
MindSpore模型微调
mindformers库是MindSpore模型开发的主流套件,为了方便用户进行模型微调,openMind Library对Auto Classes、Trainer和TrainingArguments接口统一进行了封装。
openMind Library封装的Auto Classes接口如下表所示。其余的Auto Classes接口openmind Library保留原生使用方式,如需使用,用户可自行从mindformers库中导入。
接口 MindSpore AutoConfig ✅ AutoTokenizer ✅ AutoProcessor ✅ AutoImageProcessor ✅ AutoFeatureExtractor ❌ AutoModel ✅ AutoModelForCausalLM ✅ AutoModelForSequenceClassification ✅ 上述Auto Classes接口的具体参数说明,可参考openMind Library提供的Auto Classes接口说明文档。
针对MindSpore框架,MindSpore框架用户可以保持原有的mindformers库的使用习惯,使用openMind Library提供的Trainer和TrainingArguments进行微调。具体参数支持列表参考openMind Library提供的Trainer和TrainingArguments的接口说明文档。
接下来,我们将在各个子章节分别介绍如何使用openMind对PyTorch和MindSpore模型进行微调。