论文标题:
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 任务。
文章浏览阅读2.7k次,点赞2次,收藏5次。mybatis使用sqlserver驱动_mybatis连接sqlserver
文章浏览阅读91次。ava计算机毕业设计重庆美食网站源程序+mysql+系统+lw文档+远程调试。前端技术:Layui、HTML、CSS、JS、JQuery等技术。springboot基于springboot的球队管理系统。springboot晨曦文学社在线投稿系统的设计与实现。springboot校园周边美食探索及分享平台。springboot校园招聘论坛设计。springboot精准扶贫管理系统。_重庆美食推荐系统毕业设计
文章浏览阅读443次。1、django的简介浏览器与服务器之间遵循的一个协议: HTTP协议服务器与应用程序框架之间:wsgi1.1 Django的简介Django是一个重量型框架主要目的:简便快捷开发Django基于MVC模式,但是它是MVT模式的核心:解耦(高内聚,低耦合)MVC设计的框架(1)重量级框架(2)MVT模式MVC :定义:MVC全名是Model View Con..._/works/count?is_template=false (6 ms) 403
文章浏览阅读9.6k次,点赞65次,收藏120次。VMtools应该已成功安装并配置,应该能够在主机和Ubuntu虚拟机之间实现文本的复制和粘贴操作。右键点击你创建的系统,然后出现菜单下滑找到安装 VMware Tools(T) 这个点击安装;这些命令假设你的Ubuntu系统已连接到互联网并且已配置为使用apt软件包管理器;Ubuntu上安装和配置VMtools以实现与主机之间的文本复制粘贴功能;然后弹出虚拟机设置-->点击选项-->客户机隔离-->启用复制粘贴;如果你的网络环境有限,你可能需要提前配置好网络或更换软件源;_ubuntu虚拟机与主机复制粘贴
文章浏览阅读1.9k次。排版是任何设计的基础 ,因为阅读是我们在网络上所做的最基本的事情之一。 您选择的排版会影响网站的多个方面,包括可读性,心情和整体用户体验 。 对于设计师和开发人员来说, 了解字体的基本原理以创建可读的令人愉悦的设计至关重要。 之前我们一直在讨论字体配对工具 ,而今天我们将与您分享打字工具,这些工具可以使您在构建和/或设计的网站上获得更好的阅读体验。 这些是插件,在线工具和脚本,可帮助您..._八字排盘app编写
文章浏览阅读6.6k次,点赞22次,收藏68次。先放下我做的完整永磁同步电机矢量控制系列仿真框图我在做仿真前是每个小的仿真分开做的,在各个仿真完成后我把所有的集中在了一个仿真模型里面,公用一个PMSM,不再需要复杂的切换和调参了。在模型里我把各个仿真的原理图和结果都仿真里面可以方便对照。ps.个人有点在意模型搭建的简洁性和美观性,在外观上简洁美观的,在性能上也会更好。less is more - .-目录总体仿真框图1.矢量运算器的PMSM-FOC2.PMSM-FOC采用电流滞环3.PMSM-FOC 采用..._永磁同步电机电流滞环矢量控制系统仿真csdn
文章浏览阅读9k次,点赞33次,收藏173次。系统需求分析本程模拟面对英语单词有背诵和查询需求的用户。用户在实际学习过程中可能会遇到学习单词时实体单词书体积大不方便的情况,这时就可以使用便携PC设备来运行此程序方便学习。在本程序中,设计设计了自动背单词的部分。每次给用户输出10个单词,用户自己进行背诵并且立即进行测试,在测试中本程序会记录用户对单词的掌握程度,并且形成熟练度等级。在用户遇到新的单词时可以根据跟程序内部提供的词库实现查单..._c语言背单词程序代码
文章浏览阅读3.3k次,点赞5次,收藏8次。Promentheus、Grafana,监控维度讨论。_监控维度
文章浏览阅读7.5k次,点赞7次,收藏43次。前言前面两个章节讲解了K8S的总体入门准备以及全局配置管理的相关内容,正常来说接下来应该将将存储或者组件,但是由于那两部分内容过多且相对偏重细节,所以这一篇先把K8S中的Service先讲解下,帮助大家先理清K8S的整体架构,后续再讲解细节内容的时候可以快速上手,便于理解。正文Service是什么?在说明Service是什么之前先了解下Service的使用场景: 当客户端想要访问K8S集群中的pod时,需要知道pod的ip以及端口,那K8S中如何在不知道pod的地址信息的情况下进行po_容器service的类型
文章浏览阅读2.1w次。最近在搞一个无人值守系统时,需要能自动登录,在登录时需要输入验证码,所以研究了验证码识别技术,否则我这个无人值守系统的作用就没有了。目前只测试了字母和数字的识别,准确率还是可以的,呵呵,已经够我自已用了~~,至于中文的识别可以参考我上篇文章:利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别。验证码识别率如下图:(准确率还可以吧)好吧,切入正题,赶快上_imagemagick+tesseract-ocr)实现图像验证码识别.
文章浏览阅读123次。前言近日,字节跳动正式启动了2021届秋季校园招聘,为应届毕业生开放超过6000个工作岗位。这一数字超过了该公司往年秋招规模,并与其今年春招规模持平。全年校招人数共计超过1万2千人,远高于同类型互联网公司,体现了字节跳动保持业务快速增长,重视对优秀人才的持续投入。字节跳动校园招聘负责人介绍,该项招聘主要面向2021届毕业生,即2020 年9月至2021年8月期间毕业的大学生群体。这批岗位覆盖字节跳动10多项产品和业务,既包括今日头条、抖音、西瓜视频等旗舰产品,也包括懂车帝、幸福里、番茄小说等垂类应用,以_android移动开发项目化教程
文章浏览阅读465次,点赞17次,收藏5次。看见worker和master就说明spark集群启动成功。切换到spark安装目录的/sbin目录下。使profile文件更新生效。