这篇文章详细介绍了大语言模型(LLM)的微调技术,包括定义、适用场景(提升专业性、符合企业需求等)及多种微调方式(有监督微调、指令微调等)。文章比较了不同参数更新策略(全参数、部分冻结、PEFT)和主流微调框架(Hugging Face、DeepSpeed等),并选择LLaMA-Factory作为实践框架,为读者提供了从理论到实践的完整微调知识体系。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

正式开始分享微调相关的内容。我的想法是先快速过一下概念。然后快速上手实践。专有名词实在太多,需要各位认真阅读。

前言

之前我们一直强调,大语言模型(LLM)是概率生成系统。

能力边界

  • 知识时效性:模型知识截止于训练数据时间点
  • 推理局限性:本质是概率预测而非逻辑运算,复杂数学推理易出错(deepseek的架构有所不同)
  • 专业领域盲区:缺乏垂直领域知识
  • 幻觉现象:可能生成看似合理但实际错误的内容

之前一直讲解如何通过各种不同的知识库进行知识片段的检索,并通过提示词临时注入到大模型。从今天开始,我会写一写微调相关的文章。

什么是模型微调?

  • 定义:在预训练大模型(如GPT、BERT)的基础上,使用特定领域或任务的数据进行额外训练,使模型适应新任务。
  • 类比:类似“博士生在通识教育(预训练)后,专攻某个研究方向(微调)”。

微调适用场景

提升特定领域的专业性

场景特点

高度专业化知识(如医学、法律、金融、科技等) ,通用大模型缺乏特定领域的知识和逻辑。

示例

  • 医疗报告生成(需准确使用医学术语和遵循临床病例格式)
  • 法律合同审核(需识别合同条款的合规性和潜在风险)
  • 财务报告解析:从PDF年报中提取营收、毛利率等结构化数据
  • 科研论文评审:识别论文方法论部分的实验设计缺陷
让模型更符合企业需求

场景特点

企业需要 AI 具备特定业务逻辑。

示例

  • 代码生成:蚂蚁的zone,美团的set,普通的模型能解决代码实现的问题,但是解决不了他们的zone和set的逻辑。比如阿里的代码员工,就是微调出来的。
  • 业务流程:每个公司的业务流程不一样,每个节点的规则也不一样,如果我把项目流程微调到大模型
  • 企业助手:比如各种手册的微调,然后就是一个企业的产品专家。
让模型更符合用户偏好

场景特点

个性化

示例

  • 个性化的聊天:每个互联网产品都有自己的风格和用户特性(提示词能解决一部分)
  • 内容创作助手:把小说的大纲,以及涉及的知识点微调进去,视频风格微调进去。
  • 游戏NPC:游戏的设定等微调进去,NPC更具备灵活性。
让模型执行特定任务

场景特点

标准化任务。

示例

  • 代码生成模型:用大量 Java、Python 代码训练 AI,让它更擅长某种编程语言。
  • 表格理解: 微调模型解析扫描文档中的复杂表格结构,提取关键字段
数据安全 & 隐私问题

场景特点

数据敏感。

示例:

  • 银行数据:通过本地微调银行敏感数据,微调出具备风险能力的模型,让模型在不暴露的前提下具备风险识别能力。
  • 医疗机构: 通过本地微调病人病例和诊断证明,专业数据,让模型具备辅助诊断能力。
资源受限场景

场景特点:

离线设备、专业设备、低显存。

示例:

  • 设备故障诊断手册查询:微调轻量级模型快速解析设备编码与维修手册条目的对应关系
  • 地下或海底:救护知识手段,生存技能

何时选择微调 vs. 其他方案?

场景 推荐方案 原因
数据充足且领域差异大 全参数微调 最大化模型能力,适应性强
数据少但需快速适配 LoRA/P-Tuning 节省资源,避免过拟合
实时性要求高 RAG(检索增强生成) 动态注入最新知识,无需重新训练
输出需严格可控 提示工程+少量微调 通过模板约束输出,微调提升指令跟随能力
无标注数据 零样本/少样本提示 直接利用预训练知识,成本最低

模型微调的方式

1. 按训练目标分类

有监督微调(Supervised Fine-Tuning, SFT)

有监督微调是最常见的微调方式,适用于任务明确且具有标注数据的情况。通过使用人工标注的高质量数据对,模型能够学习特定任务所需的知识,从而在指定任务上提供准确的输出。

  • 适用场景:数据充足且任务目标明确的情况,如文本分类、情感分析、命名实体识别等。

数据示例:

[  {    "instruction": "作为法律顾问,请回答以下问题:",  // 可选指令模板    "input": "如果我在公司被解雇,我有权获得多少赔偿?",    "output": "根据《劳动合同法》第47条..."  },  {    "input": "签订购房合同后,开发商违约怎么办?",    "output": "您可以依据《合同法》要求..."  }]
指令微调(Instruction Tuning)

指令微调旨在增强模型理解并执行不同指令的能力。通过指令-输出对的训练,使模型能够更好地遵循人类指令,提高其在多个任务上的泛化能力。

  • 适用场景:需要提升模型的泛化性和指令理解能力,如聊天机器人、自动化任务、智能问答等。

数据示例:

[  {    "instruction": "用简单的语言解释量子力学。",    "input": "",//可省略    "output": "量子力学是研究微小粒子行为的科学..."  },  {    "instruction": "将以下句子翻译成法语。",    "input": "你好,今天天气不错。",    "output": "Bonjour, il fait beau aujourd'hui."  }]
对齐方法(RLHF/DPO)

通过人类反馈(如 Reinforcement Learning from Human Feedback, RLHF)或直接偏好优化(Direct Preference Optimization, DPO),调整模型的输出,使其更符合人类价值观,提高安全性和一致性。

  • 适用场景:需要控制模型输出的安全性或风格一致性,如客服机器人、儿童内容生成、内容审核等。

RLHF数据示例:

[  {    "prompt": "请写一篇关于气候变化的文章。",    "chosen": "气候变化是人类面临的最紧迫问题之一。科学研究表明...",    "rejected": "气候变化是媒体夸大的骗局,无需在意。",    "score": {"chosen": 5, "rejected": 1},  // 可选:标注人工评分    "reject_reason": "否定科学共识"          // 可选:标注拒绝原因  }]

rejected 回答应明确包含安全性或价值观问题(如危险步骤、歧视性内容),而非仅是质量差异

DPO数据示例:

[  {    "prompt": "如何回应‘女性不适合学理科’的观点?",    "chosen": "性别不应限制个人发展,许多女性科学家取得了卓越成就。",    "rejected": "女性的逻辑思维确实比男性差,这是客观事实。"  }]
多任务学习

通过同时优化多个相关任务,提升模型的泛化能力,使其能够高效处理多种任务。通过损失函数动态调整不同任务的训练权重。

  • 适用场景:任务之间存在关联性,适用于智能助理、语音识别、情感分析等任务。

数据示例:

[  {    "task": "情感分析",    "input": "这款手机的电池寿命太短了,太失望了。",    "output": "负面",  },  {    "task": "文本摘要",    "input": "近日,某科技公司发布了一款新产品...",    "output": "某科技公司发布新品"  }]

2. 按参数更新策略分类

全参数微调(Full Fine-Tuning)

所有模型参数都参与训练,通常需要大量计算资源,适用于数据充足、计算资源充足的情况。

  • 技术代表:常规SFT、RLHF(如ChatGPT的训练方式)。

数据示例:

{  "model": "GPT-3",  "trainable_parameters": "100%",  "dataset": "500K法律文本对",  "fine_tuning_method": "全参数微调"}

部分冻结微调(Partial Fine-Tuning)

仅训练模型的部分层,如冻结底层参数,仅更新高层参数,降低计算开销。

  • 技术代表:如BERT冻结前8层,仅训练后4层。

数据示例:

{  "model": "BERT",  "trainable_layers": "最后4层",  "frozen_layers": "前8层",  "fine_tuning_method": "部分冻结微调"}

参数高效微调(PEFT)

仅更新少量的参数,通常通过结构化方法(如LoRA、Adapter)减少计算需求,并在低资源环境下实现高效微调。

  • 技术代表:LoRA(低秩适配)、Adapter(插入小网络)。

LoRA的特点:

  • 只调整部分参数(如低秩矩阵分解)。
  • 降低计算和内存开销。
  • 适合快速微调,尤其在资源受限时。

adapter的特点:

  • 插入额外的 Adapter 层
  • 降低计算和内存开销。(仅训练 Adapter 层和可独立存储 Adapter 层)
  • 多任务学习、迁移学习。

最后比较下:

  • Adapter 插入额外的小型可训练模块,适用于多任务和迁移学习。
  • LoRA 通过低秩矩阵分解,调整少量关键参数,适用于快速微调。
  • 如果需要在 多个任务间切换,Adapter 更合适;如果只是对单个任务高效微调,LoRA 更优。

大模型微调框架简介

在大模型微调领域,存在多种框架,每个框架都有其独特的优势和局限性。下面介绍几种常见的微调框架,包括示例代码和适用模型,帮助你根据任务需求选择最合适的框架。

1. Hugging Face Transformers

简介:
Hugging Face Transformers 业界标准NLP框架,提供200+预训练模型和全流程工具链,覆盖文本、图像、音频多模态任务。

核心优势:

  • 全模态任务覆盖
  • 预训练模型生态(社区模型库含30万+微调模型,并且覆盖覆盖 BERT、GPT、LLaMA、Whisper、ViT 等主流架构)
  • 跨框架无缝衔接
  • 开箱即用工具链
  • 企业级部署支持
  • 开发社区极为活跃

尽管 Hugging Face Transformers 在许多常见任务中表现优秀,但在超大规模模型的微调和训练中,可能会面临性能瓶颈和资源消耗过大的问题。

2. DeepSpeed

简介:
DeepSpeed是微软开发的分布式训练引擎,通过ZeRO优化实现百亿级模型全参数微调。

核心技术:

  • ZeRO 显著减少内存占用,提高分布式训练的效率
  • CPU Offloading 混合精度训练,加速训练过程并减少显存需求
  • 自适应梯度累积

DeepSpeed适合大规模模型的训练,但使用门槛较高,需要深入理解框架的底层实现。看了下官网,不是我能玩的。

3. LLaMA-Factory(本文使用的框架)

简介:
国产低代码微调框架,

看下官方的介绍。

4,Megatron-LM

简介:
NVIDIA千亿级模型训练框架,采用3D混合并行策略
张量并行 + 流水并行 + 数据并行

性能指标:

  • 175B模型训练:3072 A100(80G)
  • 吞吐量:502 petaFLOPs

适用场景:
GPT-4级别模型预训练/微调。

据说坑不少,有不少人推荐。torchtitan。

如何选择微调框架?

不管是感官上,还是大模型得推荐上,对于我来说选择LLaMA-Factory是最好的选择。后续我基于这个做微调实现。

专有名词

过拟合(Overfitting)

是指模型在训练数据上表现得非常好,但在新数据或测试数据上的表现较差的现象。换句话说,模型过度学习了训练数据中的细节和噪声,以至于无法很好地泛化到未见过的数据。

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

更多推荐