©作者 | 李鑫
单位 | 北邮GAMMA Lab
背景与动机
图是现实世界中十分常用的数据结构(例如社交网络和推荐系统等),让大语言模型(后文简称大模型)学会处理图的能力,是迈向更高级通用智能的关键一步。
近期,许多研究者提出将大模型扩展到需要图理解和分析的场景,然而我们认为现有研究存在以下主要缺点:
现有工作解决问题的过程完全基于大模型的逐步推理。但即使在思维链(CoT)的帮助下,当前大模型的推理深度仍然很浅。这意味着当图分析任务难度较大时,很容易出现幻觉或推理错误,导致任务失败;
现有工作需要在提示(prompt)中对图结构进行描述,受限于上下文长度限制,无法适用于大规模图数据的处理;
对于 Llama 等开源模型,仍然缺乏面向图分析推理场景的指令微调数据集,导致结果并不理想;
对于 ChatGPT 等闭源模型,也需要构建面向图分析推理场景的外部知识库而不是仅通过提示工程来提高模型的表现。
核心思路:为解决上述不足,我们模仿人类专家解决问题的思路,首次提出让大语言模型通过编写代码来解决图分析推理问题的方法:例如在百万级节点的图中计算最短路时,人类专家不会把整个图装进大脑做逐步推理,而是会调用 NetworkX 等 Python 库使用几行代码快速准确地解决问题。
具体而言,在模型进行图分析任务时,我们引导模型编写代码并调用相关 Python 库,之后我们提取并执行模型回答中的相关代码来获得答案。这种基于编程的解决方式可以从文件中读取图数据,从而避开大模型上下文长度的限制,应用于任意规模的图数据分析。
为了更好地提高大模型编写代码解决图分析问题的表现,我们探索了如下方法对模型进行能力提升。
1. 对于开源模型,我们构造了包含两步思维链推理(先推理应该使用的 API,再编写代码)的问答数据集,使用指令微调的方式让模型学会编写代码解决问题;
2. 对于闭源模型,我们收集了包括 NetworkX 在内 6 个 Python 库的 API 文档,然后使用检索增强生成(RAG)技术,让模型在回答问题前先熟悉文档信息,然后再基于文档编写代码,从而提高模型的表现;
3. 我们分析了不同模型在编写代码方面的错误原因,未来可以基于这些分析,进一步提高开源模型和闭源模型编写代码解决图分析问题的能力。
论文题目:
Can Large Language Models Analyze Graphs like Professionals? A Benchmark, Datasets and Models
论文链接:
https://arxiv.org/abs/2409.19667
代码链接:
https://github.com/BUPT-GAMMA/ProGraph
模型框架
问题处理流程
▲ 图1. 开源(左)和闭源(右)大模型图分析能力增强流程
对于闭源模型,我们从网络上获取了常用图分析任务 Python 库的文档,并对其进行加工处理后,使用检索增强生成(RAG)提高闭源模型的表现。
对于开源模型,我们首先基于 API 文档,使用反向指令(back-instruction)构造问答数据集对模型进行微调:在回答中我们使用两步推理的方式,让模型在回答问题前思考相关的 API 信息,之后再编写代码解决问题。
▲ 图2. 两步推理思考过程示例
基准构造
▲ 图3. 基准评测集构建流程
为了评估不同方法的有效性,我们构造了基准评测集 ProGraph。首先,我们选取了 6 个主流的 Python 库,挑选一些主流的 API,并收集其各种信息,包括示例代码等。
之后,我们邀请专业的人类标注人员,使用一些随机图生成模型生成图数据,并根据 API 文档信息,构造适用于 API 的问题,并手工编写答案和对应的解决问题的示例代码。最后,我们使用大模型将问题描述融入到真实场景中。
实验设置
数据集:ProGraph
模型:Llama-3-8B-Instruct, Deepseek-Coder-7b-Instruct-v1.5, GPT-4o, GPT-4-turbo, GPT-3.5, Gemini-Pro-1.5, Gemini-Pro-1.0, Claude-3-Haiku, Claude-3-Sonnet, Claude-3-Opus
评测方法:用代码执行通过率(pass rate)衡量模型编写代码的基本能力,用正确率(accuracy)衡量模型解决问题的能力
微调模型框架:alignment-handbook
微调模型数据集:LLM4Graph
实验结果
基准实验
从表格中可以看出,如果不加任何方法,直接让模型通过编写代码解决 ProGraph 的问题,所有模型在 ProGraph 上表现都很差。即使 GPT-4o,也只能达到 60.2% 的代码编译通过率和 36.3% 的问题正确率。
开源模型和闭源模型的性能提升
▲ 图4. 使用本文构建的数据集对开闭源大模型的性能提升
通过我们提出的数据集和方法对大模型进行增强后,我们可以看到闭源模型的性能获得了一定提升,开源模型的性能有了非常显著的提高,验证了本工作的有效性。
闭源模型RAG分析
▲ 图5. RAG检索文档数对闭源模型效果的影响
我们进行了消融实验,随着 RAG 使用文档信息数量的增多,模型的代码编译执行通过率和回答问题正确率都有明显上升,表明增加文档信息对模型使用 Python 代码解决问题具有重要意义。
Python代码错误类型分析
▲ 图6. 不同模型代码错误类型统计
同时,我们分析了开源模型和闭源模型编写代码的出错类型,使用 RAG 的闭源模型的错误类型和数量各不相同,但微调后的开源模型其错误分布非常相似,为后续继续增强模型的性能给出了一定的优化思路。
总结
在本文中,我们首次提出通过编程来提升大模型解决图分析推理任务的能力,并使用主流的开源模型和闭源模型进行研究。我们提供了新的基准数据集 ProGraph,用来衡量模型解决复杂图分析推理任务的能力,也构建了用于对开源模型进行指令微调的 LLM4Graph 数据集。
实验表明检索增强生成(RAG)和指令微调等方式可以有效利用我们构造的数据集,提升现有大模型的性能。
基于多智能体合作的大模型图分析系统
GraphTeam:
https://arxiv.org/abs/2410.18032
Github链接:
https://github.com/BUPT-GAMMA/GraphTeam
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·
·