Each language version is independently generated for its own context, not a direct translation.
这篇论文介绍了一个名为 KohakuRAG 的聪明系统,它专门用来帮大语言模型(LLM)从一堆厚厚的文档里找答案。
想象一下,你是一位超级侦探,手里有 32 本关于“人工智能能耗”的厚厚技术手册(总共约 50 万字的篇幅)。现在,有人问你一个非常具体的问题,比如:"Google 数据中心的 PUE 值是多少?”(PUE 是衡量数据中心能源效率的指标)。
传统的搜索方法就像是用一把大锤子去砸这些书:
- 切得太碎:它把书撕成一个个固定长度的碎片,不管这些碎片是不是完整的段落或句子。这就像把一本精美的食谱撕成碎片,你再也分不清哪块是“材料”,哪块是“步骤”了。
- 问法太死板:如果你问"PUE 是多少”,但书里写的是“电源使用效率”,传统的搜索可能因为词汇不同就找不到答案。
- 运气成分大:每次问同一个问题,模型给出的答案和引用的书页可能都不一样,甚至有时候明明答案就在书里,它却假装不知道(放弃回答)。
KohakuRAG 就是为了解决这些问题而生的“超级侦探助手”。它用了三个绝招:
1. 像搭积木一样整理文档(分层索引)
传统的搜索是把书撕碎,而 KohakuRAG 把文档看作一棵大树:
- 树干是整本书。
- 树枝是章节。
- 树叶是段落。
- 最细的叶脉是句子。
它不是乱切,而是按照这个结构,从最底下的“句子”开始,一层层往上汇总信息。这样,当它找到答案时,不仅能告诉你答案,还能精准地指出:“这个答案来自第 3 章第 2 节的第 5 句话”,就像给你指路时不仅说“在图书馆”,还说“在 3 楼 A 区第 2 排书架的第 5 本书”一样精准。
2. 派出多个“翻译官”去问路(多查询与重排序)
有时候,书里的用词和你问的问题不一样(比如你问"PUE",书里写“能效比”)。
KohakuRAG 不会只问一次。它先派一个AI 策划员,把你的问题“翻译”成好几种不同的说法(比如:“谷歌数据中心的能效比”、“电源使用效率指标”等),然后同时派出好几个“搜索小队”去书里找。
找回来后,它还会搞一个**“投票环节”**:如果某个段落被好几个小队都找到了,那它肯定是最重要的,排名就靠前。这就像如果你问路,有 5 个路人都指向同一个方向,那这个方向大概率是对的。
3. 组建“专家会诊团”(集成推理与去噪)
大模型有时候会“抽风”,同一个问题问它十次,可能给出十个不同的答案,或者明明有答案却假装不知道(这叫“过度放弃”)。
KohakuRAG 的做法是:不要只问一个人,要问一群人!
它让同一个模型独立运行 9 次(或者更多),收集所有答案。
- 过滤“装傻”的:如果其中几次模型说“我不知道”,但其他几次都给出了具体答案,系统会忽略那些“装傻”的,只采纳有答案的。
- 少数服从多数:最后通过投票,选出出现次数最多的那个答案作为最终结果。
这就好比医生看病,如果 9 个专家里有 7 个说“是感冒”,1 个说“不知道”,1 个说“是流感”,那大概率就是感冒。
为什么它这么厉害?
在最近的 WattBot 2025 挑战赛中,参赛者需要从 32 份文档中回答 300 个极其刁钻的技术问题,要求答案误差不能超过 0.1%,而且必须精确引用出处。
- 传统方法:经常找不到答案,或者引用错了页码。
- KohakuRAG:它拿到了第一名!而且是在公开榜单和秘密榜单上都拿了第一。
它的成功秘诀总结起来就是:
- 把书读透:不仅看内容,还保留书的目录结构(分层索引)。
- 多问几遍:用不同的方式问同一个问题,确保不漏掉任何线索(多查询)。
- 大家商量:不让一个模型“独断专行”,而是让多个结果互相验证(集成投票)。
这就好比,以前是派一个士兵去探路,容易迷路或看错;现在是派一个特种部队,有侦察兵(分层索引)、翻译官(多查询)和指挥官(投票机制),确保任务万无一失。
这篇论文不仅展示了如何构建这样一个系统,还开源了代码,让其他人也能用这套“特种部队”的战术来解决自己的文档搜索难题。