跳到主要内容

RAG和微调理解

  • RAG:相当于给模型增加一个知识资料库,可以让LLM大模型边查边答
  • 微调:重新训练模型,让模型学习某些能力、更新数据

RAG和微调对比​

  • 微调:成本高、需要准备数据、清洗数据、大量的人力、时间成本 | 比较内容 | RAG | 微调 | | ---------- | ---------------------------------------------- | --------------------------------------- | | 核心思路 | 外部知识库检索 + 大模型生成答案。模型回答前先去知识库查资料,再基于检索结果回答。 | 用训练数据重新训练/调整模型参数,让模型学会某类知识、风格或任务能力。 | | 知识来源 | 来自外部知识库,例如 PDF、Word、网页、数据库、企业文档等。 | 来自训练数据集,需要提前准备大量高质量样本。 | | 动态知识更新 | 知识更新时,只需要更新知识库,重新切分、向量化、入库即可。 | 知识更新时,通常需要重新准备训练数据并再次微调模型。 | | 训练成本 | 不需要训练模型,成本较低。 | 需要训练模型,成本较高,包括数据准备、标注、清洗、算力和训练成本。 | | 上线速度 | 上线较快,适合快速接入企业知识库。 | 上线较慢,需要经历数据准备、训练、评估、部署等流程。 | | 可解释性 | 较好,可以返回引用来源,方便追溯答案依据。 | 较差,模型直接生成答案,不容易知道答案来自哪条训练数据。 | | 幻觉问题 | 可以基于检索到的真实资料回答,能降低幻觉,但检索错误时仍可能回答错误。 | 如果训练数据质量高,可以减少特定领域幻觉,但不能完全避免模型编造。 | | 适合场景 | 企业知识库问答、文档问答、客服机器人、法规/制度查询、产品手册问答。 | 固定任务优化、特定输出格式、语气风格统一、行业术语理解、分类/抽取任务。 | | 对实时信息支持 | 支持较好,只要知识库及时更新即可。 | 支持较差,模型训练完成后不会自动知道新知识。 | | 数据量要求 | 对训练数据要求低,但对知识库质量、切分、检索效果要求高。 | 对训练数据要求高,需要大量高质量样本。 | | 技术重点 | 文档解析、分块 chunk、向量化、向量数据库、检索、重排序、Prompt 拼接。 | 数据清洗、样本构造、模型训练、参数调整、评估、部署。 | | 主要风险 | 检索不到、检索错、分块不合理、上下文太长、引用内容不准确。 | 训练成本高、过拟合、数据质量差、更新困难、模型效果不稳定。 | | 是否改变模型参数 | 不改变模型参数。 | 会改变模型参数,或者训练额外的 LoRA/Adapter 参数。 | | 维护方式 | 主要维护知识库和检索链路。 | 主要维护训练数据、模型版本和训练流程。 | | 推荐使用优先级 | 大多数企业知识库问答场景,优先使用 RAG。 | 当 RAG 无法满足固定风格、复杂格式、稳定任务表现时,再考虑微调。 |