资讯动态

大模型知识增强技术:RAG与CAG的对比与应用

发布时间:2026/9/20 7:39:36 来源:尧图企业网站定制
1. 大模型知识增强技术概述在人工智能领域大模型的知识增强技术已经成为解决模型幻觉问题和提升专业领域表现的关键手段。简单来说这类技术就是给大模型装外挂——通过外部知识库来补充模型训练数据之外的实时、专业信息。目前主流的两种技术路线RAG检索增强生成和CAG上下文增强生成各有特点适用于不同场景。我接触过不少企业客户他们常问该选RAG还是CAG这个问题没有标准答案就像问该用螺丝刀还是扳手一样关键要看具体要拧什么。本文将结合我在金融、医疗、法律等行业的落地经验详细拆解这两种技术的实现原理、适用场景和选型要点。2. RAG技术深度解析2.1 RAG的核心工作原理RAG的工作流程可以类比图书馆查资料先通过检索系统图书馆目录找到相关文档书籍再把文档内容书页交给大模型研究员进行总结提炼。具体实现包含三个关键环节文档预处理将PDF、网页等非结构化数据转换为向量嵌入embedding。这里推荐使用OpenAI的text-embedding-3-large或开源的bge-small-chinese模型实测在中文场景下召回率能提升15-20%。向量检索采用FAISS或Milvus等向量数据库通过近似最近邻ANN算法快速匹配查询。这里有个关键参数要调优——返回的文档片段chunk数量。根据我的经验通用场景3-5个chunk专业领域如法律条文5-8个chunk每个chunk建议300-500token生成增强将检索结果作为上下文输入模型。这里要注意prompt engineering的写法prompt f请基于以下参考信息回答问题 {retrieved_docs} 问题{query} 2.2 RAG的典型应用场景在医疗咨询系统中我们采用RAG架构实现了药品说明书实时查询功能。当用户询问阿司匹林能否与布洛芬同服时系统会检索最新版药品说明书数据库提取药物相互作用章节生成带有具体剂量建议的回复这种架构的优势在于知识更新成本低只需更新向量库回答可追溯可标注引用来源适合需要严格依据权威资料的场景重要提示RAG对检索质量极其敏感。我们曾遇到因chunk划分不当导致关键信息被截断的情况后来改用滑动窗口重叠分块overlap20%解决了问题。3. CAG技术详解3.1 CAG的底层逻辑如果说RAG是查字典那么CAG更像是专家会诊。它通过以下方式增强模型表现动态上下文构建根据对话历史自动提取关键实体和关系知识图谱补全将结构化知识注入生成过程多轮记忆保持维护跨对话轮次的上下文一致性在金融风控场景中我们开发的CAG系统会graph TD A[用户提问] -- B(实体识别) B -- C{是否核心实体?} C --|是| D[关联规则触发] C --|否| E[常规生成] D -- F[知识图谱查询] F -- G[生成带业务规则的回复]3.2 CAG的技术实现要点实现高效CAG需要关注三个层面上下文管理采用LRU缓存维护对话状态关键实体使用特殊标记如公司_腾讯对话轮次衰减系数建议设为0.85-0.95知识注入方式def inject_knowledge(context): entities extract_entities(context) for entity in entities: if entity in knowledge_graph: context f\n# 知识补充{knowledge_graph[entity]} return context生成控制通过logit_bias强化关键词生成概率设置max_external_knowledge_tokens限制建议≤128token4. RAG与CAG选型指南4.1 决策维度对比维度RAG优势场景CAG优势场景知识时效性高频更新如新闻稳定知识如产品手册查询复杂度明确的具体问题开放域多轮对话实施成本中等需维护向量库较高需构建知识图谱可解释性强可追溯文档中等依赖模型推理响应延迟较高含检索时间较低纯生成4.2 混合架构实践在实际项目中我们经常采用混合方案。例如智能客服系统第一层用RAG处理产品文档查询第二层用CAG管理对话状态异常情况fallback到人工规则关键实现代码结构class HybridSystem: def __init__(self): self.retriever RagRetriever() self.dialog_manager CagManager() def respond(self, query): # 并行执行 rag_results self.retriever.search(query) cag_state self.dialog_manager.update(query) # 决策融合 if rag_results.score 0.7: return generate_from_rag(rag_results) else: return generate_from_cag(cag_state)5. 常见问题解决方案5.1 RAG检索不准怎么办我们总结的检索质量提升四步法分块优化尝试不同chunk_size256/512/768嵌入模型调优对比bge、text-embedding-3等模型元数据过滤添加发布时间、来源等过滤条件重排序用cross-encoder对top结果再排序5.2 CAG出现知识冲突怎么处理典型解决方案包括置信度阈值设置knowledge_confidence_threshold0.65多源验证检查3个以上可靠来源人工审核队列对高风险回答进入人工复核5.3 如何评估系统效果建议的评估指标组合基础指标BLEU-4, ROUGE-L业务指标首答解决率医疗≥85%平均对话轮次客服≤2.3轮人工评估def human_eval(answer): return { accuracy: 0-5分, completeness: 0-3分, safety: pass/fail }6. 实战经验分享在最近的法律咨询项目中我们发现几个关键经验冷启动技巧先用RAG积累足够多的QA对基于高频问题构建CAG的知识图谱逐步过渡到混合模式性能优化RAG的检索环节使用GPU加速FAISS-GPUCAG的上下文窗口采用分级缓存短期记忆当前对话TTL30min长期记忆用户画像TTL7d成本控制RAG的chunk嵌入可离线预处理CAG的知识图谱按需加载对非关键查询使用小模型如ChatGLM3-6B最后需要提醒的是无论选择哪种方案都要建立完善的数据飞轮——持续收集bad case用于模型迭代。我们团队维护的反馈系统每天能捕获200个改进样本这是提升系统效果的最宝贵资源。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价