Graph-Toolformer: 基于大语言模型的多功能图数据推理引擎-程序员宅基地

技术标签: 语言模型  人工智能  知识图谱  

论文标题:

Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT

论文链接:

http://www.ifmlab.org/files/paper/graph_toolformer.pdf

源码链接:

https://github.com/jwzhanggy/Graph_Toolformer

背景介绍

最近几年,大语言模型(LLM)在自然语言处理的各类任务上都取得了非常优异的表现。并且,自从 2022 年底到现在,ChatGPT 和 New Bing Chat 相继出现以后,各种大语言模型被广泛应用到人们的学习、工作和生活当中,对我们的工作生活都产生了巨大的影响。

与此同时,在使用过程中,大语言模型的自带的诸多弊端也显现出来,包括 1)无法做复杂精确的数学计算;2)没法进行多步的逻辑推理;3)不能获得空间拓扑结构信息;4)难以准确感知时间信息等。

在现实生活中,除了文本数据外,还广泛存在各种其他类型的数据,例如 image 和 graph 等类型的数据。现在,把 LLM 扩展能够处理多模态数据是当前研究的重点,并且 OpenAI 最新的 GPT4 和 Google 新推出的 PaLM-E 都能够同时有效处理文字和图片(image)等数据。而如何使用 LLM 处理复杂的 graph 结构的数据,当前还是一个有待解决的问题。

研究问题

在现实生活中,很多数据都可以表示成 graph 结构数据。例如上图所示:

  • 学术文献引用关系可以表示成 bibliographic network

  • 生物医学里的蛋白质分子可以表示成 protein molecular graph

  • 推荐系统可以表示成包括人和物品关系的 recommender system network

  • 社交网络可以表示成包含用户和人际关系的  online social network

  • 无结构的复杂文本数据也可表示成由 entity 和 relation 构成的 knowledge graph 等

本文主要研究如何使用 LLM 处理 graph 结构数据,并且进行复杂 graph 数据上的推理问题,其中包括

1. 简单 graph 的基本属性,例如:

  • 半径,密度,最短路径 等;

2. 复杂 graph 数据上的应用任务,例如:

  • 基于 bibliographic network 的文献主题预测,

  • 基于 protein molecular graph 的蛋白质分子功能检测,

  • 基于 recommender system network 的时序商品推荐,

  • 基于 online social network 的社区检测,

  • 基于 knowledge graph 的知识图谱推理 等。

上面这些 graph 结构数据上的推理任务往往都涉及(1)复杂的数学计算,(2)多步逻辑推理,(3)处理空间拓扑结构,(4)0感知时序信息 等。而这些对模型的要求,正好对应了前面提到的 LLM 的诸多弱点。

解决方案

为了解决这些问题,并且使得 LLM 能够在 graph 结构数据上进行各种复杂推理的任务,基于最近的 ChatGPT 和 Toolformer 模型,本文提出了一个新的语言模型框架,Graph-Toolformer。Graph-Toolformer 针对各类 graph reasoning 任务,定义了对应的 API call,并且通过使用 LLM 生成 API call 来使用 LLM 控制和实现针对各类 graph 数据的 reasoning task。

如上图所示,本文提出的 Graph-Toolformer 包含多个功能模块:

1. 针对 graph reasoning 任务设计少量 API Call 样本:我们针对本文研究的 graph reasoning 任务设计了少量的 API call 样本,通过 API call 我们既可以加载 graph 数据,也可以对 graph 数据进行简单和复杂的推理任务。

2. 基于 ChatGPT 对 prompt 进行 augmentation:基于上一步的少量 API call prompt 样本,我们提出使用 ChatGPT 对训练数据进行增强。基于人工设计的 instruction 和少量 prompt example 数据,我们调用 ChatGPT API 利用 GPT3.5/GPT4 的 in-context learning 和 few-shot learning 的特性,成功对各类 graph reasoning 任务各自生成了一个比较大的训练数据,并对生成的数据进行了清洗和整理。

3. 使用现有 pre-train LLM 进行模型 fine-tuning:基于得到的训练数据,我们对现有 pre-train 的开源 causalLM 模型 (例如 GPT-J 6B 和 LLaMA 7B)进行 fine-tuning。为了降低模型训练的内存开销,本位使用了最新的 LoRA,大预言模型 quantization 技术,并且使用了 bitsandbyte 的 8bit AdamW 作为训练使用的 optimizer。

本文模型的 fine-tuning 任务,在使用小的 batch-size 的情况下,最低仅仅需要 11GB 显存,完全可以在 1080Ti 的显卡上跑 fine-tuning。

4. 基于 external graph toolkits 的 graph reasoning:训练好的 LLM 可以对任意 graph reasoning 的输入,自动插入并生成对应含有 API call 的输出。并且通过 post-processing,我们可以调用外部的 graph reasoning 工具包,实现 API call 并且把返回结构加入的生成结构之中,实现使用 LLM 对 graph 结构数据进行复杂推理的任务。

Graph Reasoning Prompt示例

如下面两个表所示,我们展示了各种简单和复杂 graph reasoning prompt input-output 的示例。

graph 数据加载和简单 graph property reasoning 示例:

复杂 graph reasoning 任务示例:

实验结果

本文选取了多个 graph reasoning 的 benchmark 数据集,对 Graph-Toolformer 框架的表现进行验证,如下表所示:

各种 graph benchmark 数据集:

fine-tuning 后的模型生成的输出质量:

结论和后续工作

本文提出了通用的 Graph-ToolFormer 框架,实现了使用 LLM 来完成 graph reasoning 的任务。目前 Graph-ToolFormer 还只包含 GPT-J 一个语言模型和文中提到的少量 graph reasoning 任务。根据作者最新信息,他们将会继续向 Graph-ToolFormer 添加跟多的语言模型,graph data 和 graph reasoning 任务,并且会将 Graph-ToolFormer 上线且增加 GUI,使得用户可以在线完成各类型的 graph reasoning 任务。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaomengsen/article/details/130189978

智能推荐

postgis 坐标体系及文本转geometry格式转换_postgis将txt转换为geometry格式-程序员宅基地

文章浏览阅读412次。2、文本格式输入,通过在地理化文本中增加参数定义地理格式。from 重点场景边框2023 LIMIT 3。1、地理化字段直接转换。_postgis将txt转换为geometry格式

【以终为始】为什么说做事之前要先进行推演?_事前推演-程序员宅基地

文章浏览阅读462次,点赞2次,收藏2次。在动手做一件事之前,先推演一番。_事前推演

深度详解什么是SaaS(软件即服务)-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏12次。什么是SaaS? 本篇文章有点长,但看完之后相信你就会对sass有一个清晰的认知。_saas

浙江大学PAT解题集7-2 I Love GPLT_c语言如何竖着输出ilovegplt-程序员宅基地

文章浏览阅读360次。浙大PAT习题集_c语言如何竖着输出ilovegplt

git 撤回操作_git回退到上一次提交-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏16次。命令查找要回退到的提交的 SHA-1 值或引用名称。使用 “mixed” 模式,这将保留提交之后的更改,但将其放置在暂存区中。命令是危险的操作,它会丢弃提交历史记录,并且如果已经将更改推送到远程仓库,则可能会导致问题。这些命令将创建一个新的提交,将先前提交的更改撤销,并将更改应用于代码库。此命令将显示提交记录列表,每个提交记录都有一个唯一的 SHA-1 值和提交消息。注意,这将删除提交历史记录,并且如果已经将更改推送到远程仓库,则可能会导致问题。选项来阻止自动提交,并在撤销所有所需的提交后手动提交更改。_git回退到上一次提交

医疗图像基础知识_mni空间-程序员宅基地

文章浏览阅读1.9k次。1. 医学影像学医学影像学Medical Imaging,是研究借助于某种介质(如X射线、电磁场、超声波等)与人体相互作用,把人体内部组织器官结构、密度以影像方式表现出来,供诊断医师根据影像提供的信息进行判断,从而对人体健康状况进行评价的一门科学,包括医学成像系统和医学图像处理两方面相对独立的研究方向。仪器主要包括X光成像仪器、C..._mni空间

随便推点

Cobbler--自动化部署-程序员宅基地

文章浏览阅读71次。Cobbler自动化部署cobbler简介Cobbler可以用来快速建立Linux网络安装环境,它已将Linux网络安装的技术门槛,从大专以上文化水平,成功降低到了初中水平,连补鞋匠都能学会。网络安装服务器套件Cobbler(补鞋匠)从前,我们一直在装机民工这份很有前途的职业。自打若干年前Red Hat推出了Kickstart,此后我们顿觉身价增倍。不再需要刻了光盘一台一台的安装L...

ie右键菜单bug-程序员宅基地

文章浏览阅读139次。如果多层(z-index不同)div同样大小,或者最底层的div大小比上层的大,而且底层div包含了img标签,其上层div右键菜单在ie上会默认为img所在层的菜单,造成本身的菜单无法弹出。有点绕,可以到web.qq.com测试(至少本日志发布时间该问题还存在),在桌面空白的地方右键其他浏览器可以正常弹出菜单,而ie却不行。如下面的页面,正常会弹出div20,ie则弹出div0。&lt..._ie下右键时会阻塞定时器

opencv python 角点坐标的提取_opencv求角点坐标-程序员宅基地

文章浏览阅读5.4k次,点赞2次,收藏47次。https://blog.csdn.net/zhu_hongji/article/details/81235643图像特征描述角点检测原理ret,labels,stats,centroids=cv2.connectedComponentsWithStats(dst)import cv2 import numpy as npimport matplotlib.pyplot as pltimg =cv2.imread('E:/python/ha.png') imgray=cv2.cvtColo_opencv求角点坐标

EasyPlayer.js:打造简洁高效的HTML5视频播放器-程序员宅基地

文章浏览阅读824次,点赞5次,收藏19次。EasyPlayer.js:打造简洁高效的HTML5视频播放器项目地址:https://gitcode.com/tsingsee/EasyPlayer.jsEasyPlayer.js 是一个轻量级、高度可定制的HTML5视频播放器框架,由Tsingsee团队开发并维护。该项目旨在简化HTML5视频播放器的开发过程,让开发者能够快速构建功能丰富的自定义播放器,适用于各种网站和应用。项目简介E..._easyplayer.js

激光器温控TEC选型设计_tec 选型-程序员宅基地

文章浏览阅读525次,点赞3次,收藏2次。设计激光器的时候,TEC制冷必不可少。那么如何选用合适的TEC呢?_tec 选型

Gradle的使用教程 -Gradle通过mavenLocal()指向本地仓库 -Gradle依赖包的存储位置-程序员宅基地

文章浏览阅读5.3k次,点赞2次,收藏12次。本文由 简悦 SimpRead 转码, 原文地址 _mavenlocal

推荐文章

热门文章

相关标签