在 AI 产品开发中,通用大模型常因 “知识盲区”(训练数据只到某个时间点,且不包含企业私有信息) 陷入困境 —— 无法回答未训练的企业私有数据、最新活动信息等内容。为解决这一痛点,模型微调与检索增强生成(RAG) 成为两大关键技术。本文将拆解这两项技术的核心逻辑、适用场景,并结合 Dify 平台实操。
一、大模型知识盲区的根源
1. 大模型的 “学习路径”
要选对技术方案,得先明白大模型的 “能力边界” 从哪来。它的知识和能力靠 “三段式训练” 决定,每一步都埋下了 “盲区伏笔”。
预训练阶段:相当于让模型 “读遍公开互联网”,从新闻、论文到论坛帖子,海量通用数据让它学会语言理解、逻辑推理,但输出毫无章法。比如问 “西班牙首都是哪”,早期预训练模型可能答 “希腊首都是雅典”,答非所问却语法通顺。
监督微调(SFT)阶段:给模型 “改作业,用标准问答对(比如 “西班牙首都是?→马德里”“如何申请报销?→需提交发票 + 审批单”)训练,让它学会 “按指令输出”,纠正混乱的表达逻辑。
强化学习(RLHF)阶段:按人类喜好 “优化答案”, 比如让模型优先输出准确、简洁、合规的内容,过滤掉冒犯性或错误信息,但这一步不增加新知识,只优化表达质量。
2. 大模型的两大使用限制
正是这样的训练逻辑,让大模型存在两个绕不开的短板,也成了微调与 RAG 的用武之地:
领域限制:只懂 “公开常识”,不懂 “私有信息”。比如企业的客户数据、内部流程、产品未公开参数,这些没被收录到训练数据里的内容,大模型根本答不上来。
时间限制:知识有 “保质期”。比如 GPT-3.5 的训练数据截止到 2021 年,它不知道 2023 年的俄乌冲突后续,也不知道你公司 2024 年刚推出的新品。要更新这些知识,就得重新训练,单次成本动辄上千万,中小企业根本承担不起。
二、微调与 RAG 到底选哪个
面对大模型的知识盲区,微调和 RAG 是两种完全不同的解法:一个是 “给模型植入知识”,一个是 “让模型查资料答题”。两者的适用场景、成本和落地难度差异极大,选对了能省 90% 的精力。
| 对比维度 | 模型微调 | 检索增强生成(RAG) |
|---|---|---|
| 核心逻辑 | 基于开源模型二次训练,修改模型内部参数,将知识 “植入” 模型本身 | 不修改模型,通过实时检索外部知识库,把相关知识片段 “拼到提示词里” 让模型参考 |
| 知识更新效率 | 周期长(天级甚至周级)—— 更新知识需要重新训练,无法实时同步新信息 | 效率高(分钟级)—— 只要更新知识库,模型下次检索就能获取新内容 |
| 成本结构 | 前期成本高(需要标注数据、占用算力,单次训练可能几十万),后期边际成本低 | 前期成本低(无需训练,只需搭建知识库),后期仅需维护知识库,边际成本极低 |
| 适用场景 | 知识稳定、长期不变的领域。比如医疗行业的固定术语、数字人的专属语言风格、企业固定话术模板 | 知识需要实时更新或内容零散的场景。比如企业最新活动规则、内部手册查询、行业新规解读 |
| 行业应用频率 | 仅 10% 的场景会用 —— 多集中在高端制造、医疗等专业领域 | 90% 的 AI 产品首选 —— 从客服问答、内部助手到营销工具,几乎都离不开 |
举个直观的例子:
如果你要做一个 “品牌数字人”,需要它模仿创始人的说话风格(比如语气亲切、常用 “咱们”“一起”),这种长期不变的 “风格知识”,就适合用微调,一次训练,数字人就能一直保持这个风格。
但如果这个数字人还要回答 “本月新品优惠”“线下门店地址”,这些每月都可能变的信息,就必须用 RAG,只要把新的活动文档上传到知识库,数字人就能实时回答,不用重新训练。
一句话总结:大部分场景先试 RAG,只有当需要 “固定风格” 或 “专业术语植入” 时,再考虑微调。
三、 RAG 怎么落地
既然 RAG 是大多数场景的首选,那它到底是怎么让大模型 “查资料” 的?其实核心流程就三步:“把知识存进库→用户提问时找知识→结合知识生成回答”。每一步都有关键细节,直接影响最终效果。
1. RAG为什么能 “精准找知识”
传统的关键词检索(比如 Ctrl+F)有个大问题:只会 “逐字匹配”,不懂语义。比如用户问 “这个产品多少钱”,如果知识库写的是 “该商品定价是多少”,关键词检索就找不到,但 RAG 用的 “向量检索” 能解决这个问题。
向量检索即把文本转换成一串数字(叫 “向量”),语义越相近的文本,向量在 “数字空间” 里的距离就越近。比如 “多少钱” 和 “定价多少” 的向量距离很近,模型一看就知道这是一个意思。这样一来,哪怕用户提问的措辞和知识库不一样,RAG 也能精准找到相关内容。而且它还支持多语言检索,比如用英文问 “What’s the price”,也能找到中文知识库的 “定价” 相关内容。
不用纠结向量检索的底层算法,市面上有成熟的模型(比如 BAAI/bge-m3、OpenAI 的 text-embedding-ada-002),直接用就行,选的时候看哪个在你的数据上测试效果更好,比如检索准确率更高、速度更快。
2. RAG 全流程拆解
以 “企业内部客服助手” 为例,要让它能回答 “报销流程”“考勤制度” 这类问题,RAG 落地需要 5 个关键步骤,每个步骤的细节都不能错。
(1)数据清洗
知识库的 “原料质量” 直接决定检索效果。比如上传的《报销制度》文档里,有页眉页脚、版权声明,还有乱码的特殊字符,这些都会干扰检索,所以第一步要做 3 件事:
删无用信息:去掉文档里的页眉、页脚、广告、HTML 代码标签,只留核心内容(比如 “报销需提交的材料”“审批流程”)。
清特殊字符:过滤掉无意义的表情符号、乱码符号,修正错别字(比如 “报消” 改成 “报销”)。
数据脱敏:如果文档里有员工手机号、财务数据这类敏感信息,要做脱敏处理(比如手机号中间四位用 * 代替),避免信息泄露。
(2)文档分段
大模型有 “Token 上限”, 比如 GPT-4 一次最多能读 128000 个 Token(大概相当于5万字),如果把一本 10万字的《员工手册》直接上传,模型根本读不完。所以要把长文档切成小片段:
语义分段(推荐):按文档的结构(比如 Markdown 的 #标题、## 小标题)或段落拆分,保证每个片段的语义完整。比如把《报销制度》拆成 “报销材料”“审批流程”“到账时间” 三个片段,避免把 “审批流程” 的中间部分切到另一个片段里。
参数设置:一般片段长度设为 500 Token 左右(大概 300-400 中文字),同时保留 50 Token 的 “重叠内容”,比如前一个片段的结尾是 “审批需经部门经理签字”,后一个片段的开头也包含这句话,这样能避免语义断裂。
工具实操:在 Dify 这类平台里,直接选 “按语义分段”,设置好长度和重叠率就行,不用自己写代码。
(3)向量化存储
这一步是把分好段的文本,通过 Embedding 模型转换成向量,再存到专门的 “向量数据库”(比如 Milvus、Chroma)里 —,你可以理解为 “给每个知识片段编了个‘数字身份证’,方便后续快速查找”。
在 Dify 这类低代码平台里,这一步是自动的:上传文档、分好段后,平台会自动调用 Embedding 模型生成向量,然后存到内置的向量数据库里,不用手动操作。
(4)检索排序
当用户提问时(比如 “报销需要哪些材料”),RAG 会分两步找到最匹配的知识片段:
初排:用传统的 BM25 算法快速筛选 —— 先根据关键词(比如 “报销”“材料”)找出一批可能相关的片段,缩小范围。
精排:用 Re-rank 模型再筛选 —— 根据语义相似度给初排的结果打分,把最相关的 3-5 个片段挑出来(太多会导致模型信息过载,太少可能漏关键内容)。
关键参数:设置 “相似度阈值”,比如 50%—— 只有相似度超过 50% 的片段才会被选中,避免把不相关的内容传给模型,导致回答出错。
(5)提示词拼接 让模型 “只按知识库回答”
最后一步是把检索到的知识片段,拼到提示词里传给大模型,同时加约束条件,避免模型 “瞎编”。比如提示词可以这么写:“你是企业内部客服助手,仅使用以下标签中的内容回答用户问题,若标签中没有相关信息,直接回复‘暂无相关规定,请咨询 HR’。
【标签内容】
报销需提交的材料:1. 正规发票(盖公章);2. 费用明细单;3. 审批单(部门经理签字)。
审批流程:提交材料后,HR 在 3 个工作日内审核,审核通过后财务在 5 个工作日内打款。”
这样一来,模型只会基于你给的知识回答,不会用自己的 “常识” 编造信息 —— 比如用户问 “报销多久到账”,模型会准确说 “5 个工作日”,而不是乱猜 “3-7 天”。
四、用 Dify搭RAG 应用
很多人觉得 RAG 落地需要复杂的技术,但用 Dify 这类低代码平台,不用写一行代码,半天就能搭好一个能 “查知识库” 的 AI 助手。这里以 “企业内部客服助手” 为例,讲清楚关键步骤。
1. Dify的定位
先明确一点:Dify 不负责做用户界面、用户登录这些传统软件功能,它的核心是帮你快速搭建 “大模型 + 知识库” 的 AI 能力。搭建好后,你可以通过 API 把这个能力集成到企业微信、飞书或者自己的 APP 里。
它的核心模块有四个,用起来很直观:
模型调用:能对接 GPT-4、DeepSeek、文心一言等主流大模型,选一个你常用的就行。
知识库:RAG 的核心,支持上传各种格式的文档(PDF、Markdown、TXT 等),自动完成清洗、分段、向量化。
第三方插件:可以对接企业的 ERP、CRM 系统,比如让 AI 助手能查客户订单数据(不过这是进阶功能,新手先从知识库开始)。
工作流编排:可视化设计任务流程,比如 “用户提问→检索知识库→生成回答→推送工单”(适合复杂场景,初期用不到)。
2. 知识库构建
- 第一步 创建知识库
进入 Dify 的 “知识库” 模块,点击 “新建知识库”,起个名字(比如 “企业内部制度库”),然后选择 “上传文档”—— 支持单次上传多个文件,单个文件不超过 16MB,常见的 PDF、Word、Markdown 格式都能传。
- 第二步 配置分段和向量模型
分段设置:选 “按语义分段”,最大片段长度设为 500 Token,重叠长度设为 50 Token,同时勾选 “识别 Markdown 标题”(如果你的文档是 Markdown 格式),这样能保证分段更精准。
向量模型:默认选 BAAI/bge-m3(免费且效果好),如果你的文档是英文,也可以选 OpenAI 的 text-embedding-ada-002—— 选好后点击 “开始处理”,平台会自动完成文档清洗、分段和向量化。
- 第三步 关联应用
进入 “应用” 模块,新建一个 “聊天助手”,起个名字(比如 “内部客服助手”),然后在 “知识库关联” 里,选择刚才创建的 “企业内部制度库”。
配置提示词模板:在 “系统提示词” 里写清楚助手的身份和回答规则,比如 “你是企业内部客服助手,仅使用关联知识库的内容回答问题,未知内容回复‘暂无相关规定,请咨询 HR’”。
测试效果:点击 “预览”,输入 “报销需要哪些材料”,如果助手能准确引用知识库的内容回答,就说明搭建成功了,后续可以通过 API 把这个助手集成到企业微信里,员工就能随时提问。
五、微调与 RAG 的 “组合用法”
虽然大多数场景用 RAG 就够了,但有些复杂场景需要两者结合 —— 比如 “品牌数字人”“专业医疗助手”,这样既能保证风格统一,又能实时更新知识。
1. 品牌数字人案例
某家电品牌想做一个创始人形象的数字人,用于直播和用户问答,需求有两个:一是说话风格要像创始人(亲切、常用 “咱们的产品”“用户放心”),二是能回答 “本月新品优惠”“线下门店地址” 这类实时信息。解决方案是 “微调 + RAG” 结合:
用微调固定 “语言风格”:收集创始人过去的演讲、采访文本,用这些数据微调开源模型(比如 Llama 3),让数字人学会用创始人的语气说话,一次训练,后续不用再改。
用 RAG 更新 “实时信息”:把本月新品优惠、门店地址更新到知识库,数字人回答这类问题时,会先检索知识库,再用创始人的风格组织语言 —— 比如 “咱们本月的新品空调有 8 折优惠,您可以去线下 30 家门店体验,具体地址在咱们的官网能查”。
2. 医疗助手案例
某医疗平台想做一个面向医生的 AI 助手,需求是:能解释 “肺结节 CT 报告术语”,又能引用 2024 年最新的《肺结节诊疗指南》。解决方案同样是 “微调 + RAG”:
用微调植入 “专业术语”:收集医学教材、权威论文里的肺结节术语解释(比如 “磨玻璃结节”“实性结节” 的定义),微调模型让它能准确解释这些术语,不用每次检索。
用 RAG 更新 “最新指南”:把 2024 年的《肺结节诊疗指南》上传到知识库,医生问 “2024 年指南里肺结节随访建议是什么” 时,助手会检索知识库,结合专业术语给出准确回答。
六、选型总结
最后给一个简单的决策框架,快速判断自己的场景该用哪种技术:先看 “知识是否需要更新”:如果知识是动态的(比如活动、新规、产品价格),直接用 RAG;如果知识是固定的(比如术语、风格),进入下一步。再看 “成本和周期”:如果预算有限(低于 10 万)、需要快速落地(1 周内),优先试 RAG;如果预算充足、能接受长周期(1 个月以上),进入下一步。最后看 “是否需要深度适配”:如果需要模型 “骨子里懂” 某个领域(比如数字人风格、医疗术语),用微调;否则,RAG 足够。
其实对大多数中小企业来说,90% 的场景用 RAG 就能解决问题,不用纠结复杂的训练技术,先搭个知识库,让大模型能 “查资料”,比什么都重要。毕竟,能解决实际业务问题的技术,才是好技术。