今天是2024年4月15日,星期一,北京,天气晴。
在昨日的文章 《ResearchAgent?基于LLM+KG+AGENT进行科研想法生成:兼看2023-2024年人工智能代表50公司》 (https://mp.weixin.qq.com/s/Y-b6YpA-b0AJ_MP-viEuhw)中,我们介绍了LLM+KG+AGENT三者的结合工作,很有趣。
今天,我们再来看看关于这方面的一些有趣进展。分别是关于多模态大模型进展,一个不错的综述,另一个是大模型与知识图谱结构的结合进展,也就是Graph CoT,会有一些收获。
我们再来看看关于大模型与知识图谱结构的结合进展,现有的增强方案都使用从外部知识库中检索的单个文本单元来增强LLM,但在许多领域中,文本是相互连接的(例如,文献图谱中的学术论文通过引文和合著者联系在一起),这就形成了一个图谱,这种图中的知识不仅编码在单个文本/节点中,而且编码在它们的边上,因此如何对这种关系进行建模,显得十分重要。
因此,出现了将局部子图结构转换为文本描述作为LLM的输入上下文的方案,但局部子图的大小随着跳数的增加呈指数增长,导致过长 上下文序列。
《Graph Chain-of-Thought: Augmenting Large Language Models by Reasoning on Graphs》(https://arxiv.org/abs/2404.07103) 这一工作值得看看。
1、数据侧的工作
该工作构建了一个名为GRBENCH的图推理基准数据集,其中包含可利用10个领域图谱中的知识回答的1,740个问题,包括简单问题(可以通过图上的单跳推理来回答)、中等问题(需要在图上进行多跳推理)和困难问题(需要在图上进行多跳推理)。
2、模型侧的工作
在模型算法侧,该工作提出了一个名为"图思维链"(GRAPH-COT)的框架,通过鼓励LLMs对图形进行迭代推理来增强LLMs的图形推理能力,每个GRAPH-COT迭代包括三个子步骤:LLM推理、LLM-图交互、图执行,这个过程将被迭代,直到大模型在推理子步骤中得出最终答案。
其中:
1)推理指的是LLM提出可以利用当前信息得出什么结论以及需要从图中得到哪些进一步信息;
与大模型进行推理。给定问题或之前的迭代上下文,第一步是让大模型进行推理,判断需要从图中获取哪些进一步的外部信息来回答问题,或者问题是否可以用图中的当前上下文来回答。例如,给出问题“谁是《语言模型是无监督多任务学习者》的作者?”。
大模型预计会推理“我们需要首先在图表上找到论文节点{语言模型是无监督多任务学习者}”。
整个的GRAPH-COT在prompt侧包括三个部分: graph description, interaction function description, and demonstrations,如下:
其中:graph description表示的是对当前图谱描述的定义,如下对于MAG、DBLP以及Literature的描述:
2)交互指的是大模型生成从外部获取信息所需的交互,例如,查找节点、检查邻居等;
基于之前LLM推理步骤的输出结果,下一步是让LLM知道如何与图交互并从图中获取相关信息,在这一步,预先定义了四个图函数来覆盖图上的语义信息和结构信息:
RetrieveNode(Text):通过语义搜索识别图中的相关节点;
NodeFeature(NodeID,FeatureName):从图中提取特定节点的文本特征信息;
NeighborCheck(NodeID,NeighborType):返回图中特定节点的邻居信息;
NodeDegree(NodeID,NeighborType):返回图中特定节点的特定邻居类型的度;
然后,要求大模型根据之前的推理结果生成准确的图函数调用,以有效地与图进行交互。在给定的示例中,LLM预计会生成“RetrieveNode(语言模型是无监督多任务学习器)”。
对应的prompt如下:
3)执行指的是在图上执行交互步骤的请求并返回相应的信息;
该步骤是调用上一步给出的函数并从图中获取相关信息。对于前面的示例,该图将执行RetrieveNode(·)函数并返回“最相关的节点的ID是p-4123”,
然后,当前迭代的过程结束,从“LLM推理”开始新的迭代,整个框架会不断迭代,直到LLM完成推理并输出最终答案。
这里,为了提升大模型的指令遵循能力,提供了一个feweshot的例子,prompt如下:
3、总结
在进行子图检索时,节点/文本的数量会随着跳数线性增长而呈指数增长。尽管子图越大,它包含的信息越多,但将导致超长的上下文,甚至超过LLM的最大输入长度,并会导致LLM在中间丢失,在这种情况下,GRAPH-COT可以作为从图中提取更多有用信息的更好方法;
但很明显的是,因为这个涉及到函数的调用问题,调用的能力又取决于大模型能力本身,因此,本质上又需要提升大模型的能力,例如上图中就明显存在错误的交互。
最后,对于该工作的进一步代码实现,可以查看:https://github.com/PeterGriffinJin/Graph-CoT,对于数据集,可以查看:https://huggingface.co/datasets/PeterJinGo/GRBench
我们再来看看关于多模态大模型进展,最近有个综述值得一看,《Multilingual Large Language Model: A Survey of Resources, Taxonomy and Frontier》(https://arxiv.org/abs/2404.04925),该工作将现有多模态大模型的分类、训练方案、对齐方案以及训练数据进行了整理,下面是其中的几个重要的图。
1、过去5年来多模态大模型的进展
2、当前主流多模态大模型的分类
3、当前多模态模型的训练方案
4、当前多模态模型的对齐方案
5、当前的一些主流的多语种训练数据集
本文主要介绍了两个工作,一个是research agent,用于研究想法生成,不过依赖chatgpt来完成的实验,但思路值得借鉴。另一个是关于AI top50的榜单推荐,我们可以从中看到大致的商业化趋势。
1、https://arxiv.org/abs/2404.07103
2、https://arxiv.org/abs/2404.04925
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。