大模型增量微调的各种方法

本文概述了大模型增量微调的发展,主要介绍了添加式(如适配器和提示微调)、指定式(如仅优化特定层)和重参数化(如LoRA)三种方法。这些方法通过高效地调整部分参数,实现了在保持模型结构不变的情况下提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大模型增量微调发展至今,已经涌现出一系列方法,尽管这些方法可能有不同的模型结构和训练策略,但它们都秉承参数高效的基本原则。根据具体的训练策略,可以将增量微调分为三大类:添加式方法、指定式方法和重参数化方法。

添加式方法会在模型中引入本身不存在的参数,并且只训练额外引入的这部分参数而保持其他参数不变;指定式方法则是指定模型中一部分特定的参数可训练,而保持其他参数不变;重参数化方法稍有不同,它是将模型的适配过程(或者是参数的变化)重新转化为一个参数高效的形式,如低维或者低秩的形式。

一、添加式方法

添加式增量微调方法是在大模型中添加额外的参数,但这些参数的位置和结构可能会有所不同。

1、适配器微调

适配器微调(adapter-tuning)是增量微调的开创性工作。这种方法的核心思想是在大模型中插入轻量级的神经网络模块,即适配器。在下游适配的过程中,仅对这些适配器的参数进行优化,其他参数保持不变。具体而言,一个适配器包括一个下投影线性层、一个非线性激活层和一个上投影线性层。适配器微调首次证明了仅调整0.5%~8%的参数即可达到与全参数微调相当的效果。在此基础上,适配器微调又衍生出了一系列的变体,如将适配器的参数复杂度从O(kr)降低到O(d+r)的Compacter方法,以及将适配器移出模型本身在模型之外进行单独优化的梯侧调整(LadderSideTuning,LST)方法等。

2、基于“提示”的方法

基于提示的重要开创性方法是前缀微调[6](prefix-tuning),它将可训练的“软提示”(也叫前缀)插入到模型的输入和隐状态表示层之前,并且在适配过程中只训练这些软提示。一个更加简化的方法是提示微调(prompt

### 增量预训练与微调中的主要挑战 #### 高质量数据获取困难 对于垂直化训练而言,获得并处理大量的高质量专业领域数据是一项艰巨的任务。这些数据不仅数量庞大,而且需要具备高度的相关性和准确性来支持模型的有效训练[^1]。 #### 平衡特定能力和通用性能 当致力于提高某一具体领域的效能时,如何确保不会削弱该模型在其他广泛任务上的表现也是一个重要考量因素。这意味着任何针对特殊应用场景所做的优化都应当谨慎实施,以免影响其跨行业的适用范围。 #### 资源消耗巨大 相比起构建一般性的AI系统来说,在某个专门方向上深入挖掘往往意味着更高的成本支出——无论是人力方面还是物质条件上皆然如此。特别是涉及到复杂的数据清洗、标注以及后续维护工作时更是如此。 #### 模型持续更新的需求 随着行业环境和技术趋势的变化,原有的专业知识可能会变得过时或不再完全适用;因此,为了维持最佳的服务水平,就必须定期对企业内部积累的新资料加以利用,并据此调整现有算法结构及其参数设置[^2]。 --- ### 解决方案概述 #### 利用Scaling Laws指导资源配置 基于对scaling laws的研究成果表明,适当扩大神经网络架构尺寸(如增加层数/节点数)、扩充样本集容量均有助于改善最终产出的质量。遵循这一原则可以帮助决策者更加科学合理地分配有限的研发预算给到最有可能带来回报的地方去。 #### 实施Compute-Optimal策略 按照compute-optimal理论建议的比例同步扩展输入素材的数量级和权重矩阵维度,则可以在一定程度上缓解因硬件设施不足而导致的时间延迟现象发生频率过高问题,从而加快整个开发周期进度条向前推进速度。 #### 推动Domain Continue Pretraining 考虑到基础版本可能存在某些局限性无法很好满足实际应用场合下的多样化诉求,故而有必要选取合适的初始状态作为起点继续开展针对性更强的再教育过程。此做法既有利于继承先前所学到的知识经验又便于引入新鲜血液注入其中实现双赢局面[^4]。 #### 应用检索增强生成技术 面对动态变化着的企业运营状况所带来的不确定性风险,采用类似于retrieval-augmented generation (RAG) 的框架或许不失为一种明智的选择。它允许机器一边查询外部数据库寻找最新资讯补充进来,另一边则依据当前上下文语境灵活组合成连贯表达形式输出给用户端查看参考使用[^3]。 ```python def domain_continue_pretrain(model, new_data): """ 对已有模型进行领域内增量预训练 :param model: 已有大语言模型实例 :param new_data: 新增的专业领域数据集合 """ # 更新词典以适应新词汇 update_vocab(model.vocab, new_data) # 使用新增数据进一步训练模型 train_model(model, new_data) def retrieval_augmented_generation(query, knowledge_base): """ 结合检索机制辅助生成回复 :param query: 用户提出的询问字符串 :param knowledge_base: 可供查阅的信息库对象 """ retrieved_info = search(knowledge_base, query) response = generate_response(retrieved_info + context_from_query(query)) return response ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值