大模型主流微调框架概述:LLaMA Factory和DeepSpeed

大模型主流微调框架概述

一、主流微调框架选择原因

主流微调框架社区活跃,遇到问题便于查找解决方案。建议在了解基础框架原理的基础上,尝试大模型原生微调方式,加深理解。

框架名称概述主要特点应用场景适用人群技术优势开源情况
LLaMA Factory专为大语言模型设计的框架多模型支持,可适配多种大语言模型;用户友好,操作界面和上手难度对新手友好;高效微调,能快速完成模型微调;社区活跃,便于获取帮助和交流经验快速原型开发,利于快速搭建模型应用雏形;小型和中型数据集,能有效利用这类数据进行训练初学者,对大模型微调技术了解较少、希望快速入门实践的人群微调效率较高,能在较短时间内完成模型优化,节省时间成本开源,可自由获取和使用
DeepSpeed微软开发的深度学习优化库分布式训练,支持大规模集群训练;优化技术,运用多种先进优化算法;灵活性,可根据不同需求定制;丰富的文档和社区支持,便于学习和解决问题大规模分布式训练,适用于超大规模数据和模型的训练场景;资源有限环境中的超大规模模型训练,能高效利用有限资源专业用户,具备深度学习专业知识和经验,对模型训练有较高要求的开发者和研究人员在分布式训练和资源利用上表现出色,可处理超大规模模型和数据,提升训练效率开源,方便技术人员基于其进行二次开发

二、DeepSpeed框架

  1. 应用场景:适用于单机多卡、多机多卡的分布式大模型训练场景,在有限资源环境下进行大规模训练表现出色。
  2. 核心技术 - ZeRO(零冗余优化器)
    • ZeRO - 1:优化器状态分区,适合中等规模模型,能提高内存使用效率。
    • ZeRO - 2:优化器状态和梯度分区,支持更大规模模型,可显著提升训练速度。
    • ZeRO - 3:全面的状态分区,支持超大规模模型,具备超线性可扩展性和优化器卸载功能,但卸载内容过多会使训练时间变长,需寻找平衡点。
  3. 特点:可充分利用GPU资源,减少训练大模型的GPU成本;提供多种加速训练技术,如模型并行化、梯度累积、动态精度缩放、本地模式混合精度等;还具备分布式训练管理、内存优化和模型压缩等辅助工具。
  4. 适用人群:适合资深开发者和专业用户,要求对深度学习原理有深入了解。

三、LLaMA - Factory框架

  1. 支持的微调技术:涵盖多种微调方式,如PPO、DPO、KTO、LoRA、QLoRA、Full - tuning、冻结参数微调等。
  2. 特点
    • 多模型支持:能支持超过100种大型语言模型,包括LLaMA、ChatGLM、Falcon等。
    • 用户友好:提供零代码的图形用户界面LlamaBoard,操作简便,无需编写脚本,可直接勾选配置生成代码并运行训练。
    • 高效微调:集成多种参数高效微调技术,在有限资源下也能实现高效训练。
    • 社区活跃:便于获取帮助和交流经验。
  3. 应用场景:适用于快速原型开发和小型、中型数据集的验证。
  4. 适用人群:对新手入门友好,适合对大模型微调有需求但技术背景薄弱的用户。

四、大模型微调概述

  1. 通用大模型:了解其分类(文本、图像、多模态等),以及从通用到行业再到专业领域的概念。
  2. 企业应用:掌握大模型微调在企业中的应用前景和落地情况。
  3. 微调必要性:理解微调与RAG的区别,以及promote、agent等技术组件的区别和融合应用。
  4. 微调模型的方法和技术栈:明确调大模型所需的技术和操作方法。
  5. 可微调的模型范围:了解开源模型中可用于微调的范围,根据需求选择合适模型。

五、大模型微调方向

  1. 全量微调:优点是调整方向和期望效果契合度高,但成本高,可能存在强耦合性。
  2. 高效微调(部分微调)
    • 模型本身调整:包括逐层微调、冻结微调、动态微调。
    • 提示词方向调整:如Prompt Tuning、Prefix Tuning、P - tuning、P - tuning v2等。
    • 引入支持模块:LoRA(低秩矩阵微调,缩减权重范围,生成小块引入)和Adapter(在每一层进行降维升维后插入模块)。
  3. 强化学习:如RLHF(人类反馈学习),还有DPO、PPO等,后续课程会详细讲解。

六、课程总结与后续安排

  1. 课程总结:本次主要介绍了大模型微调的概念、必要性、微调方向以及两个主流微调框架DeepSpeed和LLaMA - Factory。
  2. 后续安排:后续会、详细讲解从原理到数据选取、处理等内容;不建议用个人电脑进行大模型微调,若电脑配置高(如4090 GPU)可尝试,否则建议租用按小时计费的服务器(如auto dl) 。
### 大模型微调框架概述大模型微调领域,有多种框架可供选择,每种框架都具有独特的特性优势。以下是几个常用的微调框架及其特性: #### 1. **Hugging Face Transformers** Hugging Face Transformers 是一个非常流行的库,支持广泛的预训练模型微调任务。它提供了简单易用的 API 详细的文档,使得开发者可以快速上手并完成复杂的微调工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "gpt2" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) text = "This is a test sentence." input_ids = tokenizer.encode(text, return_tensors="pt") output = model.generate(input_ids=input_ids, max_length=50) print(tokenizer.decode(output[0], skip_special_tokens=True)) ``` #### 2. **LLaMA-Factory** LLaMA-Factory 是由北京航空航天大学开源的一个低代码大模型训练框架,专注于大型语言模型(LLMs)的微调。它的主要特点是高效、低成本,并且提供友好的用户界面,允许用户无需编写复杂代码即可完成模型定制化调整[^2]。 - 支持多种数据集选项。 - 提供多样化的微调算法,如 LoRA、GaLore 等。 - 实现了实时监控评估功能,方便跟踪训练进展。 #### 3. **DeepSpeed** DeepSpeed 是微软推出的一款高性能深度学习优化库,特别适合大规模分布式训练场景下的模型微调。通过 DeepSpeed,用户可以在不牺牲精度的情况下显著降低内存消耗计算时间[^3]。 ```python import deepspeed from transformers import GPTNeoXForCausalLM, AutoTokenizer model = GPTNeoXForCausalLM.from_pretrained('EleutherAI/gpt-neox-20b') tokenizer = AutoTokenizer.from_pretrained('EleutherAI/gpt-neox-20b') training_args = { 'train_batch_size': 8, 'fp16': True, } engine, _, _, _ = deepspeed.initialize( args=None, model=model, model_parameters=[p for p in model.parameters() if p.requires_grad], config_params=training_args ) ``` #### 4. **Peft (Parameter-Efficient Fine-Tuning)** Peft 是一种参数高效的微调方法集合,旨在减少全量微调带来的资源开销问题。该框架实现了诸如 LoRA(Low-Rank Adaptation)、Prefix Tuning 等先进技术,在保持良好效果的同时大幅降低了存储需求[^4]。 --- ### 总结 以上列举了几类主流的大规模语言模型微调框架,具体选择取决于实际应用场景技术栈偏好。如果追求便捷性与灵活性,则可考虑 LLaMA-Factory 或 Peft;而对于更高级别的性能优化需求来说,DeepSpeed 可能会更加合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值