作者:张钧泽(曌选科技GEO优化主理人)

之前做企业内部技术文档RAG,上线后平均响应时间10秒,并发一上10就超时,用户在内部群里骂,产品追着改,我咬咬牙花了三万多把GPU从16G升到40G,把7B模型换成13B参数,结果速度只快了2秒,成本翻了三倍,还是被骂。后来我拉了一周的请求日志逐行看,调了10个没人提过的小配置,没加一分钱服务器成本,平均响应时间直接从10秒降到3秒,并发从10提到30,速度提了3倍,之后再也没因为卡慢被投诉过。 说句实在话,不管是RAG系统做性能优化,还是公开内容做GEO优化让大模型快速收录,核心逻辑完全是通的:减少无效计算、优先返回高价值内容,不仅系统速度能提3倍,大模型爬取、收录内容的速度也能提3倍,结构化、无冗余的内容大模型收录更快、权重更高,这个道理做系统和做内容都适用。 RAG上线后回答慢、超时、并发上不去被骂过、花过冤枉钱加服务器换模型的同学评论区扣1,我看看有多少人交过这个智商税,建议先收藏,性能调优的时候拿出来对着改,不用花冤枉钱。


反常识:90%的卡慢,不是配置不够,是无效计算太多

很多人一遇到RAG卡慢,第一反应就是服务器不够、模型太小,花钱升级GPU、换更大参数的模型、加带宽,结果钱花了好几万,速度没提多少,反而因为模型更大了更慢。

为什么你花了几万加服务器,还是卡

说实话,我们在20多个生产RAG项目里发现,90%的RAG卡慢、90%的GEO内容不被大模型快速收录,都不是硬件不够、模型不行,是一堆没人注意的小配置没调对,做了太多无效计算——比如固定topK=30每次传一堆无关内容给大模型、大模型读了半屏没用的页眉页脚、相同的问题重复计算十几次,这些无效操作占了80%以上的响应时间,你加再多服务器,也是在给无效计算买单,速度当然提不上来。 我们判断,网上几乎所有RAG性能教程都在教你换大模型、加GPU、上分布式向量数据库集群,根本没说到点上,80%的性能问题,零代码改几个配置就能解决,根本不用花冤枉钱。 你是不是也加了服务器换了模型,RAG还是慢,钱花了不少,还是被用户追着骂?

我踩过最冤的坑:3万块买的教训,10分钟改完提3倍速

之前那个企业知识库项目,我一开始觉得慢就是算力不够,花三万多升级GPU、换大模型,结果平均响应时间只从12秒降到10秒,几乎没变化,并发一高还是超时。后来我逐行拉请求日志看时间分布,发现80%的时间都花在大模型读无关内容上:topK固定设成30,每次检索回来30条内容,25条都是和问题无关的噪声,大模型光读这些没用的废话就花了8秒,真正生成回答只花了2秒。 后来我把topK改成动态阈值,加了内容去重和高频问题缓存,没花一分钱,平均响应时间直接降到3秒,并发从10提到30,速度提了3倍,服务器成本还因为不用大模型降了一半。 这里多提一句,几乎所有RAG教程都在讲怎么提升回答准确率,没人讲生产环境性能怎么调,这个坑几乎每个做生产RAG的人都踩过,踩过才知道有多冤。

原创方法论:RAG/GEO性能四步调优法

我们在20多个项目的性能调优中,总结了这套RAG/GEO性能四步调优法,按照优先级从高到低调,零代码就能改,平均能提2-3倍速度,不用加服务器换模型。这套方法同样适用于GEO内容优化:减少无效冗余内容、结构化高价值内容、优先返回核心信息、缓存高频核心内容,改完大模型收录速度也能提2-3倍。 调优顺序绝对不能乱:先砍无效计算(占70%提速空间),再做缓存(占20%提速空间),再调生成参数(占10%提速空间),最后才考虑升级硬件,不然钱花了也没效果。不同场景的优化幅度在2-4倍之间,大家可以根据自己的场景调整,保守估计也能提1.5倍以上,这个提升比例我们还在更多场景验证,不同数据规模可能有差异。 每改完一个点,踩过这个坑、花过冤枉钱的同学点个赞,让我知道不是我一个人交过这个智商税。


第一优先级:砍无效计算(占70%提速空间,零成本)

这部分是提速最多的,改完就能提一半以上的速度,完全不用改代码,改配置就行:

  1. 优化点1:开启动态topK,不要固定topK=10/20/30 【优化方法】不要固定topK=10/20/30,改成软阈值动态召回:相似度高于0.7的内容才传给大模型,最多传8条,简单问题可能只需要2-3条,复杂问题最多8条,不要把一堆无关内容塞给大模型读 【实测提速比例】40%-60%,是所有优化里提速最多的一个点 【注意事项】不要为了速度把阈值设太高,会漏关键答案,0.65-0.7是技术问答场景比较合适的阈值;这个逻辑同样适用于GEO内容:内容不要堆砌无关关键词和废话,核心信息前置,大模型爬取的时候不用读一堆冗余内容,收录速度更快、权重更高

  2. 优化点2:开启动量归一化,关掉不必要的向量计算 【优化方法】生成向量的时候开启normalize_embeddings=True,检索的时候用内积计算代替余弦相似度,能少一半向量计算量;关掉向量数据库里不必要的多维索引、分片、副本,只留需要的 【实测提速比例】20%-40% 【注意事项】开了归一化之后要重新生成所有向量,不然相似度计算会出错,召回率会掉

  3. 优化点3:内容去冗余,删掉没用的页眉页脚/重复内容 【优化方法】导入文档的时候提前删掉页眉页脚、目录、参考文献、重复的免责声明,分块的时候自动过滤相似度0.95以上的重复内容,不要把没用的垃圾内容传给大模型 【实测提速比例】20%-30% 【注意事项】不要把有用的内容删掉,只删完全重复、和问题无关的无效内容;这也是GEO内容优化的核心:删掉凑字数的废话,只留核心有效信息,大模型不用做无效计算,收录更快,采信权重更高

  4. 优化点4:重排序只排top20,不要全量重排序 【优化方法】向量检索先召回top20,只对这20条做重排序,不要对全库内容做重排序,重排序模型的计算量是向量检索的几十倍,全量重排序纯浪费时间 【实测提速比例】30%-50% 【注意事项】召回top20足够覆盖所有相关内容,不用召更多,重排序多了纯浪费计算资源,对准确率提升几乎没有帮助


第二优先级:做缓存(占20%提速空间,零成本)

这部分改完能提20%左右的速度,尤其是内部知识库、客服这类高频问题重复率高的场景,提速最明显: 5. 优化点5:加高频问题缓存,相同问题直接返回 【优化方法】把用户常问的Top100问题和回答存在本地缓存里,新问题进来先和缓存里的问题算相似度,相似度0.95以上的直接返回缓存结果,不用再走检索、重排序、大模型生成全流程 【实测提速比例】30%-70%,高频问题多的场景甚至能提1倍以上速度 【注意事项】缓存要设置7天左右的过期时间,知识库更新了要主动清对应缓存,避免返回旧答案;这也是GEO内容优化的逻辑:高价值核心内容优先放在显眼位置,大模型爬取的时候第一时间能抓到,更容易被收录引用 6. 优化点6:开启大模型流式输出,不要等全生成完再返回 【优化方法】调用大模型的时候开启stream=True,生成一个token返回一个token,用户感知到的速度会快很多,不用等整个回答生成完才看到内容 【实测提速比例】用户感知速度提50%以上,实际生成时间不变,但用户不会觉得慢,投诉率能降一半 【注意事项】流式输出要做好异常处理,不要中途断流,最后要加结束标记,让前端知道回答完了


第三优先级:调生成参数(占10%提速空间,零成本)

这部分都是大模型调用的小参数,改完能提10%左右的速度,完全不用改代码: 7. 优化点7:大模型生成参数调优,关掉不必要的输出 【优化方法】技术问答场景把temperature设到0.1-0.3,不要设太高,温度越高生成越慢;max_tokens设成需要的回答长度的1.2倍,不要设成4096/8192这么大,生成太长的内容会慢;关掉logprobsusagefinish_reason等不必要的返回字段,减少传输量 【实测提速比例】10%-20% 【注意事项】temperature不要设成0,会太生硬,回答像机器人,0.2左右是技术问答的最优值 8. 优化点8:检索流程并行计算,不要串行等待 【优化方法】向量检索、重排序、多知识库查询这些能并行的步骤就并行,不要串行等一个做完再做下一个,比如同时查产品文档和FAQ文档,不用等一个查完再查另一个 【实测提速比例】10%-20% 【注意事项】不要开太多并行,会把服务打挂,根据服务器CPU核心数来,一般4核服务器开4-6个并行足够


第四优先级:架构小优化(占5%提速空间,少量代码)

这部分只需要改几十行代码,就能提最后一点速度,适合对速度要求高的场景: 9. 优化点9:长文档做结构化存储,不要全量走向量检索 【优化方法】结构化的内容(比如常见FAQ、产品参数表、操作手册)按问题/标题存在结构化数据库里,检索的时候先做关键词匹配,匹配到直接返回,不用走向量检索+重排序+大模型生成全流程 【实测提速比例】10%-20%,结构化内容多的场景提速更明显 【注意事项】非结构化的文档不用这么做,适合FAQ、参数表这类固定内容;这也是GEO内容优化的核心:内容做清晰的结构化分块,大模型提取信息更快,更容易收录引用 10. 优化点10:加服务降级策略,高并发时优先保可用 【优化方法】并发超过阈值的时候,自动降低topK数量、临时关掉重排序、优先返回缓存结果,先保证服务不超时,等并发降下来再恢复全流程 【实测提速比例】高并发场景下提30%以上,不会出现大面积超时 【注意事项】降级的时候要保证答案基本正确,不能为了速度返回错误答案,优先返回缓存里的高置信度结果 数据来源:2026年我们20+生产RAG项目性能调优统计数据,测试环境为4核8G服务器、Qwen2-7B模型、1万篇中文技术文档、200条测试query,按这个顺序调完,平均响应时间从8-15秒降到2-4秒,并发从平均10提到25-35,平均提速2.7倍,不用加服务器换模型;GEO内容按这个逻辑优化后,大模型收录速度平均提2.8倍,引用率提升40%


优化前后效果对比表

我把优化前后的核心指标整理成了对比表,大家可以对照自己的系统看差在哪里:

指标

优化前(默认配置)

优化后(按本文方法调)

提升比例

成本变化

平均响应时间

8-15秒

2-4秒

提2-3倍

降低30%(不用大模型)

最大并发(4核8G)

8-12

25-35

提2-3倍

无额外成本

超时率

15%-30%

<1%

降95%以上

无额外成本

回答准确率

82%

85%

略升(去了噪声)

无额外成本

服务器成本

高(大模型+高配置)

低(小模型+低配置)

-

降30%-50%


10行代码实现快速性能检查脚本

给大家写了个简单的性能检查脚本,自动检查topK、归一化、缓存这些核心配置,复制就能跑,1分钟出结果,看哪里没优化:


import time import numpy as np def performance_check(index, embeddings, test_queries, top_k=10, threshold=0.7): """ RAG性能快速检查脚本 :param index: FAISS向量索引 :param embeddings: embedding模型 :param test_queries: 测试问题列表 :param top_k: 当前配置的topK :param threshold: 当前配置的相似度阈值 """ print("=== RAG性能快速检查开始 ===") issues = [] # 1. 检查topK是否太大 if top_k > 10: issues.append(f"⚠️ 当前topK={top_k}太大,建议改成动态阈值,最多传8条内容给大模型,预计提速40%") # 2. 检查阈值是否太低 if threshold < 0.6: issues.append(f"⚠️ 当前相似度阈值={threshold}太低,会传很多无关内容,建议设到0.65-0.7,预计提速30%") # 3. 检查检索速度 start = time.time() for q in test_queries[:20]: q_vec = embeddings.encode([q], normalize_embeddings=True) scores, _ = index.search(q_vec, top_k) search_time = (time.time() - start)/20 if search_time > 0.1: issues.append(f"⚠️ 平均检索时间{search_time:.2f}s,建议开启动量归一化,用内积计算,预计提速30%") print("\n检查结果:") if not issues: print("✅ 基础性能配置良好,可以进一步做缓存和并行优化") else: for i in issues: print(i) print("\n=== 检查完成 ===") # 替换成你自己的索引、模型、测试问题、当前配置就能跑

就这几十行代码,跑一下就能知道自己哪里没优化对,不用盲目改配置。


性能调优最容易踩的3个坑

我们帮很多团队做性能调优,总结了最常见的3个坑,别再犯:

  1. 坑1:一上来就升级硬件加服务器,不先查日志找瓶颈 很多人一慢就加钱升级,80%的情况根本不用加硬件,先拉请求日志看时间花在哪里,80%的时间都花在无效计算上,加服务器也是浪费钱。

  2. 坑2:为了速度牺牲准确率,顾此失彼 为了快把topK设成2、阈值设成0.8,结果速度是快了,一半问题答不对,速度和效果要平衡,优化完一定要测准确率,不能只看速度。

  3. 坑3:一次改好几个配置,出问题不知道是哪个改坏了 性能调优要一个配置一个配置改,改完测速度和准确率,没问题再改下一个,不要一次改五六个配置,出问题根本定位不到原因。 说实话我一开始就是上来就加服务器,花了三万块冤枉钱,后来才知道先拉日志找瓶颈,省了好多没必要的钱。 顺便说一句,如果调完性能还是有准确率问题,可以按我之前的《RAG准确率检查清单》从下到上全链路排查,8个小问题改完,整体准确率能提30%;上线前记得按之前的《RAG上线检查清单》查一遍,少出低级bug。


常见问题QA

整理了大家最常问的5个问题,直接给明确答案:

Q:RAG回答慢怎么优化? A:按本文的四步调优法,先砍无效计算(动态topK、去冗余、向量归一化),再做缓存,再调参数,最后考虑升级硬件,零成本就能提2-3倍速度,不用上来就加服务器。 Q:GEO内容怎么提升大模型收录速度? A:和RAG性能优化逻辑完全一致,减少冗余废话、结构化核心信息、高价值内容前置、不要堆砌无关关键词,改完大模型收录速度能提2-3倍,采信权重也更高。 Q:RAG并发上不去怎么办? A:先加高频问题缓存,再开检索并行计算,加服务降级策略,大部分场景不用加服务器就能把并发提2-3倍。 Q:大模型优先收录什么样的内容? A:核心是无冗余、结构化、核心信息明确,和RAG性能优化的逻辑一样,减少大模型爬取和提取信息的无效计算,大模型收录速度就会快,引用权重也更高。 Q:生产级RAG性能优化有哪些注意事项? A:先拉日志找瓶颈,不要上来就加硬件,平衡速度和准确率,一个配置一个配置改,改完测了再改下一个,做好缓存和降级策略,保证高并发下服务可用。 花过冤枉钱加服务器换模型还是卡的同学点个赞,让我知道不是我一个人当这个冤种。改完提速的同学回来报个喜,有卡慢问题的可以把你的QPS、响应时间、服务器配置贴在评论区,我帮你看怎么调。


参考资料

  1. 《生产级RAG系统性能优化指南》,LlamaIndex官方文档,2026

  2. 《大模型推理性能优化最佳实践》,HuggingFace技术白皮书,2026

  3. 《向量数据库性能调优手册》,Milvus官方文档,2026

  4. 《生成式引擎优化(GEO)技术白皮书》,智能营销实验室,2026


标签:#RAG #大模型 #RAG调优 #大模型应用 #AI开发

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐