当前位置: 首页 > ds >正文

微调入门:为什么微调

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 1 什么时候我们需要微调呢?
    • 1.1 微调的种类
    • 1.2 基本概念
      • 1.2.1 全量微调(Full Fine-tuning)
        • 1.2.1.1 应用场景
      • 1.2.2 参数高效微调(PEFT, Parameter-Efficient Fine-Tuning)
        • 1.2.2.1 应用场景
      • 1.2.3 全量微调 vs LoRA 对比总结
  • 2 RAG VS 微调

1 什么时候我们需要微调呢?

需要微调的情况:

  • Your domain is extremely different from what a LLM was pretrained on, and extensive prompting didn’t produce the results you want.
    你的领域与 LLM 预训练的内容极其不同,并且广泛的提示没有产生你想要的结果。
  • Your model needs to work well in a low-resource language.
    您的模型需要在低资源语言环境中表现良好。
  • Your model needs to be trained on sensitive data that have strict regulatory requirements.
    您的模型需要在严格监管要求的数据上进行训练。
  • You’re using a small model due to cost, privacy, infrastructure, or other constraints.
    由于成本、隐私、基础设施或其他限制,你正在使用一个小模型。

1.1 微调的种类

![[微调,加油.png]]

看设备情况,对于我的8G显存GPU,全参数微调最大支持1B~1.3B。
而参数高效微调(PEFT),可以支持7B参数模型微调。

1.2 基本概念

1.2.1 全量微调(Full Fine-tuning)

更新模型所有参数。

1.2.1.1 应用场景
  1. 任务与预训练差距极大(Domain Shift 大)

🔍 场景:从通用语言 → 高度专业化领域

  • 例子
    • 医疗诊断报告生成
    • 法律条文推理
    • 数学证明生成
    • 代码生成(尤其是新语言)
  • 原因:这些任务涉及大量新词汇、结构和逻辑模式,仅靠低秩更新难以改变模型底层表示能力。

📌 结论:当任务“超出”模型原有知识边界时,需要深度重塑参数。

  1. 需要彻底改变模型行为或风格(如写作风格迁移)

🔍 你的任务是“将文章润色成自己的风格”——这其实是一个灰色地带。

  • 如果你的“个人风格”只是 轻微调整语气、句式(如更正式/简洁),✅ LoRA 足够。
  • 但如果你的风格非常独特(如:鲁迅式冷峻、王小波式荒诞、张爱玲式细腻),且训练数据足够多(>2000 对),那么:
    • 全量微调能更好地重塑语言模式
    • ❌ LoRA 可能“学不像”,因为它只在原有风格上“微调”

🧠 类比:LoRA 像给演员加个面具;全量微调是重新训练一个演员。

  1. 长序列建模或上下文扩展(Extended Context)
  • 模型原生支持 4K tokens,你想扩展到 32K 或 128K
  • 需要重训 RoPE(旋转位置编码)或修改位置嵌入
  • 这种结构性改动通常需要全量微调才能稳定收敛

⚠️ LoRA 无法有效学习位置编码的全局变化

  1. 多任务联合训练(Multi-task Learning)
  • 同时训练:摘要 + 翻译 + 风格迁移 + 问答
  • 不同任务影响模型不同层
  • 全量微调能让各层协同优化
  • LoRA 容易出现“任务干扰”或“容量不足”
  1. 模型压缩后的再训练(Post-Quantization Fine-tuning)
  • 你先做了 4-bit 量化(如 GPTQ),然后发现性能下降
  • 需要通过全量微调“恢复”部分性能(称为 PTQ + FT
  • 此时 LoRA 效果有限,因为量化已破坏原始参数结构
  1. 作为最终性能冲刺手段(SOTA 追求)
  • 在学术或竞赛场景中,追求最高指标
  • 实验表明:在足够数据下,全量微调 > LoRA > Prompting
  • 当你已经用 LoRA 验证了可行性,下一步就是“全量微调冲榜”

1.2.2 参数高效微调(PEFT, Parameter-Efficient Fine-Tuning)

PEFT(Parameter-Efficient Fine-Tuning) 是一类只更新少量参数、冻结主干模型的微调方法,典型代表:

  • LoRA(Low-Rank Adaptation)
  • QLoRA(4-bit 量化 + LoRA)
  • Adapter(插入小型神经模块)
  • IA³(缩放注意力权重)
  • BitFit(仅微调偏置项)

官网资料:PEFT

  • LoRA(Low-Rank Adaptation)
    在原始权重旁添加“低秩矩阵”来近似更新,不修改原模型,只训练新增的小矩阵(如 4GB → 仅训练 100MB)。训练后可合并回原模型,无推理延迟。

  • QLoRA(Quantized LoRA)
    在 LoRA 基础上 + 4-bit 量化,将模型权重从 16-bit 压缩到 4-bit(节省 75% 显存),仍能保持 95%+ 的性能。

  • 梯度检查点(Gradient Checkpointing)
    用时间换空间:不保存所有中间激活值,反向传播时重新计算。

  • Flash Attention-2
    加速注意力计算,降低显存占用。

1.2.2.1 应用场景
  1. 指令微调(Instruction Tuning)

让模型学会理解并执行指令,如:“请总结这篇文章”。

  • ✅ 适合 PEFT:模型已具备语言能力,只需“对齐”指令格式
  • 📌 典型数据格式:instruction + input → output
  • 💡 你的任务(风格润色)就属于此类!

✅ 推荐方法:LoRA / QLoRA

  1. 风格迁移与文本改写(Stylized Rewriting)

将原文重写为特定风格:文艺、正式、简洁、口语化等

  • ✅ 适合 PEFT:本质是“条件生成”,不改变语义结构
  • 📌 示例:
    • 输入:“今天天气不错。”
    • 输出(文艺风):“阳光洒落,微风轻拂,万物皆在低语。”
  • 💡 你的核心需求正是这一类!

✅ 推荐方法:QLoRA + 风格指令控制

  1. 领域适配(Domain Adaptation)

将通用模型适配到特定领域,如医疗、法律、金融、教育等

  • ✅ 适合 PEFT:如果领域术语不多、任务结构相似
  • 📌 示例:
    • 通用模型 → 医疗问答助手(使用少量医生问答对微调)
    • 通用模型 → 法律文书生成(使用判决书摘要对训练)

⚠️ 注意:若领域极专业(如病理报告生成),建议未来用全量微调
✅ 当前阶段:QLoRA 完全可用

  1. 对话系统定制(Chatbot Personalization)

构建个性化 AI 助手、客服机器人、虚拟角色

  • ✅ 适合 PEFT:只需调整语气、人设、回复风格
  • 📌 示例:
    • “请用温柔体贴的语气回答用户情感问题”
    • “扮演一个毒舌但专业的程序员导师”

✅ 推荐方法:LoRA + System Prompt 控制人设

  1. 信息抽取与结构化输出

从文本中提取实体、关系、事件,并输出 JSON/表格

  • ✅ 适合 PEFT:模型已有理解能力,只需“格式对齐”
  • 📌 示例:
    • 输入新闻:“苹果公司发布新款 iPhone”
    • 输出:{"company": "苹果", "product": "iPhone", "action": "发布"}

✅ 推荐方法:LoRA + 输出模板微调

  1. 多语言/中文增强

提升模型在中文或小语种上的表现

  • ✅ 适合 PEFT:中文能力可通过少量高质量语料增强
  • 📌 示例:
    • 使用中文写作语料微调 Qwen,提升润色能力
    • 用中英翻译对增强翻译能力

✅ 推荐方法:QLoRA + 高质量双语对

  • 常见PEFT方法对比
方法显存中文支持易用性推荐度
QLoRA(4-bit + LoRA)✅ 8GB 可行✅ 强⭐⭐⭐⭐☆⭐⭐⭐⭐⭐
LoRA(16-bit)❌ 7B 模型需 >16GB⭐⭐⭐⭐☆⭐⭐⭐☆☆
Adapter✅ 可行⚠️ 支持弱⭐⭐☆☆☆⭐⭐☆☆☆
IA³✅ 可行⚠️ 工具少⭐⭐☆☆☆⭐⭐☆☆☆

1.2.3 全量微调 vs LoRA 对比总结

维度全量微调LoRA/QLoRA
显存需求高(7B 需 24GB+)低(8GB 可行)
训练速度快(参数少)
性能上限略低(≈90~95%)
适合任务领域迁移大、风格重塑深轻量适配、设备受限
推理部署直接使用需加载增量权重
数据需求大(>5k 样本)小(500~1k 可行)

2 RAG VS 微调

在垂直领域,RAG VS 微调,效果都有哪些差异?

特性RAG (检索增强生成)微调 (Fine-Tuning)
核心目的提供知识 (Providing Knowledge)传授技能 (Teaching a Skill)
工作原理在回答问题前,先去一个外部知识库(如你的博客文章)里查找相关信息,然后把这些信息作为上下文交给LLM去总结回答。通过在你的个人数据上进行训练,改变模型自身的权重,让模型内在化地学习到你的风格、格式、语气或特定领域的语言模式
解决的问题“我希望AI能基于我最新的、事实准确的笔记来回答问题。”“我希望AI能像我一样思考和写作,用我的口吻来表达观点。”
知识更新极其容易。 你只需在向量数据库中添加、删除或修改一篇文档,AI的知识立刻就更新了。极其困难。 你需要重新准备数据集,并花费数小时(甚至更久)和GPU成本来重新训练模型。
可追溯性非常高。 你可以清晰地看到AI是引用了哪几篇原文来得出答案的,便于事实核查。几乎为零。 模型的回答来自于它内部复杂的权重,你无法知道它为什么会生成某个特定的句子。它是一个“黑盒”。
幻觉风险较低。 因为它的回答被严格限制在提供的上下文中,不容易编造事实。较高。 如果没有RAG配合,微调后的模型仍然可能产生幻觉,只是幻觉的内容可能会更像你的风格。
成本开发成本低, 但有持续的API调用成本向量数据库的运营成本开发成本高, 有一次性的、高昂的GPU训练成本。但推理成本可能(也可能不)比带长上下文的RAG低。

在生产系统中,我们可以让RAG和微调强强联合。

全量微调>高效参数微调>提示词

http://www.xdnf.cn/news/17819.html

相关文章:

  • LeetCode 分割回文串
  • MySQL-单表查询
  • GitHub的简单使用方法----(5)
  • C++联合体的定义
  • 春日花园动画
  • 9. React组件生命周期
  • linux远程部署dify和mac本地部署dify
  • 机器学习—— TF-IDF文本特征提取评估权重 + Jieba 库进行分词(以《红楼梦》为例)
  • 能刷java题的网站
  • ROS教育中自动驾驶机器人的技术融合与技术创新
  • 如何将 AGV 叉车成功集成到仓库自动化系统中?
  • Apache 服务器基础配置与虚拟主机部署
  • AI智能体如何从错误中学习:反思机制详解
  • Flutter ExpansionPanel组件(可收缩的列表)
  • 云原生作业(tomcat)
  • 异或和查询
  • echarts配置项详细解释
  • C99中的变长数组(VLA)
  • THCV215一种高速视频数据收发器,采用低电压差分信号(LVDS)技术支持高速串行数据传输,支持1080p/60Hz高分辨率传输
  • 计算机网络---默认网关(Default Gateway)
  • C++ Rust与Go
  • Vue接口平台小功能——发送报告到飞书
  • 计算机网络摘星题库800题笔记 第4章 网络层
  • nurbs曲线的matlab
  • 10. React组件间的通信
  • 数据分析基本内容(第二十节课内容总结)
  • Milvus入门:开源向量数据库,解锁大模型时代的高效检索
  • kafka初步介绍
  • 不废话,UE5极速云渲染操作方法
  • STM32_bug总结(TIM定时中断进不去和只进1次)