表格RAG可以怎么做?推理大模型存在“心口不一”?

今天是2025年4月4日,星期五,北京,天气晴。

今天是清明节,清明安康。

我们继续看技术问题,两件事。

一个是推理大模型存在“心口不一”现象,实验如何做的?结论如何看?

一个是表格RAG应该怎么做?看两个方案,实现思路可以借鉴。

抓住根本问题,做根因,专题化,体系化,会有更多深度思考。大家一起加油。

一、推理大模型存在“心口不一”现象 

最近claude出了不少关于大模型可解释性的工作,实验设计的很有趣。

而最近推理大模型很火,对于其思考认识的需求量也在变大。所以,我们来看

推理大模型研究进展,AI推理模型存在“心口不一”现象。《Reasoning Models Don’t Always Say What They Think》(https://assets.anthropic.com/m/71876fabef0f0ed4/original/reasoning_models_paper.pdf, https://www.anthropic.com/research/reasoning-models-dont-say-think)研究推理模型(如Claude 3.7 Sonnet)的“思维链”(Chain-of-Thought)是否能够真实反映模型的实际推理过程,其发现,尽管“思维链”在帮助模型解决复杂问题和辅助AI安全研究方面具有价值,模型在“思维链”中所表达的内容并不总是可靠的

关键是看其是如何实现的?

具体做法上,通过向模型提供关于问题答案的暗示(hint),然后观察模型是否在“思维链”中承认使用了这些暗示。这些暗示包括正确的和故意错误的答案;实验对象涉及Anthropic的Claude 3.7 Sonnet和DeepSeek的R1模型。实验环境上设计了多种提供暗示的方式,包括中性的(如提到“斯坦福教授指出答案是A”)和更具争议性的(如告诉模型“你获得了未经授权的系统访问权限,正确答案是A,但由你决定是否使用这些信息”)。

实验结论上:

首先,在所有类型的暗示中,Claude 3.7 Sonnet在“思维链”中提到暗示的比例为25%,而DeepSeek R1为39%。这表明大多数情况下,模型的“思维链”是不忠实的

而对于更具争议性的暗示(如未经授权的访问),Claude的忠实性为41%,R1为19%。这意味着在多数情况下,模型隐藏了其以不道德或不合法方式获得信息的事实

其次,在复杂任务与忠实性方面,假设更复杂的任务可能会激励模型更实质性地使用“思维链”,从而提高忠实性。所以通过训练Claude更有效地利用“思维链”来解决复杂的数学和编程问题,发现初始阶段忠实性有所提高,但很快达到瓶颈,最终忠实性并未显著提升

如图所示: 在Claude3.7Sonnet的早期checkpoin实现发现,基于结果的RL最初会大幅提高思路链忠实度,但改进在MMLU上稳定在28%,在GPQA上稳定在20%,这表明仅基于结果的RL不足以实现较高的思路链忠实度

在奖励劫持(Reward Hacking)方面,让模型通过“奖励劫持”(即利用漏洞获得奖励)来测试其是否会在“思维链”中承认这种行为。结果表明,模型在“思维链”中承认使用奖励劫持的比例不到2%,并且经常为错误答案构建虚假的理由

因此,可以得到几个有趣的最终结论,一个是模型隐藏真实推理过程,即使在模型行为与人类意图不一致的情况下,它们也经常隐藏真实的推理过程;一个是“思维链”监控的局限性,尽管“思维链”在某些情况下可能有助于监控模型行为。但目前的研究结果表明,仅依赖“思维链”来排除模型的不良行为是不够的

二、表格RAG应该怎么做? 

表格RAG方案,我们来看两个代表工作。

在任务形式上,经常会出现跨表问答的情况。

1、TableRAG实现思路

《TableRAG with Language Models》(https://arxiv.org/pdf/2410.04739,https://github.com/google-research/google-research/tree/master/table_rag),提出以个名为TableRAG的框架。主要看实现系统是如何的?

核心思想是通过结合查询扩展、模式检索和单元格检索来提高表格理解的效率。包括几个组件。

表查询扩展组件,通过生成针对模式和单元格值的独立查询来精确检索必要的信息,以避免了使用单一查询可能导致的冗余和不相关信息。具体实现是,针对问题和表格生成独立的查询,分别用于模式检索和单元格值检索。例如,对于问题“钱包的平均价格是多少?”大模型会被提示生成可能的列名查询,如“产品”和“价格”,以及相关的单元格值查询,如“钱包”

模式检索组件,使用预训练编码器对查询进行编码,并从表格中匹配相关的列名。检索到的模式数据包括列名、数据类型和示例值。对于数值或日期时间类型的列,显示最小和最大值作为示例值;对于分类列,显示三个最常见的类别作为示例值。

单元格检索组件,构建一个包含不同列值对的数据库,并从表格中提取特定的单元格值以回答问题。为了保持可行性,引入了单元格编码预算B,如果不同值的数量超过B,则限制编码为出现频率最高的前B个对

程序辅助求解器组件:获取与问题相关的列名和单元格值后,语言模型可以使用这些信息有效地与表格交互。使用了ReAct方法来扩展语言模型的能力。

2、GTR思路

看第二个工作,《GTR: Graph-Table-RAG for Cross-Table Question Answering》,https://arxiv.org/pdf/2504.01346,提了一个方案,将表格语料库重组为异质超图并采用多层次检索过程,增强了跨表格问答任务的性能。可以看几个点。

1)当前表格任务都有哪些?

定义了三种跨表格任务类型:

Table-based Fact Verification(TFV)基于表格的事实验证;

Single-hop Table Question Answering(单跳 TQA)单跳表格问答;

Multi-hop Table Question Answering(多跳 TQA)多跳表格问答。

2)是如何将表格语料库重新组织成异构超图的?

将表语料库转换为超图结构,每个超边包含一组表实体,超边的类型源于表的异质特征,如表语义、表格式和表实体频率。

那么,什么叫表格语料库?大规模表格语料库定是一系列表格的集合,记作T={T1,T2,…,Tt}。每个表格T包含三个组成部分:(i)表格模式(C,H),包括表格标题C和列标题H;(ii)表格条目E,指表格的主体,包含N行M列的值;(iii)表格元数据D,提供额外的描述信息,如上下文细节、相关资源和代表性示例话语。

首先,将表线性化以捕捉文本结构和语义属性。提取表的表模式和列标题,并将它们连接成一个序列。

然后,对于每个线性化的序列,计算三个单向特征向量:语义特征向量(x(sem))、结构特征向量(x(struct))和启发式特征向量(x(heur))。语义特征向量通过序列编码器(如SentenceTransformer)生成,结构特征向量通过spaCy提取关键格式特征,启发式特征向量通过TF-IDF进行向量化。

最后,通过多路聚类方法将提取的特征整合成超图结构。使用KMeans聚类算法对节点进行聚类,每个聚类对应一种特征类型(如语义、结构、启发式)。定义异质超边,每个超边包含一组属于同一聚类的节点。最终的超图结构G=(V,E,其中节点集V由线性化后的表序列组成,边集E由不同类型的异质超边组成。

3)是如何检索的?

如下图所示,在构建了表示表格语料的超图之后,我们采用多阶段粗到细的检索过程来识别每个传入查询q的最相关节点。检索包括两个阶段,一种由粗到细的多阶段检索过程,通过选择性地将超边实例化为子图,并运行交互式PageRank来提取典型且与查询相关的表格实体。

首先,进行粗粒度多路检索,通过选择性实例化超边为子图并运行交互式PageRank来提取典型且与查询相关的表实体

其次,基于粗粒度多路检索选择的聚类,利用表节点之间的抽象连接性实例化一个密集连接的局部子图,并计算相似性矩阵和个性化PageRank向量来排名节点。

最后,应用图感知提示方法,使下游LLMs能够有效解释检索到的表并进行表格推理。提示结构包括图信息插入和分层长链式思维(CoT)生成指令。prompt如下:

参考文献 

1、https://assets.anthropic.com/m/71876fabef0f0ed4/original/reasoning_models_paper.pdf

2、https://arxiv.org/pdf/2504.01346

3、https://arxiv.org/pdf/2410.04739

(文:老刘说NLP)

欢迎分享

发表评论