RAG不是万能的,附常见误解与澄清

RAG不是万能的,附常见误解与澄清
Photo by Igor Omilaev / Unsplash

能给人理清目前 AI 在生产落地的问题,是一件难能可贵的事情,AI 在生产落地会有哪些阻碍的讲解,讲干货的真的是很少,至少我自己曾经在这个问题上困惑了很久。

因为之前我在 AI 电商团队,做具体的 AI Sass 落地的时候,团队经常会沟通做到生产级可用的 AI,需要哪些东西,大概的门槛还是了解到一些的,我的能力也顶多在应用层面去做一些工作量的定制与代码衔接,涉及到模型层面,一概歇菜,很多人估计只是想着,写一个 Prompt ,就是真正的拥抱 AI 了。

当我看到自媒体里面铺天盖地的在讲 AI 如何帮助企业提效,如果重塑行业的时候,有种很复杂的感觉,他们真的懂 AI 吗,甚至他们真的懂软件吗?

基本上现在大家接触到的方式就几种:

  • 割韭菜卖课,讲概念,前景,这些基本上都是拿别人的产品来给自己做嫁衣,自己顶多是个工具的使用者和营销者,比如用 Midjourney,Kimi,豆包,海螺什么的,告诉大家用了就能提效,获得流量,然后接到商单或者快速起号
  • AI 工作流,常适用于图文生产,比如 AI 公众号,AI 图文矩阵之类,AI 在里面只是一个调用环节,大多是通过 prompt + function call 来做任务的调用,这跟你调用一个 hello world 没什么区别,一点都不神秘
  • AI 编程,算有些用吧,至少是实实在在看到的 AI 在编程中的提效,偏差较小

技术选择与应用场景误解

1.1 长文本处理、微调和 RAG 的比较和适用场景

误解:RAG 总是优于直接使用大模型或微调模型

澄清:

直接使用大模型适合:简单查询、通用知识问答、即时响应场景,如客服常见问题解答

微调适合:需要模型深度理解特定领域语言和概念(如医疗术语、法律条文)、语料相对固定且有限、追求统一输出格式和风格的场景

RAG 适合:需要实时获取最新信息、处理大量不断更新的文档(如产品手册、法规更新)、需要提供信息源引用以增强可信度的场景

混合方案的优势:基于领域微调模型结合 RAG 架构往往效果往往比单一方法效果最佳

1.2 RAG 的实际能力与局限性
误解
:RAG 可以回答任何关于文档的问题
澄清:
RAG 本质上是"检索增强"而非"完全理解",它基于检索片段进行回答

不擅长回答如"这份报告的整体结构是什么"或"文档中的论点如何递进发展"等需要全局理解的问题

检索效果受分块粒度影响显著:过大的分块会包含无关信息干扰答案,而过小的分块会丢失上下文关联

最后,在需要多角度综合或推理的问题上表现受限,如"基于这些财务数据,公司未来三年的发展战略应该是什么"

1.3 对 RAG 成本和复杂度的误解

误解:RAG 总是比微调更简单或成本更低

澄清:

RAG 系统包括文档处理、向量化、存储、检索、排序等多个环节,每个环节都有大量的优化空间

随着文档数量增长,存储和检索成本呈近似线性增长,大规模应用需考虑成本控制策略

维护成本往往被低估:文档更新、向量重新计算、检索策略调整等也需要持续投入,除非你的知识库是一成不变的

对比分析:处理 10 万页专业文档,一次性微调模型可能比长期维护 RAG 系统更经济,当然前提还是文档的更新是相对缓慢的

2 技术实现层面的误解

技术实现层面的误解

2.1 分词策略误解

误解:使用默认的分词策略适用于所有语言和领域

澄清:

****语言特性差异:****中文需要字词级分词而非空格分词,专业中文术语需要作为整体处理

****领域特性适配:****法律文本中的"第 X 条"、医疗文本中的"xx 指标"等也需要作为整体保留

技术实现对比:

基础分词:简单按句号、逗号等标点切分

语义分词:考虑段落、小节语义完整性的智能切分

混合分词:结合文档结构(标题、章节)和语义边界的复合切分

2.2

向量化过程的常见误区

误解:所有内容都需要向量化,且使用相同的向量模型

澄清:

内容类型差异化处理:

文本内容:适合使用文本 embedding 模型

表格数据:可考虑结构化向量化或表格专用 embedding

代码片段:代码专用 embedding 通常效果更好

向量模型选择依据:

通用应用:OpenAI text-embedding-3-large、Cohere embed v3 等通用模型足够

专业领域:BGE、GTE 等开源模型可针对垂直领域微调提升效果

混合索引策略:关键词索引+向量索引的双重索引往往比单一索引效果更好

维度与性能权衡:更高维度并非总是更好,1536 维 vs512 维在许多应用中差异不显著但成本相差 3 倍

2.3

检索策略选择的盲区

误解:简单的余弦相似度检索足以满足所有需求

澄清:

多样化检索策略比较:

BM25:适合精确关键词匹配,在技术文档、产品手册中表现良好

向量检索:适合语义理解,在客户问询、意图分析中表现良好

混合检索:结合两者优势,实践中对召回率的提升也有些明显的效果

参数调优经验:

top_k 值选择:一般推荐 3-5 个片段,太多会引入噪音,太少可能缺失关键信息

相似度阈值:0.7-0.8 是常见起点,但需要大家根据自己的业务场景容错性进行自定义调整

检索增强技术:

查询改写:将用户问题转化为更适合检索的形式

结果重排序:根据多维度相关性(不仅是向量相似度)重新排序

2.4

排序策略的优化空间

误解:检索结果的相似度分数直接反映其相关性

澄清:

多维度排序因素:

相关性:向量相似度只是一个维度

时效性:更新时间可作为排序权重,当然这种更适用于新闻、政策等时效性较高的内容

权威性:可给官方文档、核心政策等设置更高权重

排序策略优化路径:

初始阶段:单一向量相似度排序

进阶阶段:加入多因素加权排序

高级阶段:引入专门的重排序模型(如 Cohere rerank)

用户交互数据价值:点击、停留时间、反馈等用户行为数据是优化排序的重要反馈,当然前提是使用的人足够多

2.5

大模型选择的考量

误解:更大、更新的模型总是更好

澄清:

性能与成本平衡:

小模型(7-13B):适合简单总结、标准化回复,成本低、速度快

中型模型(13-70B):大多数企业应用的性价比选择

大型模型(70B+):复杂推理、多轮对话场景的最佳选择

闭源 vs 开源权衡:

闭源 API 优势:质量稳定、维护成本低、快速上手

开源模型优势:数据安全、可定制性强、长期成本可控

注:如果真的不是公司合规限制,初期POC阶段能用商业API的就别动手本地部署,有卡也别部,除非上来能部署个DeepSeek-R1满血版的。

3

项目实施层面的误解

3.1

过早本地化部署的陷阱

误解:企业应该从一开始就追求完全自主可控的本地部署

澄清:

快速 POC 的价值:

验证商业价值是技术路径选择的前提,"有没有用"先于"怎么用"

最快 POC 路径:云服务部署 RAGFlow/LlamaIndex + 商业 API + 简化数据集

典型 POC 周期:精简方案 2-4 周,完整方案 4-8 周

敏感数据处理策略:

实体识别和替换:使用 NER 工具识别并替换敏感实体(人名、机构名、金额等)

令牌化替换:保留数据结构,但用占位符替换实际内容,如"客户 A"、"金额 X"

本地向量化:在本地完成向量化,只把向量而非原始文本发送至云端

混合架构:敏感数据本地处理,非敏感数据云端处理

分阶段部署策略:

阶段一:云服务+商业 API(速度优先)

阶段二:混合部署(关键组件本地化)

阶段三:完全本地化(根据业务需求选择性实施)

3.2

完美主义陷阱

误解:RAG 系统必须达到接近 100%的准确率才能上线

澄清:

渐进式目标设定:

初始可接受准确率:70-80%(取决于业务容错性)

中期目标准确率:80-90%(基于用户反馈优化)

长期理想准确率:90%+(持续迭代提升)

实用性优先原则:

解决 80%常见问题的 80%系统比解决 100%问题但永远不上线的系统更有价值

提供替代路径:当系统无法准确回答时,引导用户转向人工渠道

错误类型区分:

致命错误:提供错误信息导致使用同事判断失误(需严格控制)

非致命错误:信息不完整或部分不准确(可接受一定比例)

3.3

忽视用户反馈的误区

误解:RAG 是一次性建设项目

澄清:

反馈闭环机制:

直接反馈:点赞/点踩、评分、问题报告

间接反馈:使用时长、重复提问率、人工求助转化率

反馈分析:识别常见失败模式和根本原因

持续优化策略:

数据侧优化:补充缺失信息、调整分块策略

检索侧优化:调整检索参数、改进排序算法

生成侧优化:优化提示词模板、调整模型参数

A/B 测试价值:

对比不同切片策略、检索方法或排序算法的实际效果

数据驱动决策而非主观判断

3.4

数据质量 vs 数据量的误解

误解:更多的文档意味着更好的 RAG 效果

澄清:

数据质量评估维度:

相关性:与业务问题的直接关联程度,这部分是重中之重,如果引入了很多噪声,也为调优工作增加了很多负担

时效性:信息的更新状态

权威性:信息来源的可靠程度

结构化程度:信息的组织清晰度

数据预处理关键步骤:

去重:识别并合并重复或高度相似内容

清洗:移除格式标记、无意义内容、噪音数据

结构化:将非结构化内容转化为结构化形式

数据更新策略:

增量更新:只处理新增或变更内容

定期全量更新:针对关键数据源的周期性刷新

基于时效性的差异化更新频率

4

行业最佳实践的思考

4.1

技术栈选择的平衡

最佳实践:

开源框架选择考量:

RAGFlow:适合快速部署,内置多种优化策略

LlamaIndex:灵活性高,适合定制开发

LangChain:生态丰富,社区支持广泛

商业 API 与开源模型混合使用:

核心功能使用高质量商业 API(如 DeepSeek-R1、Qwen 2.5 Max 等)

非核心或高频场景可考虑本地开源模型(如 DeepSeek-R1:32b/70B 等)

向量数据库选择因素:

小规模应用:FAISS、Chroma 等轻量级选项足够

大规模应用:Weaviate、Milvus、Pinecone 等分布式解决方案

特殊需求:Qdrant(过滤功能强)、PGVector(与现有 PostgreSQL 集成)

4.2

灵活配置和二次开发的重要性

最佳实践:

配置化 vs 代码化:

初期:以 UI 配置为主快速验证

中期:转向 Python API 获取更多控制力

长期:核心功能代码化以支持定制和持续优化

组件化架构优势:

分词组件可独立升级而不影响其他部分

向量数据库可平滑迁移或替换

大模型供应商可灵活切换

扩展接口预留:

数据源接口:支持未来接入新数据源

评估接口:便于接入第三方评估工具

人工干预接口:在自动化流程中预留人工介入点

4.3

评估和迭代策略

最佳实践:

多维度评估指标:

准确性:回答中正确信息的比例

完整性:回答覆盖问题所需信息的程度

相关性:回答与问题的直接关联程度

有用性:回答对用户实际问题的解决价值

标准测试集构建:

覆盖核心业务场景的典型问题

包含边界情况和挑战性问题

定期更新以反映业务变化

监控体系建设:

技术监控:响应时间、错误率、系统负载

业务监控:使用频率、解决率、用户满意度

成本监控:API 调用量、存储使用量、计算资源消耗

以上算是个比较完整的 checklist,大家可以针对自己的业务实践辨证参考,其实总结下来也就是两个原则:场景聚焦策+业务价值驱动。初期要从单一明确的场景入手,POC 之后再进行扩展,其次优先解决业务价值提升明显的问题。当然,还有一个重要的原则就是要公司内部跨部门协作,一个好的 RAG 应用一定靠用户反馈不断迭代出来的。

📢 声明

本文转载自: 企业实施RAG过程中:常见误解与澄清,内含项目升级预告 已获得作者授权。我在前面补充了一些个人对 AI 的看法,涉及 RAG 的内容,都是转载的原文中的。

Read more

🎉跨境支付通,内地 <->香港转账无损秒到账

🎉跨境支付通,内地 <->香港转账无损秒到账

首批支持的银行列表如下 内地: * 中国农业银行股份有限公司 * 中国银行股份有限公司 * 交通银行股份有限公司 * 中国建设银行股份有限公司 * 招商银行股份有限公司 * 中国工商银行股份有限公司 香港: * 中国银行(香港)有限公司 * 东亚银行有限公司 * 中国建设银行(亚洲)股份有限公司 * 恒生银行有限公司 * 香港上海汇丰银行有限公司 * 中国工商银行(亚洲)有限公司 操作过程 - 招商银行 我使用的是招商银行,直接在手机 APP 里面搜索 ”跨境支付通“ 即可 点击进入服务页面,官方说明如下: 1、“手机号汇款”和“银行账号汇款”可为您提供快捷、便利汇款至中国香港地区的服务,汇出人民币金额需要占用您的个人年度便利化购汇额度。您也可以选择原有的人民币汇款或外汇汇款渠道办理业务。 2、跨境支付通支持内地与香港地区办理双边本币和双边人民币跨境汇款业务。内地币种为人民币,香港地区币种可选人民币或港币。 3、如香港地区收款人的银行账号绑定了手机号、电子邮箱或支付 ID (FPS ID)

🥳 Stripe 申请全流程记录 - 出海收款必备

🥳 Stripe 申请全流程记录 - 出海收款必备

⛵️对于出海的开发者来说,stripe 是大家最推荐的收款方式,一般来说,会通过创建英国或者美国公司,开启银行公户,然后来申请 stripe 账户进行全球收款。当然也有开发者通过个人港卡,比如汇丰或者中银香港,开通个人 stripe 账号来进行收款,可以充当前期的过渡,等规模大了之后,还是建议通过公司的方式进行 stripe 开通。 我的具体情况: * 公司是注册的美国 INC 公司,可以参考我的 [独立开发者之海外公司注册] * 银行是水星银行,申请过程可查看我的 [水星银行成功开户] * 电话卡是美国电话卡 Paygo,月租 3 美金 * 我没有申请 ITIN 和 SSN,用的是护照进行验证的 * 有一个自己的网站(尽量是那种能正常运行业务的看起来像是可以收款的网站) 进入 stripe 官方注册地址,填写邮件地址,密码等,注意这里的国家/地区,一定要填你的注册公司所在的国家,比如我这里是美国的公司 进入下一页,

AI 时代的一次远程面试经历

AI 时代的一次远程面试经历

今天聊了一个远程面试,记录一下自己的感受: 负责人也是技术出身,刚好负责两个团队,一个在美国做 AI Startup,还有一个在香港做软件开发,所以我们直接约了个群聊,相互介绍了团队和自己在当前节点的状态,以及对这个职位的预期 我对这两种业务模式都有兴趣,相当于是一次性参加了两个面试了: AI Startup 这种模式,我刚好在 23 年的时候,跟微软和字节的朋友一起做 AI 电商创业,当时从立项,研发逐步推进,MVP 构建,VC 融资,市场营销方面跟了下来,学习到了非常多的东西 而外包业务,我在很多年前就开始做一些副业,与甲方沟通需求,自己找 UI ,测试的成员组队,可能与多数人不同的是,我对外包项目的接受度很高(这里说的不是传统的如中软,东软那样的外包团队),而是创业型的外包公司,这种环境下,是真的可以在技术、业务、商务、业务视角学到很多。 远程面试一般比较直接,大家都直奔主题,能够迅速感知到候选人和团队的契合程度,在