大模型主流微调框架概述
一、主流微调框架选择原因
主流微调框架社区活跃,遇到问题便于查找解决方案。建议在了解基础框架原理的基础上,尝试大模型原生微调方式,加深理解。
框架名称 | 概述 | 主要特点 | 应用场景 | 适用人群 | 技术优势 | 开源情况 |
---|---|---|---|---|---|---|
LLaMA Factory | 专为大语言模型设计的框架 | 多模型支持,可适配多种大语言模型;用户友好,操作界面和上手难度对新手友好;高效微调,能快速完成模型微调;社区活跃,便于获取帮助和交流经验 | 快速原型开发,利于快速搭建模型应用雏形;小型和中型数据集,能有效利用这类数据进行训练 | 初学者,对大模型微调技术了解较少、希望快速入门实践的人群 | 微调效率较高,能在较短时间内完成模型优化,节省时间成本 | 开源,可自由获取和使用 |
DeepSpeed | 微软开发的深度学习优化库 | 分布式训练,支持大规模集群训练;优化技术,运用多种先进优化算法;灵活性,可根据不同需求定制;丰富的文档和社区支持,便于学习和解决问题 | 大规模分布式训练,适用于超大规模数据和模型的训练场景;资源有限环境中的超大规模模型训练,能高效利用有限资源 | 专业用户,具备深度学习专业知识和经验,对模型训练有较高要求的开发者和研究人员 | 在分布式训练和资源利用上表现出色,可处理超大规模模型和数据,提升训练效率 | 开源,方便技术人员基于其进行二次开发 |
二、DeepSpeed框架
- 应用场景:适用于单机多卡、多机多卡的分布式大模型训练场景,在有限资源环境下进行大规模训练表现出色。
- 核心技术 - ZeRO(零冗余优化器)
- ZeRO - 1:优化器状态分区,适合中等规模模型,能提高内存使用效率。
- ZeRO - 2:优化器状态和梯度分区,支持更大规模模型,可显著提升训练速度。
- ZeRO - 3:全面的状态分区,支持超大规模模型,具备超线性可扩展性和优化器卸载功能,但卸载内容过多会使训练时间变长,需寻找平衡点。
- 特点:可充分利用GPU资源,减少训练大模型的GPU成本;提供多种加速训练技术,如模型并行化、梯度累积、动态精度缩放、本地模式混合精度等;还具备分布式训练管理、内存优化和模型压缩等辅助工具。
- 适用人群:适合资深开发者和专业用户,要求对深度学习原理有深入了解。
三、LLaMA - Factory框架
- 支持的微调技术:涵盖多种微调方式,如PPO、DPO、KTO、LoRA、QLoRA、Full - tuning、冻结参数微调等。
- 特点
- 多模型支持:能支持超过100种大型语言模型,包括LLaMA、ChatGLM、Falcon等。
- 用户友好:提供零代码的图形用户界面LlamaBoard,操作简便,无需编写脚本,可直接勾选配置生成代码并运行训练。
- 高效微调:集成多种参数高效微调技术,在有限资源下也能实现高效训练。
- 社区活跃:便于获取帮助和交流经验。
- 应用场景:适用于快速原型开发和小型、中型数据集的验证。
- 适用人群:对新手入门友好,适合对大模型微调有需求但技术背景薄弱的用户。
四、大模型微调概述
- 通用大模型:了解其分类(文本、图像、多模态等),以及从通用到行业再到专业领域的概念。
- 企业应用:掌握大模型微调在企业中的应用前景和落地情况。
- 微调必要性:理解微调与RAG的区别,以及promote、agent等技术组件的区别和融合应用。
- 微调模型的方法和技术栈:明确调大模型所需的技术和操作方法。
- 可微调的模型范围:了解开源模型中可用于微调的范围,根据需求选择合适模型。
五、大模型微调方向
- 全量微调:优点是调整方向和期望效果契合度高,但成本高,可能存在强耦合性。
- 高效微调(部分微调)
- 模型本身调整:包括逐层微调、冻结微调、动态微调。
- 提示词方向调整:如Prompt Tuning、Prefix Tuning、P - tuning、P - tuning v2等。
- 引入支持模块:LoRA(低秩矩阵微调,缩减权重范围,生成小块引入)和Adapter(在每一层进行降维升维后插入模块)。
- 强化学习:如RLHF(人类反馈学习),还有DPO、PPO等,后续课程会详细讲解。
六、课程总结与后续安排
- 课程总结:本次主要介绍了大模型微调的概念、必要性、微调方向以及两个主流微调框架DeepSpeed和LLaMA - Factory。
- 后续安排:后续会、详细讲解从原理到数据选取、处理等内容;不建议用个人电脑进行大模型微调,若电脑配置高(如4090 GPU)可尝试,否则建议租用按小时计费的服务器(如auto dl) 。