提出背景:
-
图和文本之间仍然存在语义差距,这可能会阻碍大型语言模型在图推理和生成方面的表现。
-
大型语言模型往往会生成幻觉,这可能是由捏造的错误输入或缺乏相关知识引起的。这可以视为图幻觉问题。
解决方案:
-
问题一:
-
使用图描述或者图嵌入(需要大量的手工模板来描述图。通过嵌入表示一个大型或复杂的图可能会导致信息丢失。此外,通过这些方法生成的LLM响应难以解析成实际的图)
-
将图数据统一成类似代码的通用格式,以增强LLM在图任务上的理解和生成性能。(LLM在代码理解和生成方面具有很强的能力)(每个图可以转换为包含基本变量的代码,例如节点列表(node_list 或 entity_list)、边列表(edge_list 或 triple_list)和可选属性)
-
-
问题二:
引入了图偏好对齐,以缓解LLM在图推理和生成中的幻觉问题(遵循dpo算法优化LLM,使其做出更好的偏好选择)
方法:
符号表示
假设有 M 个图任务 D = $$\{D_1, \cdots, D_M\}$$,每个任务对应的数据集记为$$D_j = \{(I_i, G_i, P_i, A_i)\}_{i=1}^{N_j}$$,其中$$N_j $$表示$$ D_j$$的示例数量,$$ I_i $$是对应的指令,$$G_i = (\mathcal{E}_i, \mathcal{R}_i, \mathcal{T}_i, \mathcal{S}_i)$$是包含一个节点(实体)集合 $$\mathcal{E}_i$$、一个可选的关系集合$$\mathcal{R}_i$$、一个边(三元组)集合$$\mathcal{T}_i$$和一个可选的文本属性集合$$\mathcal{S}_i $$的图,$$P_i $$是可选的段落,$$A_i$$是最终答案。
三个模块:
-
图输入工程
问题:
Q:如何将图与文本对齐以满足LLM的序列接口?
A:引入了一种结构化格式的词化策略,将图转化为简单的类似代码的格式。
具体:
给定一个任务图$$G_i \in D_j$$,我们记 M(·) 为结构化格式词化器,原始图可以映射为一个序列$$C_i = M(G_i)$$。对于基本格式,所有节点(或实体)都列为一个序列,变量为 node_list(或 entity_list),而所有边(或三元组)都列为一个序列,变量为 edge_list(或 triple_list)。对于包含附加信息的图,我们可以模拟面向对象语言来表达节点(或实体)。
Eg
节点“User1”的评论"The film is nice."可以表示成“User1.review=The film is nice.”,其中“.review”可以替换为图中的属性名称。
-
图指令微调
4种指令任务
-
图结构建模:侧重于图推理
-
图语言建模:侧重于图推理
-
图生成建模:典型的图生成
-
图思维建模:同时进行图推理和生成
具体实现
在图输入工程之后,我们可以直接重用标准的因果语言建模(CLM)目标,持续调整LLM在这些任务上的表现。
形式上,给定一个任务数据集$$D_j = \{(I_i, G_i, P_i, A_i)\}_{i=1}^{N_j}$$ ,可以通过最大似然来优化LLM:
$$ L(D_j) = -\sum_{i=1}^{N_j} \log \pi_\theta(Y_i = A_i | X_i)$$
其中$$\pi_\theta$$表示具有可训练参数$$\theta$$的LLM,$$Y_i$$是模型输出,$$X_i$$和$$A_i$$分别代表输入序列和参考标签,这取决于具体的任务定义。
所有任务组和相应的任务集群,以展示任务定义、模型输入和输出
-
图偏好对齐
图推理中的幻觉:
指令版本llm陷入幻觉的原因(错误的知识或缺乏知识):
-
正确的图但错误的答案 表示LLM做出了错误的预测,即使输入是合法的。
-
不真实的图但错误的答案 表示错误的答案是由一个对外部知识不忠实的语义图引起的。
-
冲突的图但错误的答案 表示输入图中存在冲突信息。
-
缺失的图但错误的答案 表示输入图缺少一些与答案相关的重要信息。
对于1:
随机选择其他例子中的结果来形成一个负面输出$$\mathcal{Y}^{-}_i$$。
对于2-4:
随机替换、添加或删除图中的某些节点(实体)或边(三元组),并使用原始指令和段落构建新的输入。因此,原始答案可以被视为负面$$\mathcal{Y}^{-}_i$$,正面$$\mathcal{Y}^{+}_i$$被定义为“对不起,输入图包含错误信息,因此问题无法直接回答。”
图生成中的幻觉:
三种错误生成的图类型:不真实的图、冲突的图和缺失的图
通过执行替换、添加和删除操作,直接构建一个错误的图作为最终输出$$\mathcal{Y}^{-}_i$$,这与图推理类似。原始图被表示为正面$$\mathcal{Y}^{+}_i$$。此外,如果错误答案是由于输入错误造成的,可以用数据集中不影响答案图的未关联输入替换原始输入。原始答案图则被视为负面输出$$\mathcal{Y}^{-}_i$$。
之后使用dpo算法减少幻觉: