1. 传统RAG的"断链"困境与SentGraph的破局思路
在检索增强生成(RAG)系统中,多跳问答场景下的"证据链断裂"问题长期困扰着开发者。传统方法将文档切割为200词左右的段落(chunk)进行检索,这种粗粒度处理在多跳推理中暴露明显缺陷:
核心痛点解析:
- 单跳场景下,chunk检索尚可满足需求——问题和答案通常存在于同一段落中
- 多跳场景中,答案需要串联2-4个文档的关联信息时:
- 每个chunk包含6-8个句子,其中60%内容与问题无关
- 关键证据句被大量无关文本淹没
- LLM被迫从噪声中拼凑线索,导致"幻觉"频发
典型案例:当需要结合"克罗地亚官方语言"和"电影《围城》拍摄语言"两个事实时,传统方法可能返回包含旅游信息、演员介绍等无关内容的chunk,迫使LLM进行不可靠的推测。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. SentGraph架构设计:三层图结构解析
SentGraph创新性地将检索单元从段落级细化到句子级,并构建三层图结构显式表达逻辑关系:
2.1 图结构层级设计
| 层级 | 功能 | 示例关系 | 构建技术 |
|---|---|---|---|
| Topic层 | 跨文档实体关联 | (克罗地亚语, 被用于, 电影《围城》) | LLM生成的三元组 |
| Core句层 | 核心事实陈述 | "克罗地亚官方语言为克罗地亚语" | 修辞关系识别 |
| Sup句层 | 支持性信息 | "因为历史原因..."、"例如..." | RST关系分析 |
2.2 关系类型精简设计
基于修辞结构理论(RST)的12种核心关系:
- 因果关系(because, therefore)
- 对比关系(however, whereas)
- 例证关系(for example)
- 背景关系(in context of)
- 详述关系(specifically)
这种设计使推理链的构建效率提升3倍,同时减少40%的关系识别错误率。
3. 线下构图关键技术实现
3.1 句子切割与清洗
python复制# 使用NLI模型进行句子边界检测
from transformers import AutoTokenizer, AutoModelF
