通用大模型虽强,企业为何仍需自训?RAG与微调实战

📅 发布时间:2026/9/19 4:36:44
通用大模型虽强,企业为何仍需自训?RAG与微调实战
“公用大模型已经这么强了为什么我们还要花几百万训练自己的模型”这是过去一年里我在企业端听到最多的问题。上个月帮一家工业设备客户做技术选型时信息中心负责人又把这个问题摆在我面前。我没有急着回答只给他看了一份内部测试报告——同样一个维修知识问答公共大模型把三个不同型号的液压阀参数全部搞混了给出的更换步骤里还掺了几条完全不存在的警告信息。这个例子其实已经把答案说了一半公用大模型越来越强强的方向是覆盖足够多的通用数据而不是成为某一家企业的“业务专家”。那另一半答案是什么企业到底该不该训练自有大模型边界在哪里路径怎么走成本多少我结合自己做过的大模型项目把这些事一次讲透。1. 什么都会不等于什么都对通用大模型在落地时的真实短板很多企业是被公共大模型的惊艳表现吸引来的但真正进入业务场景后往往会遇到一种无力感模型什么都懂唯独不懂你和你的业务。通用大模型的知识来自公开语料训练截止时间固定它天然无法覆盖企业内部数据、实时政策、产品规格、组织权限和未公开的行业经验。这不是通过“更聪明的prompt”就能完全解决的因为知识源头压根不在模型脑子里。1.1 幻觉不是Bug而是预训练知识上限造成的必然结果大模型的本质是“词语接龙”根据上文预测下一个最可能的token。它生成的回答是一种概率分布采样而不是数据库查询。在常识密集的开放领域训练语料足够丰富模型能靠“接龙”接出正确内容但在专业细分领域当语料稀少或存在冲突时模型就会为了“流畅地接下去”而编造事实。这就是幻觉的根源。企业内部知识往往是不会出现在互联网上的设备维修手册、历史故障记录、客服话术、售后政策、产品配置参数这些语料天然不在公共模型的预训练集里。于是模型只能靠泛化硬猜结果就是在工程师眼里漏洞百出。我之前做过一个质检场景测试让公共大模型回答“某型号设备故障码E-403的处理流程”模型给出了一个看起来非常专业、但实际上混合了三个不同型号操作说明的答案。这种错误比直接说“不知道”更危险。1.2 企业需要的是稳定正确而不是随机惊艳公共大模型还有一个被低估的问题不确定性。同一个问题今天问和明天问结果可能不同同一批问题换一个模型版本结果差异更大。对写文案、头脑风暴这类创意场景这种随机性可以容忍但对工单生成、售后诊断、合规审核这类业务场景企业需要的是“同样的输入产生同样稳定且正确的结果”而不是偶尔超常发挥、偶尔翻车。另外公共API服务很难做细粒度的权限控制。企业里不同角色能看的资料范围不一样一线客服、研发工程师、财务人员应该被隔离在不同的知识域中。公共大模型不关心你想按角色隔离数据它只关心token计费。把企业数据发给外部API意味着企业的知识边界直接被突破部门保密和权限管理无从谈起。2. 训练自有模型不是推倒重来从借力到专属的完整路线图听到“企业训练自有大模型”很多人的第一反应是“我们要从头造一个GPT”。这是最大的误解。真正落地的企业自训绝大多数不是从零预训练而是在成熟开源基座模型之上做“适配”。所谓训练是一条从轻到重的光谱企业完全可以根据自身情况选择位置。路线需要的数据量算力成本适用场景直接调用公共API几乎为零最低通用问答、内容摘要、翻译、头脑风暴RAG外挂知识库企业文档、FAQ低实时知识检索、引用溯源、私有知识问答LoRA/PEFT微调数千至数万条指令对单卡至几卡领域术语、角色风格、输出格式、特定行为全参微调十万级以上指令多卡集群领域数据非常充足行为有显著差异从零预训练海量高质量语料很高特殊语言/模态/词表极致数据主权这个表基本覆盖了目前企业自训的常见路径。说实话90%的企业不需要走到最下面两格。2.1 为什么说微调和外挂知识库要配合使用这是我觉得最值得强调的一点。RAG和微调不是二选一而是互补的组合。RAG负责“让模型知道最新知识和具体事实”原理是在模型回答前先从外部知识库检索相关内容拼进上下文里。它的优势是知识可以随时更新还能给出引用来源非常适合企业内部文档、政策、产品资料这类动态内容。但RAG解决不了“行为方式”的问题。比如你需要客服模型先道歉、再核实、再给方案最后按工单格式输出你需要审核模型严格按照某套检查清单逐项判断你需要售后模型用公司规定的语气回复。这些“怎么说话、按什么结构输出、遵循什么推理流程”的问题是RAG很难控制的却是微调非常擅长解决的。我的经验是先搭RAG解决知识缺失再评估是否真的需要微调。很多场景在把RAG做好之后效果已经能达标微调是锦上添花。但也有一些场景比如结构化输出、固定话术、强规则审核没有微调模型的行为就始终不可控。2.2 从零预训练什么情况下才值得考虑说实话从零预训练是我最不建议的方向除非遇到少数极端场景。第一种是业务文本和公开语言差异极大比如军工领域的定制化符号、工业协议描述、特定行业暗语公共模型的分词器甚至无法理解你的语言这时候才需要考虑从词表开始训练。第二种是企业需要完整的模型知识产权希望自己持有基础模型层面的所有权。第三种是完全离线的封闭环境不能依赖任何外部开源权重。除了这些从零预训练既不划算也不必要。我之前接触过一个自称“自研基础大模型”的项目拉出来一看训练数据几乎全是公开语料拼凑的模型结构也是开源底座的换皮实际效果和工作量根本不成比例。企业别被“自研大模型”的光环冲昏头先把微调和RAG用好成本低得多见效也快得多。3. 数据主权与合规企业自训模型的最大驱动力如果只用一句话回答“企业为什么仍要训练自有大模型”那就是数据主权。公共API调用意味着你的提示词、上传的文档、对话记录都会离开企业边界进入供应商的服务链路。对研发代码片段、客户信息、招投标资料、财务数据来说这是很多企业无法接受的。更何况还有数据出境与跨境处理限制、行业监管要求在背后企业必须能够回答“我的数据在哪里训练过、在哪里部署、谁能访问日志”这些问题而公共API很难给出令人满意的答案。3.1 本地化部署的自研模型如何满足审计与权限要求自训练不只是把模型权重拿到手本地化部署才是完整闭环。模型部署在企业自己的环境之后有一个重要红利可以在模型前面放一层统一的AI网关做身份认证、权限判断、内容脱敏、关键词检查和全量日志记录。我做过一个企业知识库问答项目网关里配置了三种角色客服主管能看到完整的售后政策一线客服看不到成本相关字段研发人员只能访问技术文档。每次问答都会记录用户ID、提问内容、模型回复和命中知识片段所有数据只留在内网。这样的能力公共API是给不了的。3.2 合规不是目的信任才是很多企业谈合规是因为怕出事但自训练带来的真正价值是信任。员工敢把自己的疑问输入公司自有的模型因为他知道这些数据不会变成外部训练素材客户敢把使用场景讲清楚因为知道供应商能把数据边界控制住。这种信任某种程度上比模型能力更稀缺。不过要提醒一句自训不是隐私保险箱。如果训练数据里包含手机号、身份证号、地址模型在推理时可能“背出”这些敏感信息这属于记忆泄露。训练之前必须做充分的脱敏处理这是很多团队容易忽略的坑。我见过一个团队微调客服模型训练集里直接放了客户姓名和订单号结果演示时模型居然能完整说出某位真实客户的名字当场翻车。4. 领域知识注入从数据采集到微调落地的完整实操有了前面这些判断如果企业确实要训练自有模型接下来最关键的环节就是数据。很多团队在还没想清楚“正确答案长什么样”之前就开始训模型结果反复试错、浪费大量算力。我的建议是动手前先完成一套完整流程需求定义、数据采集、数据清洗、指令构造、基座选择、微调训练、评估部署。指令数据的格式目前开源生态里最通用的是instruction/input/output三元组。举个例子{ instruction: 用户询问液压系统压力不稳请给出排查步骤, input: 型号为H-2000压力值在4到7MPa之间波动, output: 第一步检查溢流阀调节螺母是否松动。第二步检查油泵吸油口滤芯是否堵塞。第三步查看压力表接头是否密封不良。 }看起来很简单但真正决定效果的不是格式而是数据质量。1000条覆盖典型场景的干净数据效果往往好于10万条从网上爬来的杂乱语料。这一点再怎么强调都不为过。4.1 训练数据不是越多越好质量才决定上限我踩过最深的坑就是盲目堆量。第一次做金融客服微调时团队收集了二十万条历史会话记录直接扔进训练脚本结果模型学到了一堆“好的”“收到”“亲您的问题已提交”这样的废话真正要用的业务能力完全没起来。后来把训练集清洗重做只留三万条高质量样本并把重复、冲突、错别字、过时信息全部清理掉效果反而提升了一大截。数据清洗有几个要点一是去重重复样本会让模型过拟合二是做内容一致性校验同一问题绝不能出现两个矛盾答案否则模型会学会“摇摆”三是删除包含敏感信息的样本四是把答案写得结构化、规范化、可审计。每一条数据都要经过“标注—复核—验收”的流程宁可少而精不要多而糙。4.2 基座模型选择中文场景下考察哪些指标现在开源基座模型已经很成熟中文场景的常见选择包括Qwen系列、Llama系列、以及社区中活跃的其他中文模型。选择基座时不要只看榜单分数要结合自己的业务场景考察几个维度中文理解能力是否达标、授权协议是否允许商用、上下文长度是否够用、社区的微调教程和量化方案是否成熟、能否和vLLM、Ollama等推理框架无缝配合。我的实际操作方法是先准备一个20到50条问题的业务评测集把所有候选基座模型挨个跑一遍人工打分排序。这个评测集要包含自己业务里最典型的提问方式和最难的知识点。模型“通用能力很强”不等于“懂你的业务”只有用业务数据说话才靠谱。4.3 微调之后过拟合和灾难性遗忘怎么破微调训练不是跑完就完事常见的问题是模型在垂直领域变强了但通用能力回退了也就是“灾难性遗忘”。这也是我早期做LoRA时最容易翻车的点训练集里全是售后维修问答训完之后模型连日常寒暄都不会了问“你好”它能给你回复“请检查油管接头是否漏油”。解决办法有几个。第一训练集中按10%到20%的比例混入通用对话数据让模型保持基本语言能力。第二学习率不要太大LoRA训练一般用1e-4到2e-4学习率过大会把原模型权重冲崩。第三每个epoch保存一个checkpoint训练后用通用评测和业务评测一起打分选择一个兼顾两者的版本。第四如果发现过拟合优先减少训练轮数而不是继续加数据。我通常训练3到5个epoch等验证集loss不再下降就提前停止绝不死板地跑满固定轮数。5. 部署与成本核算为什么开源底座自训练反而长期更省很多企业一听“自训练”就觉得要花很多钱但算总账之后情况可能相反。公共API的付费模式是“每token计费”用量越大成本越高而且这个成本是持续性的、每月都在发生。自有模型则是“前期固定成本后期边际成本”训练是一次性投入部署后的推理成本可以被压到很低。对企业内部高频调用场景比如客服、质检、工单填写自训练模型更划算。5.1 拿一个实际规模算一笔账我们算一笔粗略的账。假设一个中型客服系统日调用5万次每次平均800输入token加400输出token。按目前市面主流中文大模型API每百万token输入1到2元、输出2到6元的区间估算单日成本大概在几十元到两百元之间一年下来就是几万到几十万元的量级。这还没算跨企业数据对接、权限管理、合规审计的附加成本。自训方案则不同租赁一台带有24GB显存的GPU用LLaMA Factory这类框架跑LoRA训练针对7B或14B量级的模型几天内就能完成训练。训练完成后用vLLM部署一张卡可以承载相当可观的并发请求日常推理电费和折旧成本远低于同等调用量的API费用。当然前期投入不只是硬件数据工程师和算法工程师的时间也要算进去。如果企业完全没有懂数据清洗和微调的人直接上自训可能会翻车这是现实。5.2 部署中的典型坑上下文长度、并发、量化精度部署阶段有几个容易踩的坑。第一是上下文长度不是越长越好。很多人把几万字的文档一次性塞给模型导致显存爆掉、响应超时。正确的做法是在应用层做文本切分只把最相关的片段拼进上下文。第二是并发控制vLLM的continuous batching能提升吞吐但KV Cache会占用大量显存并发数不能拍脑袋设要结合显存监控来调。第三是量化精度INT4/INT8能大幅降低显存占用但不是所有模型层都适合低比特量化建议使用AWQ、GPTQ这类成熟方案并且用业务评测集做量化前后的质量对比不能只看显存省了效果垮了。6. 企业自训大模型的落地闭环一个六步走的方法说了这么多最后给出一套我在项目中反复验证过的落地方法。它不是万能模板但能让企业少走很多弯路。业务梳理与需求边界列出50个真实业务问题分类标注“哪些问题用公共API就能解决”“哪些必须由私有模型兜底”。这一步做完自训的必要性基本就清楚了。数据治理与指令构造把历史工单、FAQ、产品说明书、客服对话转换成指令数据做清洗、去重、脱敏、双人标注。模型训练与迭代先用RAG跑通再上LoRA微调。先准备几十个典型问题做快速验证确认方向正确后再扩大数据规模。集成与权限管理把模型接入统一网关配置角色权限、Prompt模板和调用日志。运维监控与回归评测建立一套业务评测集每次模型更新后自动跑分防止“越训越差”。数据回流与持续优化收集线上bad case定期人工修正后增量微调让模型随业务同步成长。这六步缺一不可。尤其第五步“回归评测”很多团队训完模型就上线结果下次更新时踩雷却不知道问题出在哪。有一份固定的评测集在手里所有版本之间的优劣就一目了然。6.1 小团队怎么用最低成本起步如果企业只有一两个懂算法的工程师预算也不高完全可以从开源生态起步。用LLaMA Factory做LoRA训练数据先拿1000条优质指令跑通用AutoDL这类云GPU按小时租卡训练完释放成本控制在数千元级别就能完成第一版模型。在云上训练、再导出到企业内网用Ollama或vLLM部署是目前小团队性价比最高的组合。6.2 上线之后不能一劳永逸数据回流与持续训练很多企业训练完第一版模型就以为大功告成三个月后业务规则发生了变化新政策推出来了模型还在用旧知识回答。所以我特别强调数据回流把线上用户反馈的bad case定期拉出来人工修正后加入训练集做一轮轻量增量微调。每次更新前保留上一版本用AB对比验证新版本效果再全量切换。这样模型才能一直是“活”的而不是上线即过时。最后讲讲我的个人体会。公用大模型越来越强这种强是广度上的强企业训练自有模型求的是深度上的准。两者不是替代关系而是分工关系。我做得越久越觉得企业不需要纠结“要不要训练大模型”而应该先回答“哪些场景由通用模型服务哪些场景必须由专属模型兜底”。如果这份边界清单足够清晰再用上开源基座、LoRA、RAG和vLLM这套组合拳三个月内看到实际价值完全有可能。记住一个很实用的判断标准当一个场景的错误答案会带来实际损失、当调用频率高到成本失控、当数据出域会引发信任危机时训练自有模型就不是选择题而是必答题。