技术深度解析
Dewey的架构标志着与标准RAG流程的彻底决裂。它没有采用简单的`文档 -> 文本分割器 -> 嵌入模型 -> 向量数据库`流程,而是引入了结构化的摄取阶段。
核心架构: 系统首先采用层级解析器(通常利用`unstructured`或`markdownify`等库)将文档(PDF、Markdown、LaTeX)转换为树状表示。该树中的每个节点包含其文本内容以及定义其与父节点、子节点关系的元数据(例如,`section_2.1`是`chapter_2`的子节点)。随后,该结构被双重编码:(1)使用`text-embedding-3-small`或`BAAI/bge-large-en-v1.5`等模型对单个节点进行嵌入,用于语义搜索。(2)图结构本身存储在专用图数据库(如Neo4j)或具有原生层级支持的专业向量数据库(如具备`ref2vec`功能的Weaviate)中。
检索算法: 当查询到达时,Dewey执行多阶段检索过程:
1. 语义种子检索: 通过传统的相似性搜索找到最相关的文本节点。
2. 图扩展: 系统从这些种子节点出发遍历结构图,在可配置的半径内收集父节点、子节点和兄弟节点。此扩展由启发式规则引导并可加权;对于“比较方法”类查询,它可能优先考虑共同“方法论”父节点下的兄弟节点。
3. 上下文重排序: 使用交叉编码器(如`cross-encoder/ms-marco-MiniLM-L-6-v2`)对扩展后的节点集进行重新排序,该编码器根据*完整检索到的子图上下文*(而不仅仅是查询本身)来评估每个节点的相关性。
此过程确保传递给LLM的最终上下文不仅仅是相关句子的集合,而且是保持原始文档逻辑的连贯、结构化的摘录。
性能与基准测试: 在自定义数据集上的早期基准测试突显了权衡。在简单事实性问题(例如,“常数X的值是多少?”)上,传统的分块RAG速度稍快且同样准确。然而,在需要综合的复杂多跳问题上(例如,“第3节中的方法如何解决第2节提到的局限性?”),Dewey的结构化方法显示出显著改进。
| RAG方法 | 事实准确性 (HotPotQA) | 多跳综合准确性 (自定义研究论文QA) | 平均检索延迟 | 上下文精确度分数 |
|---|---|---|---|---|
| 扁平分块 (512 tokens) | 78.2% | 31.5% | 120 ms | 0.65 |
| 语义分块 (LangChain) | 80.1% | 38.7% | 145 ms | 0.71 |
| Dewey (结构化) | 76.5% | 67.8% | 210 ms | 0.89 |
| 混合 (Dewey + 密集检索) | 81.3% | 66.2% | 190 ms | 0.87 |
数据启示: 上表揭示了Dewey的核心价值主张:以速度和简单事实检索性能的显著牺牲,换取复杂推理准确性和上下文精确度的大幅提升。混合方法表明,未来的方向在于能根据查询复杂度自适应选择检索策略的系统。
开源生态: Dewey本身托管在GitHub(`dewey-org/dewey`)。其模块化设计鼓励与其他领先RAG框架集成。值得注意的是,`LlamaIndex`项目已开始通过其`HierarchicalNodeParser`和`RecursiveRetriever`试验类似概念,表明业界对结构性问题有了更广泛的认识。另一个相关仓库是`RAGchain`(`RAGchain-KR/RAGchain`),它实现了一个结合关键词、向量以及日益增多的基于图的方法的混合检索系统。
关键参与者与案例研究
推动结构化RAG的发展并非孤立现象。这是对第一代RAG系统在现实部署中观察到的明显局限性的回应。
企业痛点: 像Glean和Bloomberg这样的公司已经构建了复杂的内部RAG系统,用于导航庞大的企业知识库和金融文档。这些公司的工程师早就注意到,当分析师提出“过去五份季度报告中识别的三大主要风险是什么?相应的缓解策略是如何演变的?”这类问题时,扁平化检索就会失败。这需要从多个文档的特定章节(风险因素、管理层讨论)中提取并连接信息——这正是Dewey范式量身定做的任务。
学术与研究工具: Scite、Semantic Scholar和Elicit等平台处于AI增强研究的前沿。它们的用户——科学家和学者——从根本上按照论文结构思考:摘要、引言、方法、结果、讨论。研究者想要的不是关于“机器学习模型”的零散句子;他们想要比较三篇关于Transformer效率论文的*方法*部分。像`PaperQA`和`Consensus`这样的项目正在将类似的结构化检索原理应用于学术文献,使研究人员能够进行更深入、更具上下文感知的文献探索。