站点图标 高效码农

ComoRAG突破长文本问答极限:AI首次实现人类级小说理解能力

让长故事不再难懂:ComoRAG 如何让 AI 像人一样“读小说”

读完一本几十万字的小说后,让你回答“为什么斯内普要杀邓布利多?”——你会怎么做?
翻回前几百页找线索,把碎片串成完整故事。这正是 ComoRAG 做的事:把一次性检索变成循环思考,把零散信息拼成连贯记忆。


目录

  1. ComoRAG 是什么?
  2. 为什么传统 RAG 读不懂长故事?
  3. ComoRAG 的三大核心设计
  4. 运行一次 ComoRAG:从输入到答案的 8 步流程
  5. 四组实验数据:它到底强在哪?
  6. 动手实践:30 分钟跑通 Demo
  7. 常见问题 FAQ
  8. 一句话总结

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 个动作反复执行,直到答对为止:

  1. Self-Probe(自问)
    “我还缺什么信息?”
  2. Tri-Retrieve(三源检索)
    同时在事实、主题、情节三层找答案。
  3. Mem-Encode(编码)
    把新结果写成记忆单元。
  4. Mem-Fuse(融合)
    把新旧记忆拼成一段连贯背景。
  5. 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

退出移动版