Skip to content

模型微调与部署

前言

大模型很强,但它不懂你的业务。 GPT-4 能写诗、能编程,但它不知道你公司的产品术语、不了解你行业的专业规范。微调(Fine-tuning)就是让通用大模型"学会"你的专业知识的过程——就像给一个博学的通才做岗前培训,让它变成你的领域专家。

这篇文章会带你学什么?

学完这章后,你将获得:

  • 流程认知:掌握从数据准备到模型上线的完整微调流水线
  • 数据工程:了解微调数据的格式要求和质量标准
  • 高效微调:理解 LoRA 等参数高效微调技术的原理和优势
  • 模型压缩:掌握量化技术如何让大模型在消费级硬件上运行
  • 部署实践:了解模型服务的主流架构和选型策略
章节内容核心概念
第 1 章微调流水线数据→训练→评估→部署
第 2 章训练数据数据格式、质量控制
第 3 章LoRA 微调低秩适配、参数高效
第 4 章模型量化FP16、INT8、INT4
第 5 章模型部署推理服务、API 网关

0. 全景图:为什么需要微调?

大语言模型的训练分为两个阶段:预训练微调。预训练是在海量通用数据上学习语言能力,微调是在特定任务数据上学习专业能力。

打个比方:预训练像是上大学——学习通识知识,什么都懂一点;微调像是入职培训——针对具体岗位学习专业技能。

什么时候需要微调?

  • 特定输出格式:需要模型始终以固定 JSON 格式输出
  • 专业领域知识:医疗、法律、金融等领域的专业术语和规范
  • 语言风格迁移:让模型用特定的语气、风格回答(如客服话术)
  • 小众语言支持:提升模型在特定语言上的表现
  • 成本优化:用小模型微调替代大模型调用,降低推理成本

1. 微调流水线:从数据到上线的完整旅程

微调不是"把数据丢给模型就完事"。它是一个严谨的工程流程,每个环节都会影响最终效果。

微调流水线演示

点击每个阶段,了解微调的完整流程

🧠
选择基座模型
📊
准备训练数据
⚙️
执行微调训练
📈
评估与测试
🚀
部署上线
🧠 选择基座模型

微调的第一步是选择一个合适的预训练基座模型。基座模型已经在海量数据上学习了通用的语言能力,我们要做的是在此基础上进行"专业化训练"。

1根据任务需求选择模型规模(7B、13B、70B 等)
2考虑开源许可证(Apache 2.0、Llama 许可等)
3评估模型的基础能力是否匹配目标场景
4常见选择:Llama、Qwen、Mistral、DeepSeek 等
示例
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B")
1 / 5

微调的五个阶段

  1. 数据准备:收集、清洗、标注训练数据,这是最耗时也最关键的环节
  2. 模型选择:选择合适的基座模型(Base Model),如 Llama 3、Qwen、Mistral
  3. 训练配置:设置学习率、batch size、epoch 数等超参数
  4. 训练执行:在 GPU 上运行训练,监控 loss 曲线和评估指标
  5. 评估上线:在测试集上评估效果,通过后部署为 API 服务
阶段关键动作常见陷阱
数据准备清洗、去重、格式化数据质量差导致模型"学坏"
模型选择评估基座模型能力模型太大训练不动,太小效果差
训练配置调整超参数学习率过高导致灾难性遗忘
训练执行监控 loss 和指标过拟合、训练不收敛
评估上线A/B 测试、灰度发布测试集泄漏导致评估虚高

2. 训练数据:微调效果的天花板

在微调中有一句老话:"Garbage in, garbage out"。训练数据的质量直接决定了微调效果的上限。100 条高质量数据的效果,往往好过 10000 条低质量数据。

训练数据格式演示

切换不同格式,了解微调数据的组织方式

指令跟随

最常见的微调数据格式。每条数据包含一个指令(instruction)、可选的输入(input)和期望的输出(output)。适合训练通用助手类模型。

通用助手ChatGPT 风格最常用
数据样例
"instruction": "请将以下中文翻译成英文"
"input": "人工智能正在改变世界"
"output": "AI is changing the world"
数据质量要点
指令要清晰明确,避免歧义
输出要完整、准确、格式规范
覆盖多种任务类型(翻译、摘要、问答等)
数据量建议:1,000 ~ 50,000 条

微调数据的三种常见格式

  1. 指令格式(Instruction):最常用的格式,包含 instruction(指令)、input(输入)、output(期望输出)三个字段。适合训练模型遵循指令。
  2. 对话格式(Chat):多轮对话形式,包含 system、user、assistant 角色的消息列表。适合训练聊天机器人。
  3. 补全格式(Completion):简单的 prompt-completion 对,适合文本生成、代码补全等场景。
数据质量维度说明检查方法
准确性答案必须正确无误人工审核、专家校验
一致性相似问题的回答风格一致抽样对比检查
多样性覆盖足够多的场景和变体统计问题类型分布
去重避免重复样本导致过拟合文本去重、语义去重
数据量通常 500~5000 条高质量数据即可从少量开始,逐步增加

3. LoRA:用 1% 的参数实现 90% 的效果

全量微调(Full Fine-tuning)需要更新模型的所有参数——对于一个 70B 参数的模型,这意味着需要数百 GB 的显存和大量的 GPU 算力。对大多数团队来说,这不现实。

LoRA(Low-Rank Adaptation)提供了一个优雅的解决方案:冻结原始模型参数,只训练一小组新增的低秩矩阵。这些矩阵的参数量通常只有原模型的 0.1%~1%,但能达到接近全量微调的效果。

LoRA 低秩适配原理演示

理解 LoRA 如何用极少参数实现高效微调

原始权重 W
4096x4096
16,777,216 参数
冻结不动
+
LoRA 适配器
A
4096x8
x
B
8x4096
65,536 参数
可训练
参数节省比例
节省 99.6% 参数
秩越小 = 参数越少、训练越快秩越大 = 表达力越强、效果越好

LoRA 的核心思想

原始模型的权重矩阵 W 是一个巨大的矩阵(如 4096×4096)。LoRA 不直接修改 W,而是在旁边加一个"旁路":W' = W + BA,其中 B 和 A 是两个小矩阵(如 4096×8 和 8×4096)。训练时只更新 B 和 A,原始 W 保持不变。

  • 秩(Rank):r 值越大,表达能力越强,但参数量也越多。通常 r=8~64 就够用
  • 合并部署:训练完成后,可以把 BA 合并回 W,推理时零额外开销
微调方式可训练参数显存需求训练速度效果
全量微调100%极高最好
LoRA0.1%~1%接近全量
QLoRA0.1%~1%更低中等略低于 LoRA
Prompt Tuning< 0.01%极低很快有限

4. 模型量化:让大模型"瘦身"

一个 70B 参数的模型,如果用 FP32(32 位浮点数)存储,需要 280GB 显存——没有几块顶级 GPU 根本跑不起来。量化(Quantization)技术通过降低数值精度来压缩模型体积,让大模型能在消费级硬件上运行。

模型量化演示

拖动滑块,直观感受不同精度下的模型体积、速度与质量变化

FP32
32 bit
FP16
16 bit
INT8
8 bit
INT4
4 bit
💾
模型体积
~28 GB (7B 模型)
推理速度
1x (基准)
🎯
输出质量
100% (无损)
🖥️
显存需求
~32 GB
FP32 详解

FP32(32位浮点数)是模型训练时的默认精度。每个参数用 32 位存储,精度最高但体积最大。通常只在训练阶段使用,推理时很少直接使用 FP32。

单个参数存储示意
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
每个参数占用 32 位 = 4 字节
适用场景:模型训练、科研实验、精度敏感的任务

量化的核心权衡

量化本质上是精度换空间的权衡。FP32 → FP16 几乎无损,INT8 有轻微损失,INT4 会有明显但通常可接受的质量下降。关键是找到你场景下的最佳平衡点。

  • FP16(半精度):体积减半,质量几乎无损,是训练和推理的默认选择
  • INT8(8 位整数):体积再减半,质量损失很小,适合大多数推理场景
  • INT4(4 位整数):体积仅为 FP32 的 1/8,质量有一定损失,适合资源受限场景
精度每参数字节70B 模型体积质量损失适用场景
FP324 字节~280 GB训练基准
FP162 字节~140 GB几乎无标准训练和推理
INT81 字节~70 GB很小生产推理
INT40.5 字节~35 GB可接受边缘设备、本地部署

5. 模型部署:从实验室到生产环境

模型训练好了,量化压缩了,最后一步是把它部署成可供调用的服务。模型部署不只是"把模型跑起来",还涉及并发处理、负载均衡、成本控制等工程问题。

模型服务架构演示

点击不同部署方案,对比其特点与适用场景

🌐
API 服务
最常见的在线部署方式
📱
边缘部署
在终端设备上本地运行
📦
批量处理
离线批量推理大量数据
🌐API 服务

将模型封装为 RESTful API 或 gRPC 服务,通过 HTTP 请求调用。适合需要实时响应的在线应用,如聊天机器人、智能客服、内容生成等。是目前最主流的部署方式。

架构流程
客户端请求
负载均衡
推理服务器
GPU 推理
返回结果
响应延迟
100ms - 2s
并发能力
高(可水平扩展)
部署成本
中高(需 GPU 服务器)
运维复杂度
中等
常用工具
vLLMTGITritonFastAPIOllama

三种主流部署方案

  1. API 服务商:直接使用 OpenAI、Anthropic 等厂商的 API。零运维,按 token 付费,适合快速验证和中小规模使用。
  2. 自托管推理服务:用 vLLM、TGI 等框架在自己的 GPU 服务器上部署。成本可控,数据不出域,适合有隐私要求或大规模调用的场景。
  3. Serverless 推理:使用 AWS SageMaker、Replicate 等平台,按请求付费,自动扩缩容。适合流量波动大的场景。
部署方案成本模型延迟运维复杂度适用场景
API 服务商按 token 计费中等快速原型、中小规模
vLLM 自部署GPU 租赁费用大规模、隐私敏感
Serverless按请求计费冷启动较高流量波动大
边缘部署硬件一次性投入极低离线场景、IoT

总结

模型微调与部署是让大模型从"通用工具"变成"专业助手"的关键环节。从数据准备到模型上线,每一步都需要工程化的思维和实践。

回顾本章的关键要点:

  1. 微调是岗前培训:让通用模型学会特定领域的知识和行为模式
  2. 数据质量决定上限:100 条高质量数据胜过 10000 条低质量数据
  3. LoRA 是效率之王:用不到 1% 的参数实现接近全量微调的效果
  4. 量化是部署利器:INT4 量化让 70B 模型在单卡上运行成为可能
  5. 部署方案因地制宜:快速验证用 API,大规模用自部署,波动大用 Serverless

延伸阅读