# LLM高效微调详解-从Adpter、PrefixTuning到LoRA

一、背景

图片

目前NLP主流范式是在大量通用数据上进行预训练语言模型训练,然后再针对特定下游任务进行微调,达到领域适应(迁移学习)的目的。

图片Context Learning v.s. SFT

指令微调是预训练语言模型微调的主流范式,其目的是尽量让下游任务的形式尽量接近预训练任务。

从而减少下游任务和预训练任务之间的Gap, 实现预训练语言模型适应下游任务,而非下游任务去适应模型

图片

指令微调的效果要优于基于Zero/Few-shot的提示词工程的上下文学习。

但随着预训练语言模型进入LLM时代,其参数量愈发庞大。全量微调模型所有参数所需的显存早已水涨船高。

例如:

全参微调Qwen1.5-7B-Chat预估要2张80GB的A800,160GB显存 全参微调Qwen1.5-72B-Chat预估要20张80GB的A800,至少1600GB显存

而且,通常不同的下游任务还需要LLM的全量参数,对于算法服务部署来说简直是个灾难(当然,一种折衷做法就是全量微调后把增量参数进行SVD分解保存,推理时再合并参数 )。

图片

为了寻求一个不更新全部参数的廉价微调方案,之前一些预训练语言模型的高效微调(Parameter Efficient, PEFT)工作,要么插入一些参数或学习外部模块来适应新的下游任务。

图片

接下来将介绍如下4个PEFT方法(重点是主流的LoRA):

  • Adatper Tuning
  • Prompt Tuning
  • Prefix Tuning
  • LoRA

图片

二、参数高效微调

2.1 Adapter Tuning

Adapter Tuning试图在Transformer Layer的Self-Attetion+

### 微调 DeepSeek-llm-7B-Chat 模型 对于微调 DeepSeek-llm-7B-Chat 模型,主要目标是在保持原有对话流畅性和上下文理解的基础上,针对特定应用场景进一步提升性能。以下是具体方法: #### 准备数据集 为了有效微调模型,需准备高质量的数据集。该数据集应包含大量与预期应用场景密切相关的对话样本。这些样本不仅有助于改进模型的语言理解和生成能力,还能帮助调整其风格和语气以更好地适应实际需求。 #### 使用 Hugging Face Transformers 库 Hugging Face 提供了一个强大的工具包来简化这一过程。通过加载预训练好的 DeepSeek-llm-7B-Chat 权重文件作为起点,并在此基础上继续训练,可以显著减少计算成本并加快收敛速度。 ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments model_name_or_path = "DeepSeek-LM/deepseek-llm-7b-chat" tokenizer_name = model_name_or_path # 加载预训练模型 model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 定义训练参数 training_args = TrainingArguments( output_dir="./results", per_device_train_batch_size=8, num_train_epochs=3, logging_steps=10, save_strategy="epoch", evaluation_strategy="epoch", learning_rate=5e-5, ) ``` #### 自定义损失函数 考虑到 chat 版本已经过特殊优化,在某些情况下可能需要设计更复杂的损失函数来引导模型学习更加自然的人类交流模式。这可以通过引入额外的奖励机制或惩罚项实现,比如鼓励简洁明了的回答或是避免重复表述等特性[^1]。 #### 数据增强策略 采用适当的数据增强手段能够提高泛化能力和鲁棒性。例如,可以在输入序列中随机插入噪声词、交换相邻词语位置等方式增加多样性;也可以尝试多轮次对话模拟真实世界中的复杂交互情境[^2]。 #### 训练流程监控 在整个过程中持续跟踪评估指标变化趋势非常重要。除了常见的困惑度外,还可以考虑加入 BLEU 分数、ROUGE 值等人机评价标准用于衡量生成质量的好坏程度。同时也要密切关注 GPU 显存占用情况确保稳定运行。 完成上述步骤之后即可获得经过针对性强化后的 DeepSeek-llm-7B-Chat 模型版本,从而为特定业务提供更为精准有效的支持服务。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值