Skip to content

大规模文档知识化的吞吐、成本和索引速度怎样优化?

题型:调优 · 先找到解析、Embedding、数据库或索引中的真实瓶颈。

建议回答

我会按文档类型统计解析耗时、chunk 数、Embedding 吞吐、批量写入耗时、失败率和队列积压。解析、Embedding 和写库解耦成有界任务阶段,按租户和模型限额控制并发;Embedding 使用 Token 数感知的动态批处理,避免单批超限;Milvus 与 PostgreSQL 使用批量 upsert,减少网络往返。

对未变化的 chunk 通过内容哈希复用 Embedding,文档更新只处理差异;大任务采用分片和 Checkpoint,避免失败后全量重跑。索引构建要结合实时可见性要求:小批增量写入与大批离线构建使用不同策略,同时监控向量库 compaction、索引负载和查询性能。

关键权衡

  • 并发越高不一定越快,可能触发模型限流或数据库抖动。
  • 批越大吞吐越高,但失败重试成本和单批延迟也更高。
  • Embedding 缓存键必须包含模型、维度、预处理和内容版本。

易错点

  • 不能只优化向量写入,PDF 解析和 OCR 可能才是瓶颈。
  • 离线任务也要做租户公平调度,避免大客户饿死其他任务。

知识关系

从当前问题继续深入,或者回到提出这个问题的知识入口。