异步 RAG 慢在哪:把检索、重排和生成并行边界画出来
异步 RAG 慢在哪:把检索、重排和生成并行边界画出来
异步不是把每个函数前面都加 async。RAG 链路里,能并行的是相互独立的检索源;依赖上一阶段结果的重排和生成仍有顺序。
先画等待关系
为查询改写、多个检索源、重排、上下文拼装和模型生成分别建 span。外部调用设置独立超时,并由整条请求的剩余预算约束。一个检索源失败时,是返回其余结果还是终止请求,要在接口里写明。
并发使用有上限的任务组或信号量。调用方取消后传播取消,已完成任务及时释放响应体和连接;不要让“孤儿协程”继续花 Token。
验证不是只跑均值
固定查询集和依赖响应,测试慢检索源、空结果、部分失败与取消。记录各阶段分位、错误和资源峰值。只有等待点被证据定位后,才决定并行、缓存还是减少工作。
