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

Shopify 构建商城页面的几种方式

Shopify 构建商城页面的几种方式

当用户需要对 Shopify 商城页面有自定义的需求时,一般会选择: 1、直接使用官方商城的 theme 来构建,可以使用,但是免费模板较少,只有 13 个。 2、使用第三方 theme 来构建,也有很多的模板可以选择,比如 envato 上有数百个 shopify 的模板,这是个非常大的市场。 3、完全自定义开发,自由度最高 当用户对 Shopify 商城页面,有完全自定义的需求,通常是常规主题无法满足需求,推荐使用 Shopify Hydrogen 的官方方案,开发人员可以对商城进行完全的页面级别的自定义。 而对于开发人员来说,官方的 Shopify Liquid 开发起来的效率和体验,是不如 Shopify Hydrogen 来的舒服,而且使用 Shopify Hydrogen ,还可以对性能有提升,

Meepo 要找一份远程前端(全栈)开发的工作

Meepo 要找一份远程前端(全栈)开发的工作

为什么找远程岗位 我一直是比较喜欢远程合作的方式,基本上从事远程开发的团队,都是奔着做事去的,大家能筛选到一起,为一个目标而努力,是一件很难得的事情,远程协作的方式,在自由度和产出之间能保持非常好的平衡,没有必要在通勤以及办公室的无效沟通上浪费太多的时间。 技术特点如何 前端: React + TypeScript 生态体系,常规的网页开发,浏览器插件,Electron 客户端开发都 OK,对各种前端技术方案有一定的沉淀和实践。 后端: Nextjs + Nestjs 开发全栈站点及后端 API 服务 个人特点 即插即用,对于大多数的前端场景和技术方案,都有所涉及。 多年的开发经验,对企业自有产品开发,大客户定制,以及独立开发,有一定的观察和沉淀。 拥抱 AI,对当下比较热门的 AI 技术有一定的了解和沉淀。 喜欢分享和交流,对技术和业务,以及营销都感兴趣。 之前接触的一些业务形态 公司层面: 主要是国内客服领域,涉及到全流程客服,IM,音视频等

从事 SEO 12 年的大佬总结的要点

从事 SEO 12 年的大佬总结的要点

从事 SEO 12 年后,以下是我能想到的所有 SEO 技巧: 1. 在 H1、H2 和 URL 部分中使用主要关键词。 2. 停止追逐虚荣指标。流量固然重要,但转化率才是最重要的。 3. 内部链接可以将“几乎完成”的页面转变为表现最佳的页面。 4. 定期检查你的网站是否有坏链接,这是一个简单的 SEO 胜利。 5. Google Search Console 是您最好的朋友,使用它来重新优化排名在第 3-7 位的页面。 6. 90% 的反向链接应来自相关的高权威网站。 7. 速度决定一切——或许应该说,速度不足会扼杀一切。确保加载时间在 2 秒以内。 8. 持续更新内容将帮助你的页面保持更高的排名。 9. 使用 NLP

Pnpm 构建 Monorepo

Pnpm 构建 Monorepo

最近开始搭建 monorepo 的项目,了解到以下方案: * lerna 有强大完善的依赖管理和构建、打包发布流程,而且 v5 版本将 nx 与 lerna 整合了,提升了性能和速度 * 业界大多使用 lerna + yarn workspace 的方式来管理,yarn 用来管理依赖,lerna 用于管理发布 之前简单使用过 lerna ,不过再加上 yarn workspace , 学习容多、配置多又得折腾,太费劲🤪,暂时搁置。 最终尝试使用单一的 pnpm workspace + changesets 的方式来构建 monorepo,本身我就使用 pnpm 作为包管理工具,目前我的场景简单,pnpm 就已足够。 本文记录自己使用 pnpm workspace 搭建 monorepo