怎样就一整本书向 AI 提问——以及为什么把它整个贴进去还不够
想就一整本书向 AI 问一个真正的问题——论证在哪里转向、作者收回了什么、第九章是否和第二章矛盾——AI 就得像你那样读这本书:看目录,判断问题需要哪几章,把它们完整读完,第一章没解决就回头再读一章。把整本书贴进去,和搜索切碎的片段,恰恰都在这些问题上失败。
每个 AI 阅读工具都得决定:当材料比模型能好好处理的更长时,该怎么办。这个决定在回答里是看不见的,它却决定了这个回答能不能信。
选项一:整本贴进去
上下文窗口如今大到能装下很多本书,所以这听起来是显而易见的解决办法。它有两个问题。
装得下,不等于注意得到。 关于长上下文的研究——最有名的那篇论文叫《Lost in the Middle》——发现模型对长输入开头和结尾的内容,记得比中间的可靠得多。一本整本贴进去的书,大部分都是中间。回答会很流畅,并且会倚重那些最容易看到的内容。
每一次都很贵。 每个问题都要把整本书重新发一遍。十个追问,就是十本书的钱。
选项二:切块再检索
标准的流程把书切成碎片,找出和你的问题最相似的那些,再根据它们作答。问「作者哪一年搬到巴黎的?」,这很好用。
对关于整本书的问题,它会悄悄失败。「作者在哪里改变了立场?」没有哪个单独的碎片能和它匹配;证据分散在各章里。「这本书从来没讨论过什么?」根本没有可以匹配的东西。而回答里看不出那段决定性的文字从没被检索到。
选项三:像读者一样读
一个人面对一本没读过的书时的做法,既不是前者,也不是后者。他们看目录,挑出问题涉及的那几章,认真读完,觉得对不上时就往回翻。
这就是 MindMax 采取的做法:
- 先看结构。 章节地图来自这本书出版时自带的目录——对于没有书签的 PDF,则来自它的标题——所以这本书可以按它自己的结构导航。
- 整节,而不是碎片。 一旦选定某一章,就把它完整读完,结构保持完好。
- 需要时回头。 如果读到的内容没能解决问题,就再打开另一章。
- 说明读了什么。 每个回答都列出它实际读过的章节,所以「书里没说」和「它没去看」永远不会是同一个回答。
- 引用原文。 每条说法都带一句逐字引文,点开就落在书里的那段文字上。
短到能整篇读的文档——大多数论文、报告和单独的一章——就直接整篇读。只有当材料超出模型能好好注意的范围时,才开始导航,而这条线划得远低于模型在技术上能接受的上限。
这解决不了什么
- 制作粗糙的书。 如果章节元数据损坏了,或者整本书是一个大文件,就没有可以导航的结构。书照样能读;关于整本书的问题会变难。
- 需要每一页的问题。 「数一数 X 出现了多少次」是搜索的活,不是阅读的活——用书内搜索来做。
- 判断。 读对了章节,你得到的是一个以这本书为依据的回答。这本书本身对不对,依然要你来判断。
我们没有声称什么
我们没有发布过比较这几种做法的评测,也不会引用一个我们没跑过的评测。这里的论证是关于失败方式的:整本贴进去,掩盖了注意力的流失;检索掩盖了遗漏;而按结构阅读——外加一份读了什么的清单——让它自己的缺口变得看得见。
完整的思路见全文优先;为什么不用向量数据库的那一面,见为什么它里面没有向量数据库。专门针对书的,见 AI EPUB 和 Kindle 阅读器。