文章目录前言一、什么是模型微调二、常见微调方式总览三、Full Fine-tuning 全参数微调优点缺点适合场景四、LoRA 微调优点缺点适合场景推荐程度五、QLoRA 微调优点缺点适合场景对 Intel Arc 显卡的情况六、Freeze 微调优点缺点适合场景七、Prompt Tuning / Prefix Tuning / P-Tuning常见方式优点缺点适合场景八、SFT 指令微调多轮对话数据格式SFT 的作用常见训练组合九、DPO / ORPO / PPO 偏好优化1. 常见偏好优化方法2. 优点3. 缺点4. 适合场景十、不同微调方式的区别总结1. 从训练参数量看2. 从显存需求看3. 从效果上限看4. 从入门难度看前言在学习大模型微调时经常会看到很多名词Full Fine-tuningLoRAQLoRAFreezePrompt TuningPrefix TuningSFTDPOORPOPPO这些方式看起来都叫“微调”但它们的训练成本、适用场景和效果差别很大。本文用比较通俗的方式整理一下目前大模型微调常见的几种方式以及它们之间的区别。对于个人电脑用户尤其是使用消费级显卡的用户也会给出一些选择建议。一、什么是模型微调大模型微调可以简单理解为在已有基础模型的能力之上用自己的数据继续训练让模型更适合某个任务、领域或回答风格。比如基础模型本来已经会中文问答但你希望它更像企业客服法律助手医疗问答助手角色扮演模型代码助手固定格式输出助手某个业务系统的问答机器人这时候就可以通过微调让模型更贴近你的需求。二、常见微调方式总览常见方式可以分为几类微调方式是否训练全部参数显存需求入门难度适合个人电脑Full Fine-tuning 全参数微调是极高高不推荐LoRA否只训练少量 adapter 参数较低低推荐QLoRA否4bit 加载基础模型只训练 LoRA更低中等偏高NVIDIA 更合适Freeze 微调否只训练部分层中等中等一般Prompt / Prefix Tuning否只训练提示向量很低中等可尝试DPO / ORPO / PPO偏好优化不是普通 SFT中高高后期再学三、Full Fine-tuning 全参数微调Full Fine-tuning 是最传统的微调方式。它会更新模型的全部参数。比如一个 7B 模型有 70 亿参数全参数微调就是这 70 亿参数都参与训练和更新。优点效果上限高可以深度改变模型能力适合大规模领域适配适合有大量高质量数据的场景缺点显存需求极高训练成本高训练速度慢容易把原模型能力训坏对数据质量要求很高适合场景全参数微调更适合大公司实验室有多张高端 GPU 的团队需要深度定制基础模型的项目对于普通个人用户来说一般不推荐从全参数微调开始。四、LoRA 微调LoRA 是目前个人用户最常用的大模型微调方式。LoRA 的核心思想是不直接修改大模型原始参数而是在模型部分层旁边增加一小部分可训练参数。可以把它理解为原模型不大动只训练一个外挂补丁。训练完成后通常会得到一个 LoRA adapter 文件而不是一个完整的新模型。优点显存需求低很多训练速度更快训练产物小可以保存多个不同 LoRA不容易破坏原模型能力非常适合个人学习和实验缺点效果上限通常低于全参数微调不适合把模型训练成完全不同的能力体系基础模型本身不会的东西LoRA 不一定能学好适合场景LoRA 适合指令微调中文问答风格优化企业客服话术角色扮演固定格式输出行业知识问答小规模数据微调推荐程度对于个人用户尤其是刚开始学习 LLaMA-Factory 的用户LoRA 是最推荐的方式。五、QLoRA 微调QLoRA 可以看作是 LoRA 的省显存版本。它的做法是用 4bit 量化方式加载基础模型只训练 LoRA 参数。也就是说模型主体被压缩成 4bit外面再挂一个 LoRA adapter 进行训练。优点比普通 LoRA 更省显存可以在较小显存上尝试更大的模型适合 7B、14B 等模型的低成本微调缺点依赖量化库很多方案依赖 CUDA 和 bitsandbytes对非 NVIDIA 显卡兼容性不一定好环境配置更容易踩坑适合场景QLoRA 比较适合NVIDIA 显卡用户显存有限但想训练更大模型的用户已经熟悉 LoRA 训练流程的用户对 Intel Arc 显卡的情况如果使用 Intel Arc A770 这类显卡需要注意PyTorch 一般走 XPU 后端常见 QLoRA 生态主要围绕 CUDAbitsandbytes 很多功能对 Intel Arc 不友好新手不建议一上来就做 QLoRA更稳的路线是先用普通 LoRA 跑通。六、Freeze 微调Freeze 微调是冻结大部分模型参数只训练其中一部分层。比如只训练最后几层只训练输出层冻结 embedding 和前面大部分 transformer 层优点比全参数微调省显存比全参数训练更稳定一些训练参数量更少缺点效果不一定比 LoRA 好调参相对麻烦在当前大模型微调生态中不如 LoRA 常用适合场景Freeze 更适合特定实验小模型任务分类任务对模型结构比较熟悉的用户对于大部分 LLM 微调任务LoRA 更常用。七、Prompt Tuning / Prefix Tuning / P-Tuning这一类方法不是大量修改模型参数而是训练一小段“软提示词”或“前缀向量”。可以理解为不是直接教模型新知识而是训练一个隐形提示词让模型更容易进入某种任务状态。常见方式Prompt TuningPrefix TuningP-TuningP-Tuning v2优点参数量非常小显存占用低训练产物很小适合轻量任务缺点效果通常不如 LoRA 稳定对复杂任务适应能力有限对提示设计和任务形式比较敏感适合场景这类方法适合简单分类任务固定任务格式研究实验对资源要求很低的场景对于普通大模型指令微调LoRA 通常更实用。八、SFT 指令微调SFT 的全称是 Supervised Fine-Tuning也就是监督微调。这是大模型微调里最常见的训练阶段。SFT 数据通常长这样{instruction:请解释什么是 LoRA 微调。,input:,output:LoRA 微调是一种低成本微调方法它只训练少量额外参数而不是更新整个大模型。}多轮对话数据格式除了单轮问答数据外SFT 也常用多轮对话格式。示例{conversations:[{from:human,value:你是谁},{from:gpt,value:我是一个经过微调的中文助手。}]}这种格式适合训练聊天助手、客服机器人、角色扮演模型等多轮对话场景。SFT 的作用SFT 主要用来教模型怎么回答问题按什么格式回答用什么风格回答学习某类任务的输入输出模式适应某个业务场景简单来说SFT 不是让模型从零开始学习语言而是在已有基础模型能力之上让模型更适合某个具体任务。常见训练组合实际使用时经常会看到下面几种组合LoRA SFT或者QLoRA SFT这里需要注意SFT 是训练目标LoRA / QLoRA 是训练方法也就是说SFT 决定“训练模型学什么”LoRA / QLoRA 决定“用什么方式训练”。九、DPO / ORPO / PPO 偏好优化DPO、ORPO、PPO 这类方法通常不是入门阶段的普通微调而是偏好对齐训练。它们的目标不是简单教模型一个“标准答案”而是让模型更偏向某种更好的回答。比如给模型两种回答问题请解释什么是机器学习 回答 A简洁、准确、结构清楚。 回答 B啰嗦、含糊、有错误。训练时告诉模型A 比 B 更好经过训练后模型之后就会更倾向生成类似回答 A 的内容。1. 常见偏好优化方法常见方法包括DPOORPOPPOKTOSimPO其中 DPO 在当前大模型微调中比较常见因为它相对 PPO 更容易训练工程实现也更简单一些。2. 优点DPO / ORPO / PPO 这类方法的优点包括可以优化回答偏好可以让模型更符合人类评价可以改善啰嗦、跑题、拒答等问题适合进一步对齐模型风格例如如果一个模型已经能回答问题但回答太啰嗦、不够稳定就可以用偏好优化继续调整。3. 缺点这类方法也有明显缺点数据准备更复杂训练难度更高通常要先有 SFT 模型对训练稳定性要求更高相比普通 SFT偏好优化不仅需要问题和答案还需要“哪个答案更好”的偏好数据。4. 适合场景DPO / ORPO 适合已经完成 SFT 后继续优化有偏好数据集希望模型回答更符合人类偏好做模型对齐实验如果是新手不建议第一步就做 DPO。更推荐先把 LoRA SFT 跑通再学习偏好优化。十、不同微调方式的区别总结下面从几个角度对不同微调方式做一个简单对比。1. 从训练参数量看全参数微调 Freeze LoRA QLoRA Prompt Tuning全参数微调训练的参数最多Prompt Tuning 训练的参数最少。一般来说训练参数越多对显存和算力的要求也越高。2. 从显存需求看全参数微调最高 LoRA 较低 QLoRA 更低 Prompt Tuning 最低全参数微调需要保存和更新完整模型参数因此显存需求最高。LoRA 只训练少量额外参数所以显存压力小很多。QLoRA 进一步把基础模型量化成 4bit 加载因此显存需求更低但环境兼容性也更复杂。3. 从效果上限看全参数微调通常最高 LoRA 性价比最高 Prompt Tuning 较有限全参数微调的效果上限通常最高但成本也最高。LoRA 虽然不一定达到全参数微调的上限但它在训练成本、显存占用和实际效果之间取得了很好的平衡所以是个人用户最常用的方案。4. 从入门难度看LoRA 最适合新手 QLoRA 需要处理量化兼容问题 DPO / PPO 更适合进阶学习