RAGless:面向封闭域 FAQ 的问题级检索方案
研究者开源 RAGless,以问题级匹配替代文档块检索,专为答案空间固定的封闭域 FAQ 场景设计。
- 重要性
- 40
- 新颖性
- 48
- 影响面
- 28
- 可信度
- 45
- 实质性
- 52
RAGless 是一个面向封闭域 FAQ 的语义检索系统,由 EmilResearch 在 GitHub 开源发布。与传统 RAG 先检索文档块再交由大模型在线生成答案不同,RAGless 把生成环节前移到入库阶段,查询时直接返回预写答案,整体不再依赖 LLM 的实时生成。
入库与检索流程
在离线入库阶段,系统对每条预设答案调用 LLM 生成 3–5 个问题变体,并为每个变体单独生成 embedding 存入向量库。检索时,用户问题同样被编码为向量,在库中找出 Top-K 最相近的问题变体,再按所属 answer_id 聚合分数——聚合得分最高的答案胜出并直接返回给用户。这一流程完全消除了在线生成步骤。
双门控阈值策略
为降低漏召回风险,RAGless 设置了两道门控:
- 主门控:聚合分数需达到默认阈值 0.70;
- 兜底门控:当某答案仅有单个变体进入 Top-K 时,回退到该最佳命中分数,阈值为 0.82。
两道阈值协同工作,用于在召回率与精确率之间取得平衡,避免在「只有一个变体被召回」的边缘场景下产生假阴性。
非对称任务类型
RAGless 显式区分了入库与查询两侧的嵌入任务类型:入库时使用 RETRIEVAL_DOCUMENT,运行时使用 RETRIEVAL_QUERY。这种非对称设置在工程上常用于提升召回质量,作者在说明中明确点出了这一选择。
与标准 RAG、DPR 的差异
- 标准 RAG:检索文档块 → LLM 生成答案;
- RAGless:检索问题变体 → 返回预写答案;
- DPR 等稠密段落检索:在段落级别进行 embedding 匹配。
RAGless 把检索粒度从「段落」下沉到「问题」,在 FAQ 类场景下提升了精确率,但代价是牺牲灵活性——它要求答案空间封闭、有限且预先枚举,无法应对开放式生成问答。
适用边界
作者将目标用户锁定为评估封闭域 FAQ 检索架构的研究者与工程师,并表示在该范围内已达到生产可用水平;对于答案空间不可枚举、需要开放式生成能力的场景,RAGless 并不适用。代码已在 GitHub 开源:github.com/EmilResearch/RAGless。
