前言

在人工智能领域,大语言模型(Large Language Model,LLM)已经成为了推动技术进步的核心力量。从 GPT 系列到 LLaMA,从 ChatGPT 到国内的通义千问、文心一言,通用大模型展现了令人惊叹的语言理解、逻辑推理和内容生成能力。然而,通用大模型虽然强大,但在处理特定垂直领域的专业问题时,往往表现不如预期——回答泛泛而谈、缺乏行业深度认知、无法精准遵循企业业务规则等问题屡见不鲜。

这就引出了一个关键问题:如何在保持大模型通用能力的同时,让其更好地适应特定业务场景? 答案就是模型微调(Fine-tuning)。

本文将系统讲解大模型微调的完整知识体系,从为什么需要微调讲起,全面解析 Full Fine-tuning、LoRA、QLoRA、Adapter Tuning、Prefix Tuning、P-tuning v2 等主流微调方法的原理与差异,深入探讨训练数据准备、主流微调框架使用、Java 工程师视角的 Python 微调与 Spring Boot 调用集成,并通过实战案例帮助读者快速上手大模型微调。

一、为什么需要微调:通用模型 vs 垂直领域

1.1 通用大模型的能力与局限

以 GPT-4、LLaMA-2、通义千问为代表的通用大模型,通过在海量互联网数据上进行预训练,获得了强大的语言理解和生成能力。它们能够:

  • 流畅对话:进行自然语言交互,回答各类问题
  • 知识推理:完成逻辑推理、数学计算、代码编写等复杂任务
  • 多任务适应:无需额外训练即可处理翻译、摘要、问答等多种任务
  • 零样本学习:通过提示词(Prompt)即可完成未见过的任务

然而,通用大模型的局限性同样明显:

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

1.2 什么是模型微调

模型微调是在预训练模型的基础上,使用特定领域或业务场景的数据进行额外训练,使模型学习该领域的知识、术语、推理模式,从而提升在目标任务上的表现。

┌─────────────────────────────────────────────────────────────┐
│                    模型微调核心原理                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   预训练阶段                                                 │
│   ┌─────────────┐                                           │
│   │  海量通用数据 │ → 通用语言能力 + 广泛知识                    │
│   │ (Web, Books) │                                           │
│   └─────────────┘                                           │
│          ↓                                                   │
│   微调阶段                                                   │
│   ┌─────────────┐                                           │
│   │  领域/业务数据│ → 领域专业能力 + 业务适配                    │
│   │ (Domain Data) │                                          │
│   └─────────────┘                                           │
│          ↓                                                   │
│   ┌─────────────┐                                           │
│   │  微调后模型  │ → 通用能力 + 领域专业能力                     │
│   └─────────────┘                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐

│                    模型微调核心原理                           │

├─────────────────────────────────────────────────────────────┤

│                                                             │

│   预训练阶段                                                 │

│   ┌─────────────┐                                           │

│   │  海量通用数据 │ → 通用语言能力 + 广泛知识                    │

│   │ (Web, Books) │                                           │

│   └─────────────┘                                           │

│          ↓                                                   │

│   微调阶段                                                   │

│   ┌─────────────┐                                           │

│   │  领域/业务数据│ → 领域专业能力 + 业务适配                    │

│   │ (Domain Data) │                                          │

│   └─────────────┘                                           │

│          ↓                                                   │

│   ┌─────────────┐                                           │

│   │  微调后模型  │ → 通用能力 + 领域专业能力                     │

│   └─────────────┘                                           │

│                                                             │

└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    模型微调核心原理                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   预训练阶段                                                 │
│   ┌─────────────┐                                           │
│   │  海量通用数据 │ → 通用语言能力 + 广泛知识                    │
│   │ (Web, Books) │                                           │
│   └─────────────┘                                           │
│          ↓                                                   │
│   微调阶段                                                   │
│   ┌─────────────┐                                           │
│   │  领域/业务数据│ → 领域专业能力 + 业务适配                    │
│   │ (Domain Data) │                                          │
│   └─────────────┘                                           │
│          ↓                                                   │
│   ┌─────────────┐                                           │
│   │  微调后模型  │ → 通用能力 + 领域专业能力                     │
│   └─────────────┘                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.3 微调的典型应用场景

医疗健康领域:

  • 病历结构化提取
  • 医学文献检索与摘要
  • 智能问诊与健康咨询
  • 药物相互作用查询

法律领域:

  • 合同条款分析与风险识别
  • 法律文书智能生成
  • 案例检索与相似判决推荐
  • 法律咨询问答

金融领域:

  • 金融报告自动生成
  • 风险评估与信用分析
  • 智能投顾建议
  • 监管合规检查

企业专属场景:

  • 客服机器人定制
  • 产品文档智能问答
  • 内部知识库问答
  • 业务流程自动化

1.4 微调 vs 提示工程 vs RAG

在实际应用中,提升大模型效果有三条主要路径:提示工程(Prompt Engineering)、检索增强生成(RAG)和模型微调(Fine-tuning)。它们各有优劣,适用于不同场景:

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

问题类型

具体表现

---------

---------

**领域知识不足**

在医疗、法律、金融等专业领域,可能给出不够准确甚至错误的答案

**企业认知缺失**

不了解特定企业的产品、服务、内部流程

**输出格式不稳定**

难以严格遵循业务要求的输出格式(如 JSON、XML)

**幻觉问题**

对不确定的问题可能编造看似合理但实际错误的答案

**推理成本高**

通用模型参数量巨大,部署和推理成本高昂

维度

提示工程

RAG

微调

------

---------

-----

------

**实现难度**

**成本**

**训练时间**

数小时到数天

**知识更新**

实时

实时

需重新训练

**任务适配**

通用任务

知识问答

复杂推理/格式

**依赖数据量**

少量示例

文档库

百条到数千条

**控制力**

**适用场景**

通用对话、格式控制

知识库问答

领域适应、行为模式

参数

说明

常用值

------

------

--------

`r`

低秩分解的秩,决定可训练参数量

4, 8, 16, 32

`lora_alpha`

缩放因子,通常设为 r 的 2 倍

8, 16, 32, 64

`lora_dropout`

LoRA 层的 dropout 概率

0.0, 0.1

`target_modules`

应用 LoRA 的模块

q_proj, v_proj, k_proj, o_proj

维度

LoRA

QLoRA

------

------

-------

**模型精度**

保持 FP16/BF16

量化到 INT4/INT8

**显存占用**

7B: ~10GB

7B: ~5GB

**推理速度**

正常

略慢(需反量化)

**微调效果**

接近全量微调

略低于 LoRA

**硬件要求**

RTX 3090+

RTX 2080+

维度

Adapter

LoRA

------

---------

------

**结构**

并联在 FFN 层

低秩分解替代

**位置**

需指定插入位置

任意位置

**参数量**

~3-5%

~0.1-1%

**推理延迟**

略高(串行计算)

无(可合并)

**多任务**

多适配器切换

多 LoRA 动态加载

维度

Prefix Tuning

Prompt Tuning

------

---------------

---------------

**提示位置**

每层

仅输入层

**参数量**

较大(k × layers)

较小(k)

**效果**

更好

略逊

**适用场景**

复杂任务

简单任务

方法

可训练参数

GPU 显存

推理延迟

效果

实现复杂度

------

-----------

---------

---------

------

-----------

Full FT

100%

≥24GB

最优

LoRA

0.1-1%

≥10GB

接近全量

QLoRA

0.1-1%

≥6GB

略高

良好

Adapter

1-5%

≥12GB

略高

良好

Prefix

0.1-3%

≥10GB

中等

P-tuning v2

0.1-3%

≥10GB

良好

数据集

说明

适用场景

--------

------

---------

**Alpaca**

Stanford Alpaca 团队生成

通用指令微调

**ShareGPT**

用户对话数据

对话系统

**FLAN**

谷歌指令数据集集合

指令遵循

** Dolly**

Databricks 员工生成

领域适应

**OpenAssistant**

开源对话数据

对话系统

检查项

方法

处理方式

--------

------

---------

**重复数据**

哈希比对、相似度计算

去重

**噪声数据**

关键词过滤、长度分布分析

过滤

**格式错误**

JSON 解析、schema 验证

修正或过滤

**隐私信息**

正则匹配、NER 检测

脱敏或过滤

**标注一致性**

多人标注、交叉验证

重新标注

类型

说明

------

------

ROUGE-N

N-gram 召回率(ROUGE-1, ROUGE-2)

ROUGE-L

最长公共子序列

ROUGE-S

Skip-gram 召回率

维度

评估标准

------

---------

**相关性**

回答是否切题

**准确性**

信息是否正确无误

**完整性**

是否完整回答问题

**专业性**

术语使用是否恰当

**流畅性**

表达是否通顺

方案

特点

适用场景

------

------

---------

**vLLM**

PagedAttention,吞吐量高

高并发推理

**TGI**

HuggingFace 官方,支持推理优化

通用部署

**Text Generation Inference**

Rust 实现,高效

生产环境

**Ollama**

本地部署,简单易用

本地开发

**llama.cpp**

纯 C/C++,CPU 友好

边缘部署

问题

原因

解决方案

------

------

---------

过拟合

数据量太少或训练轮次过多

增加数据、使用正则、增加 dropout

灾难性遗忘

全量微调破坏预训练知识

使用 LoRA/QLoRA 或保留预训练数据

分布偏移

微调数据与预训练数据差异大

混合预训练数据一起训练

质量不稳定

数据标注不一致

重新标注、数据清洗

问题

原因

解决方案

------

------

---------

OOM(显存溢出)

batch size 过大或序列太长

减小 batch size、启用 gradient checkpointing、使用 QLoRA

Loss 不下降

学习率不合适或模型问题

调整学习率、检查数据格式

Loss 爆炸

学习率过高或梯度问题

减小学习率、启用梯度裁剪

NaN 损失

数值不稳定

使用混合精度训练、检查数据

问题

原因

解决方案

------

------

---------

重复生成

解码策略问题

调整 temperature、启用 repetition_penalty

生成截断

最大长度限制

增加 max_new_tokens

回答格式错误

Prompt 不够清晰

优化 Prompt,添加示例

推理速度慢

模型过大或硬件不足

量化、使用更小模型

趋势

说明

------

------

**更高效的方法**

如 LoRA+、DoRA 等新方法不断涌现

**多模态微调**

图像、语音、文本联合微调

**增量微调**

高效利用新数据,不遗忘旧知识

**自动化微调**

AutoML + 微调,自动搜索最佳配置

**端侧微调**

在手机、IoT 设备上进行微调

选择建议:

  • 优先尝试提示工程,成本最低
  • 需要引入最新/私有知识时使用 RAG
  • 需要模型学习复杂模式、特定格式输出、领域推理能力时使用微调
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐