Appearance
RAG、微调与部署优化
本页解决什么:区分 RAG、微调、LoRA、量化、缓存和模型路由的作用,避免用微调解决知识更新问题,或用 RAG 解决流程执行问题。
RAG 与微调
RAG 解决的是事实检索和知识更新问题。微调解决的是模型行为、格式、风格、任务习惯和领域语言分布问题。两者不是替代关系。
| 需求 | 优先方案 | 原因 |
|---|---|---|
| 回答公司制度、产品文档、法规、论文 | RAG | 知识更新频繁,需要可引用 |
| 固定输出格式、语气和任务模板 | SFT / LoRA | 属于行为和格式适配 |
| 低成本部署小模型 | 蒸馏、量化、LoRA | 降低推理成本 |
| 专业术语和领域语言 | 继续预训练 + RAG | 语言分布和事实来源都要处理 |
微调方法
| 方法 | 机制 | 适合 | 风险 |
|---|---|---|---|
| 全量微调 | 更新全部参数 | 有模型所有权和算力的团队 | 成本高,容易遗忘 |
| LoRA | 冻结基础模型,训练低秩适配矩阵 | 格式、风格、任务适配 | 不适合实时知识更新 |
| QLoRA | 量化模型后训练 LoRA | 显存有限的实验 | 量化精度需要验证 |
| Prompt / Adapter | 用提示或轻量模块影响行为 | 快速实验 | 稳定性有限 |
部署优化
这里只讲大概流程:先确定任务是否需要实时知识,再决定 RAG 或微调;再用小规模样本验证质量;最后根据成本选择量化、缓存、模型路由或蒸馏。生产级监控、灰度和集群治理不在本站展开。
应用场景
| 场景 | 推荐路线 | 输出 |
|---|---|---|
| 企业制度问答 | RAG + 引用来源 | 带证据的回答 |
| 合同条款改写 | SFT/LoRA + 模板校验 | 固定格式文本 |
| 客服高频问题 | 小模型蒸馏 + 缓存 | 低成本响应 |
| 专业报告生成 | RAG + 少量格式微调 | 可审阅报告 |
Python 库
| 库 | 作用 |
|---|---|
transformers | 模型加载、推理和训练入口 |
peft | LoRA、QLoRA 等参数高效微调 |
datasets | 训练/评估数据处理 |
sentence-transformers | Embedding 和语义检索 |
chromadb / faiss-cpu | RAG 向量检索 |
最小示例
python
from peft import LoraConfig
lora_config = LoraConfig(
r=8,
lora_alpha=16,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
task_type="CAUSAL_LM"
)
print(lora_config)这段代码只展示 LoRA 配置入口。完整训练还需要数据集、基础模型、训练器和评估集。
延伸阅读
下一步
- 如果需求需要跨系统行动:看 Agent 架构模式。
- 如果知识需要结构化关系和解释路径:看 KG、RAG 与 Agent。
- 如果要判断上线质量:看 评估与风险。
