让长故事不再难懂:ComoRAG 如何让 AI 像人一样“读小说”
读完一本几十万字的小说后,让你回答“为什么斯内普要杀邓布利多?”——你会怎么做?
翻回前几百页找线索,把碎片串成完整故事。这正是 ComoRAG 做的事:把一次性检索变成循环思考,把零散信息拼成连贯记忆。
目录
-
ComoRAG 是什么? -
为什么传统 RAG 读不懂长故事? -
ComoRAG 的三大核心设计 -
运行一次 ComoRAG:从输入到答案的 8 步流程 -
四组实验数据:它到底强在哪? -
动手实践:30 分钟跑通 Demo -
常见问题 FAQ -
一句话总结
1. ComoRAG 是什么?
一句话:
ComoRAG 是一个模仿人脑前额叶工作方式的检索增强系统,专门用来回答超长文本(20 万字以上)里的复杂问题。
关键词 | 白话解释 |
---|---|
RAG | 先检索、再回答的 AI 套路 |
Stateful | 有“记忆”,能边读边更新理解 |
Memory-Organized | 把检索结果存入“脑内笔记本”,随时回看 |
2. 为什么传统 RAG 读不懂长故事?
传统方法 | 问题表现 | 举例 |
---|---|---|
单步检索 | 只看一次关键词,错过因果链 | 搜“斯内普 杀 邓布利多”,只拿到表面情节,漏掉“邓布利多身患绝症”这一前提 |
无状态 | 每轮检索互不相干 | 上一条说“斯内普保护哈利”,下一条又说“斯内普欺负哈利”,系统无法整合这两条矛盾信息 |
片段化 | 把书切成 512 字的小块 | 一个关键动机可能横跨 3 页,却被切到不同块里 |
ComoRAG 用“循环思考”解决这些问题——像人遇到疑问时会反复翻书、做笔记、再翻书一样。
3. ComoRAG 的三大核心设计
3.1 三层知识源:把书拆成三种“读法”
层级 | 作用 | 类比 |
---|---|---|
Veridical(事实层) | 保存原文句子 | 像荧光笔划出的原句 |
Semantic(主题层) | 把相似段落压缩成一句话 | 像老师给的章节总结 |
Episodic(情节层) | 按时间线把事件串成故事 | 像时间轴便利贴 |
3.2 动态记忆工作区
-
记忆单元 = 探测问题 + 检索证据 + 一句话总结(Cue) -
每次循环都把新单元追加到“全局笔记本”,下一轮再用它生成更精准的问题。
3.3 元认知控制循环(Metacognitive Loop)
5 个动作反复执行,直到答对为止:
-
Self-Probe(自问)
“我还缺什么信息?” -
Tri-Retrieve(三源检索)
同时在事实、主题、情节三层找答案。 -
Mem-Encode(编码)
把新结果写成记忆单元。 -
Mem-Fuse(融合)
把新旧记忆拼成一段连贯背景。 -
Try-Answer(试答)
能答就结束;答不出就回到步骤 1,最多 5 轮。
4. 运行一次 ComoRAG:从输入到答案的 8 步流程
下面用侦探小说里的真实例子带你走一遍:
问题:
“麦克太太从不写信,却突然买墨水,她要干嘛?”
选项:A) 给政府回信 B) 给侄女寄贺卡 C) 给《周日彗星》报投稿 D) 模糊照片
步骤 | 发生了什么 | 系统内部日志示例 |
---|---|---|
1 初始检索 | 用原问题去三层知识源找线索 | 找到“报纸被剪了一块” |
2 试答失败 | 线索不足,标记 Failure | 无直接答案 |
3 自问 | 系统问自己:她买墨水前发生了什么? | 生成新问题“谁给报社写过信?” |
4 再检索 | 找到 Hosford 女士回忆:曾收到匿名信谈照片 | 得到“麦克太太可能想卖照片换钱” |
5 编码 | 把新信息写成记忆单元 | Cue:麦克太太写信给报社是为了卖照片 |
6 融合 | 把“剪报纸 + 写信动机”拼成完整故事 | 形成推理链 |
7 再试答 | 用完整背景重答 | 选 C,命中正确答案 |
8 结束 | 输出答案并保存所有记忆单元 | 日志:Answer=C |
5. 四组实验数据:它到底强在哪?
论文在 4 个公开长文本数据集上测试,平均长度 5~20 万字:
数据集 | 任务类型 | 最强基线得分 | ComoRAG 得分 | 相对提升 |
---|---|---|---|---|
NarrativeQA | 自由问答 F1 | 31.35 | 31.43 | +0.3% |
EN.QA | 自由问答 F1 | 32.09 | 34.52 | +7.6% |
EN.MC | 多选准确率 | 64.27 | 72.93 | +13.5% |
DetectiveQA | 多选准确率 | 64.77 | 70.56 | +8.9% |
注意:提升幅度在超 15 万字文档中更明显,最高冲到 +24.6%。
5.1 消融实验:少了哪个模块最致命?
拿掉什么 | EN.MC 准确率跌幅 | 通俗解释 |
---|---|---|
Veridical(事实层) | -30% | 相当于不让你看原文,只能看二手总结 |
Metacognition(记忆融合) | -15% | 不让做笔记,只能看一次丢一次 |
Regulation(自问自答) | -24% | 不让你反复翻书,只能凭第一印象猜 |
6. 动手实践:30 分钟跑通 Demo
6.1 环境与安装
# 1. 克隆仓库
git clone https://github.com/EternityJune25/ComoRAG.git
cd ComoRAG
# 2. 安装依赖
pip install -r requirements.txt
# 3. 准备数据(示例已内置 cinderella 数据集)
6.2 两种方式启动
方式 | 适合人群 | 启动命令 |
---|---|---|
OpenAI API | 没 GPU、想快速体验 | python main_openai.py |
本地 vLLM | 有 GPU、重隐私 | 先起服务再 python main_vllm.py |
6.3 关键配置一次说清
BaseConfig(
llm_name='gpt-4o-mini', # 模型名
dataset='cinderella', # 内置数据集
need_cluster=True, # 启用三层知识源
max_meta_loop_max_iterations=5 # 最多循环 5 次
)
运行结束后,结果会自动保存到 result/cinderella/
目录,包含:
-
details.jsonl
:每一步的探测问题与记忆单元 -
results.json
:最终答案与评分
7. 常见问题 FAQ
Q1:ComoRAG 只能读小说吗?
A:只要文本超长且需要全局理解,比如合同、剧本、技术手册,都能用同一套流程。
Q2:GPU 显存需要多大?
A:7B 模型 + BGE-M3 嵌入,单卡 24 GB 足够;若用 GPT-4o-mini 则无需本地 GPU。
Q3:检索用的是什么模型?
A:默认 BGE-M3(0.3B 参数),实验里用它就打败了 8B 大模型,说明框架比模型更关键。
Q4:循环 5 次会不会太慢?
A:平均 2~3 轮就能答对;实验里 90% 问题在前三轮解决。
Q5:能接别的 RAG 吗?
A:可以。论文把 ComoRAG 的“循环思考”套到 RAPTOR、HippoRAGv2 上,直接提升 8%~12%。
8. 一句话总结
ComoRAG 把“读完再答”变成“边读边想”,让 AI 第一次在长故事里真正拥有了人类式的持续思考能力。
如果你正为超长文本问答头疼,不妨给它 30 分钟,看它如何一步步把碎片拼成完整答案。
附录:项目地址
GitHub: https://github.com/EternityJune25/ComoRAG
论文: https://arxiv.org/abs/2508.10419