很多人把个人知识库搭起来以后,一开始觉得很好用,文件一多却越来越慢:上传要等、索引要跑很久、提问后半天才出答案。问题通常不只是电脑性能,而是文件切分、向量数量、检索范围和模型选择没有做控制。优化本地RAG的核心,就是减少无效计算,同时保留足够的上下文。知识库最容易出现的浪费,是同一份内容存在多个版本。PDF、Word、网页导出、聊天记录里可能反复包含同样段落。重复内容不仅增加索引量,还会让检索结果被相同信息占满。建议在导入前先去重,至少把明显重复的旧版本、备份和临时文件排除。
第二步:切片不要过小
切片太小会产生大量向量,检索速度下降,还容易把一个完整观点拆散。切片太大则会把无关内容一起塞给模型。对于普通中文文档,可以先从几百到一千字一个块开始测试,再根据内容结构调整。标题、段落和列表边界通常比固定字符数更有意义。
知识库变慢时,先把解析、检索、重排和语言模型生成时间拆开记录,不能一看到响应慢就换向量数据库。
第三步:保留适度重叠
相邻切片完全没有重叠时,一句话可能刚好被切成两半。可以保留少量上下文重叠,让跨段信息仍然能被完整检索。但重叠也不能太大,否则会重新制造重复。很多RAG默认一次返回10到20段。对于个人知识库,这往往过多。可以先从Top-3或Top-5开始,观察准确率是否已经足够。返回越多,不仅检索慢,后续大模型处理的上下文也越长。
经常使用的项目资料和几年前的归档不需要每次一起搜索。可以把“当前工作”“长期资料”“历史归档”做成不同索引,提问时只搜索相关范围。这比把所有文件塞进一个巨大向量库更容易维护。
第六步:嵌入模型不要盲目追求最大
大嵌入模型可能在某些评测上更好,但个人电脑本地运行时,速度、内存和索引体积同样重要。中文资料多,就优先选中文或多语言表现稳定的轻量模型。文件名、日期、项目、作者、类型这些信息可以作为过滤条件。比如你问“2026年产品规划”,系统可以先限制年份和项目,再做向量搜索,检索范围会小很多。
固定十个业务问题,逐项测试切片大小、召回数量与引用准确率,让速度优化有可比基线。
新增文件时只处理新增内容;修改文件时只更新变化部分。如果每次启动知识库都重新生成全部向量,文件一多就会非常慢。一次回答通常包含:读取问题、生成查询向量、向量检索、重排、拼接上下文、大模型生成。把这几步分别计时,才能知道到底是检索慢还是模型慢。如果检索只用100毫秒,而大模型生成要10秒,就没必要继续折腾向量数据库。
第十步:定期清理失效资料
知识库不是越大越好。已经过期的产品说明、旧价格、废弃方案会降低回答质量。可以给资料增加有效期或版本号,定期清理旧内容。基础搭建流程可以先看个人AI知识库怎么搭,再用本文的方法做性能优化。
一个简单的优化顺序
先去重和分库,再调整切片和Top-K,然后才考虑换向量库、换嵌入模型或升级硬件。很多本地知识库的性能问题,其实通过减少无效内容就能解决。RAG跑得快的关键不是“算得更猛”,而是“少算不必要的东西”。
文档持续增长时要支持内容哈希和增量索引,并同步处理更新与删除,避免旧切片干扰当前答案。
优化RAG时不要一开始就追求复杂参数。先准备一组真实问题,记录检索到的片段是否包含答案,再分别调整切分长度、重叠范围和召回数量。只有能稳定找到正确上下文,后面的模型生成才有意义。否则换更强模型也只是在更流畅地回答错误材料。