今天是2025年3月9日,星期日,北京,天气晴。
我们今天继续来看RAG客户端化趋势及RAG用于综述写作思路,工具和思路并举,会有更多思路。
另外,知识图谱最近也讲了少了,都在做推理,我们也看看一个o1范式如果用在KBQA当中会怎样,也看一个工作。
抓住根本问题,做根因,专题化,体系化,会有更多深度思考。大家一起加油。
一、RAG客户端化趋势及RAG用于综述写作思路
1、关于知识库RAG应用端进展
我们昨天说了,知识库RAG做成本地客户端上目前逐步呈现出一个趋势,例如cherrystudio(https://cherry-ai.com/)的推出

最近又有了一个新的工具,klee(https://github.com/signerlabs/klee-client)

根据官方描述,应用内置RAG知识库和Markdown笔记支持,能在本地运行开源大模型,内置Markdown笔记功能,便于记录和整理思路,支持文件和文件夹知识库,建立个性化AI助手,基于Ollama和LlamaIndex构建,提供各平台安装包,直接下载安装即可使用,也支持从源码构建安装。
2、大模型做论文综述写作SurveyForge
论文综述写作,其实这个跟目前的Deepresearch这些其实很像,为什么值得拿出来说,因为它是一个典型的多轮场景,并且对一致性、流畅性、全面性等有比较大的要求。
之前我们有说过surveyx的工作,RAG 用于写作场景进展,SurveyX-学术综述生成,SurveyX: Academic Survey Automation via Large Language Models,https://huggingface.co/papers/2502.14776,https://github.com/IAAR-Shanghai/SurveyX,一个基于大模型的全自动学术综述论文生成系统,只需提供标题和关键词,便可高效检索文献并生成学术综述论文,其中可以重点关注的点,是图表生成能力。这块是难点。如何做到一致性。
这个点在的步骤包括两个:
首先是多模态图片生成,利用多模态大模型的能力,从参考文献中检索与文章叙述高度相关的插图,进一步增强文章的表现力与说服力;
然后是模板化的图表生成,提取文章中的关键信息,结合预定义的图表模板代码,自动生成定制化的图片与表格并插入文中,使文章内容更加直观且富有表现力。
此外,再回顾下其整体生成逻辑。

首先是在撰写综述初稿时,首先让LLM基于属性树分析当前行文,总结下一步的写作方向与所需信息,并将其存储为Hint。
然后是进行大纲,针对普通LLM生成大纲冗余的问题,采用先生成一二级大纲,再对二级大纲进行去冗余与重排的策略,最终生成简洁清晰、逻辑性强的大纲。
最后是RAG重写优化,初稿生成后,SurveyX通过RAG模块对文中所有引用进行验证与重写,确保引用的准确性与可靠性,从而提升文章的可信度与学术严谨性。
最近呢,也有另一个工作,《SurveyForge,urveyForge: On the Outline Heuristics, Memory-Driven Generation, and Multi-dimensional Evaluation for Automated Survey Writing》: https://github.com/Alpha-Innovator/SurveyForge ,https://arxiv.org/pdf/2503.04629,这个工作的特点是,通过分析人类撰写的提纲和领域相关文章,生成高质量的综述提纲,并提供了SurveyBench基准,涵盖100篇人类撰写的综述论文,多维度评估AI生成的综述质量,这种数据是一种贡献。

也就是说,其在生成大纲的时候,是基于RAG的方案做的,通过分析人类编写的综述文章的逻辑结构和参考相关文献,生成语义全面且结构良好的大纲。
这块是个思路,我们看看是怎么做的?这种方法依赖于两个领域特定的知识库,研究论文数据库和综述大纲数据库,研究论文数据库编码了领域知识,而综述大纲数据库捕捉了已建立的结构模式。
具体实现上,首先从研究论文数据库和综述大纲数据库中检索与给定主题相关的论文和大纲。然后对于每个第一级大纲,递归检索相关材料并生成第二级大纲,这个过程使用子查询来细化查询,逐步深入挖掘主题内容。最后,将这些大纲及其关联查询系统合并,构建综述大纲。
一、KBQA-o1引入MCTS搜索的方案
许久已经没有知识图谱的进展了,我们来看目前推理这块结合知识图谱的进展,一种基于蒙特卡罗树搜索(MCTS),《KBQA-o1: Agentic Knowledge Base Question Answering with Monte Carlo Tree Search》,https://arxiv.org/pdf/2501.18922,是个结合的探索,但如果要引入强化去做,其实核心点就是针对特定任务进行奖励函数、策略模型的设计,然后通过微调,然后解决问题。
所以,我们来看几个点:
1、回顾下KBQA之前的方案,确定下任务
有两种主要的知识库问答(KBQA)方法。end2end方法直接从自然语言问题生成逻辑形式,并在生成之前或之后利用检索功能进行改进。
step by step方法在生成和检索之间交替进行,逐步对知识库进行思考,采用思维链(CoT)或思维树(ToT)方式进行。
这些方案仍然存在几个问题,例如端到端方法中对知识库环境的认识不足。依赖语言模型直接生成逻辑形式,端到端的KBQA方法受限于有限的逻辑形式模式和在知识库中不存在的未见过的实体和关系,使其难以完全捕捉知识库环境;step by step方法中的局部最优解或较大的搜索空间。与端到端方法相比,基于CoT的逐步方法(黄等人,2024年)在搜索过程中可能导致
2、MCTS的搜索设计,包括状态、原子动作
如下图:

选择(Selection) 从根节点开始,使用UCT算法选择最有潜力的子节点;
扩展(Expansion) 通过束搜索生成新的候选节点,并使用无监督检索模型SimCSE与知识库进行匹配,选择最相关的候选节点作为子节点;
模拟(Simulation) 使用策略模型对选中的候选节点进行评分,选择评分最高的节点进行模拟,直到达到终止状态;
回溯(Back-propagation) 使用奖励模型评估整个轨迹,更新路径上的Q值和访问次数。
这些动作其实都会具象化为一系列工具的设计,例如,细化为如下的原子化操作

除了动作的设计,还有两个模型,策略模型和奖励模型。
其中,策略模型使用来自标注训练集的每一步的最后状态作为输入,以及从当前状态到结论的步骤作为输出,形成用于训练策略模型的SFT数据。奖励模型通过评估最终的逻辑形式来评价整个轨迹,以问题作为输入,以标注训练集中的逻辑形式作为输出,形成用于训练奖励模型的SFT数据。
这里顺便说下数据工程,这里有个思路可以借鉴,有点像拒绝采样。首先使用少量标注数据对策略和奖励模型进行微调,对于未标注的问题,使用MCTS探索和奖励模型过滤器生成自动标注数据,具体地,使用MCTS进行多次探索,生成候选逻辑形式,使用奖励模型评估这些逻辑形式,过滤出高质量的数据,最后将生成的自动标注数据与原始标注数据结合,对策略和奖励模型进行进一步微调。
3、基于MCTS的搜索流程和具象化例子
定义好了动作、原子函数、奖励模型、策略模型,就可以开始传起来一个MCTS搜索流程了,如下:

首先,需要进行prompt初始化,该提示定义了通过交错思维、行动和观察阶段来解决KBQA任务的结构和步骤,提示指导代理执行特定动作,如实体提取、关系查找、表达式合并、排序、数值比较以及添加时间约束。这些预定义的动作对于从自然语言问题逐步生成逻辑形式至关重要。

再看,一个完整的例子,每一步涉及对当前上下文进行推理(思考)、执行特定操作(行动)以及观察得到的逻辑表达式(观察)。该过程从提取主题实体开始,接着找到相关关系并应用数值和时间约束。代理合并表达式以形成一个完整的逻辑形式,然后执行该逻辑形式从知识库中检索答案。

以及下面这个例子,提出的问题是“有哪些时长少于60分钟的包含泰勒·洛特纳的电影?”

该问题首先在初始提示中得到处理,形成智能体的起始状态。通过多轮MCTS探索,框架构建了一个搜索树,其中Q值代表通过反向传播更新的分数,#V表示每个状态被访问的次数,这些值指导智能体使用树的置信上界(UCT)选择最优的下一个节点。
总结
本文主要讲了几个工作,围绕RAG、KBQA,可以看到一个点就是,这些工作其实都跟当前的热点绑定的很深,但也都是针对一个特定的问题做的优化处理。
当然,我们看到的,应该是其实现的思路本身,其中的结果倒是其次,因为也不具备一般行。
参考文献
1、https://cherry-ai.com/
2、https://github.com/signerlabs/klee-client
3、https://huggingface.co/papers/2502.14776
(文:老刘说NLP)