【LLMs】从大语言模型到表征再到知识图谱

news2024/10/7 8:21:34

从大语言模型到表征再到知识图谱

  • InstructGLM
  • LLM如何学习拓扑?
  • 构建InstructGLM
  • 泛化InstructGLM
  • 补充
  • 参考资料

2023年8月14日,张永峰等人的论文《Natural Language is All a Graph Needs》登上arXiv街头,轰动一时!本论文概述了一个名为 InstructGLM的模型,该模型进一步证明了 图表示学习的未来包括大型语言模型(LLM)和图神经网络(GNN)。它描述了一种单独使用指令调整来teach语言模型文本属性图(text-attributed graph, TAG)的结构和语义的方法。经过指令微调的 Flan-T5和 Llama-7b能够在多个基准上实现引用 图的节点分类和链接预测任务的最先进性能: obgn-arxiv、 CoRa和 PubMed。图的结构结合节点的特点用通俗易懂的英语描述。在这两项任务中都使用了许多提示。

Natural Language is All a Graph Needs

InstructGLM

Natural Language is all a Graph Needs的作者描述了一个名为InstructGLM的模型,与GPT4Graph(使用图文件格式而非计划语言进行微调)等最近的努力相比,该模型开拓了新的领域,证明可以通过对引文图的结构[可选]及其特征的描述来指导对LLM(如谷歌的Flan-T5)进行微调,以训练其通过提示工程执行图机器学习任务,如节点分类和链接预测。

可以在下面看到使用的各种提示。主要的训练任务是节点分类,但作为多任务多提示指令调整的一部分,链接预测任务对其进行了扩展。任务有多种形式:只有结构,只有功能,两者都有有或没有边列表和结构描述,在过度平滑成为问题之前,可以扩展多达三跳(three hops)。
InstructGLM用法示意图
InstructGLM使用多任务学习应用于大型语言模型(LLM)的指令微调

InstructGLM架构
InstructionGLM的体系结构。唯一的“trick”是为节点ID使用特殊的令牌。否则,它只会向LLama或Flan-T5解释如何进行图形机器学习……

InstructGLM不需要GNN就可以实现最先进的性能,对引文网络中的节点进行分类并预测引文,这真的很酷。文本属性图(Text Attributed Graphs , TAG)是编码文本构成节点特征的图。该模型的一个方面是,除了简单的指令微调之外,它还扩展了LLM的词汇表为每个唯一的节点创建了一个新的令牌。在考虑结果时,请记住他们在OGB基准测试中使用的节点特征是稀疏的:Bag-of-Words(BoW)或TF-IDF。正确的节点特征编码可以显著提高性能

LLM如何学习拓扑?

个人觉得一个大型语言模型能够推理拓扑结构是令人惊讶的!图邻接列表或遍历由矩阵表示,Tranformer架构中的注意力头也是如此。也许Transformer能够以这种方式推理并不奇怪。这个Stack Exchange的回答是“……注意力矩阵是对称的,自然地具有加权邻接矩阵的形式。”DGL文档将Transformers建模为GNNs,可以在下图中看到Jesse Vig的jessevig/bertviz Github project(colab)中的注意力头表示为一组多重矩阵。
LLM学习网络拓扑是否类似于Transformer学习其注意力头中的权重?想想很有趣,很想看到一个可视化!以LLM和知识图谱领域目前的发展速度,我们可能不需要等待太久.
attention heads

构建InstructGLM

论文中没有代码,但作者确实发布了他们用来微调Alpaca和Flan-T5的prompts。它们将以Python格式出现在GitHub Repo的下一篇文章(正在进行中)中。这使得该论文相对容易以粗略的形式复制。该论文暗示了该方法的广泛潜力,以及如何通过改进节点特征来提高性能,节点特征是像Bag of Words或TF-IDF这样的稀疏特征。我希望句子编码将比这些稀疏表示更强大。
Prompts

泛化InstructGLM

在第三篇文章中,我将把InstructionGLM扩展到引用图之外的数据集。我感兴趣的几个异构网络具有复杂的、半结构化的节点特征数据。在阅读这篇论文时,我想起了我们在创业公司Deep Discovery时使用的一种对复杂节点功能进行编码的方法。它来自Megadon实验室的一个名为Ditto的实体匹配模型。Ditto[和Ditto Light]在2020年的一篇具有里程碑意义的论文《Deep Entity Matching with Pre-Trained Language Models》中进行了描述。它提供了一种相当通用的机制来对半结构化记录进行编码,以使用sentence transformer对其进行语句编码,从而实现实体匹配。
Deep Entity Matching with Pre-Trained Language Models
Sentence matchings
我想知道我是否可以像InstructGLM论文的作者那样,通过句子转换器使用交叉编码器(cross encoder via sentence transformer)来提高BoW/TF-IDF的性能,生成节点嵌入作为特殊节点token的特征。我希望这将使我能够将该方法应用于引文图之外的网络,例如我在实体和身份解析、财务合规、商业图和网络安全领域处理的网络。

补充

SentenceTransformers是一个Python框架,用于state-of-the-art的句子、文本和图像嵌入。在我们的论文《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》中描述了最初的工作。

Reimers N, Gurevych I. Sentence-bert: Sentence embeddings using siamese bert-networks[J]. arXiv preprint arXiv:1908.10084, 2019.
SentenceTransformers

您可以使用此框架来计算100多种语言的句子/文本嵌入。然后可以将这些嵌入与余弦相似性进行比较,以找到具有相似含义的句子。这对于语义-文本相似、语义搜索或转述挖掘非常有用。

该框架基于PyTorch和Transformers,提供了大量针对各种任务调整的预训练模型。此外,微调自己的模型也很容易。

参考资料

  1. Natural Language is All a Graph Needs
  2. Flan-T5
  3. Scaling Instruction-Finetuned Language Models
  4. LLaMA: Open and Efficient Foundation Language Models
  5. llm-graph-ai
  6. GPT4Graph: Can Large Language Models Understand Graph Structured Data ? An Empirical Evaluation and Benchmarking
  7. Cross-Encoders

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

界面组件DevExpress ASP.NET Core v23.1 - 进一步升级UI组件

DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…

为什么推荐从Linux开始了解IT技术

IT是什么,是干什么的呢? 说起物联网,云计算,大数据,或许大家听过。但是,你知道,像云计算的底层基座是什么呢?就是我们现在说的Linux操作系统。而云计算就是跑在Linux操作系统上的一个…

管理驾驶舱这么做,领导都点赞(附方案下载)

你是否知道你的企业是否充分利用了可用的数据资源? 著名的著名的质量管理专家,威廉爱德华德莱克(William Edwards Deming)曾说过:"数据不是权力,能够理解数据的能力才是真正的权力。" 企业在经营…

Unity Mirror学习(一) SyncVars属性使用

官网中所说的网络对象,指的是挂了 NetworkIdentity组件的对象 官网中所说的玩家对象,指的是NetworkManager脚本上的PlayerPrefab预制体 这个概念对阅读官网文档很重要,我刚开始并不理解,走了歪路 SyncVars(同步变量&a…

ssm+vue的论文管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的论文管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍: 采用M&am…

使用promise创建一个同步事件驱动api

使用promise创建一个同步事件驱动api 事件驱动体系结构(EDA)是一种强大的方法,可以在网络上构建松散耦合、性能好、可伸缩的应用程序。它支持非常多功能,如推送通知、协作编辑和多人操作,以及其他实时交互。 但有时模型与我们开发人员需要的…

工业镜头接口类型

现有产品主要有以下接口 1、C:最常见的工业相机接口,受限于接口物理尺寸大小,最大靶面目前是4/3” 2、M42:M421.0,2k和4k线阵相机使用 3、M58S:M580.75,大靶面相机使用,可以转C(限于CH080相机,靶面4/3”),可以转F,可以…

Selenium关于内容信息的获取读取

在进行自然语言处理、文本分类聚类、推荐系统、舆情分析等研究中,通常需要使用新浪微博的数据作为语料,这篇文章主要介绍如果使用Python和Selenium爬取自定义新浪微博语料。因为网上完整的语料比较少,而使用Selenium方法有点简单、速度也比较慢,但方法可行,同时能够输入验…

中国第二批,11个大模型备案获批

加上首批的 10 余个大模型,目前已有超过 20 个大模型获得审批。 据钛媒体独家报道,国内第二批通过备案的AI大模型包括11家公司,部分已面向全社会开放服务。加上首批的10余个大模型,目前已有超过20个大模型获得备案。 新一批备案…

Python数据容器(列表)

目录 一.什么是数据容器二.数据容器:列表1.列表的定义2.列表的下标索引3.列表的常用操作4.总结5.练习 三.列表的遍历1.列表的遍历2.while循环和for循环的对比3.练习 一.什么是数据容器 1.什么是数据容器 一种可以存储多个元素的Python数据类型 2.Python有哪些数…

c语言总是有小问题,是练的少吗?

c语言总是有小问题,是练的少吗? 题主说我做c语言的题目时候,是有思路的并且可以按照想法写下来,大体上看没有问题,但是到运行的时候总是不过关。就需要很长的时间找出那个细微的错误,这种细微的错误怎么才能…

“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”

目录 引言 分类标准 示例:癌症检测 1. 精确率(Precision) 2. 召回率(Recall) 3. 准确率(Accuracy) 4. F1-score 5. mAP(均值平均精度) 总结与通俗解释 引言 机器…

自动驾驶算法(九):多项式轨迹与Minimun Snap原理与Matab代码详解

目录 1 为什么需要轨迹优化 2 代码解析 3 完整代码 1 为什么需要轨迹优化 我们利用前八篇所学的博客可以利用RRT、A*、遗传算法等设计出一条折线轨迹,轨迹优化就是在路径优化的基础上将折线优化成曲线,这样更加有利于无人机的飞行。 那么什么是多项式轨…

史上第一款AOSP开发的IDE (支持Java/Kotlin/C++/Jni/Native/Shell/Python)

ASFP Study 史上第一款AOSP开发的IDE (支持Java/Kotlin/C/Jni/Native/Shell/Python) 类似于Android Studio,可用于开发Android系统源码。 Android studio for platform,简称asfp(爱上富婆)。 背景&下载&使用 背景 由…

8.4 矢量图层点要素分类(Categorized)渲染使用

文章目录 前言分类(Categorized)渲染QGis代码实现 总结 前言 前面几章介绍了矢量-点要素-单一符号的各种用法所谓单一符号是指点要素的符号在图层显示时只有一种形式下面介绍的分类(Categorized)渲染说明:文章中的示例…

【Python爬虫库】pytube使用方法

一、pytube库简介 pytube库是一个python第三方库,用于youtube视频的抓取和其他相关操作。官方文档:pytube 二、基本操作 1、显示视频标题 from pytube import YouTube yt YouTube(https://youtube.com/watch?vIAJsZWhj6GI) print(yt.title)说明&am…

自建网盘平台搭建(源码+教程)

为什么要自己搭建网盘,现在许多大厂的网盘,文件都添加了许多限制,有好多文件会遭到和谐,而且大部分网盘也都会限速,不开通VIP是很难用的!这是一套可以运营的网盘,代码无加密可以进行二次开发。下…

dos命令bat结合任务计划程序自动执行py文件

效果 bat文件 run.bat @echo off call C:\ProgramData\Anaconda3\Scripts\activate.bat pytorch C:\ProgramData\Anaconda3\envs\pytorch\python.exe E:\Gerapy_py\gerapy\projects\xmtv\xmtv\start_urls.py下面这个bat文件可以用来判断py文件是否执行成功 @echo off call C…

【Java】Netty创建网络服务端客户端(TCP/UDP)

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Netty创建网络服务端客户端示例。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更…

MySQL模糊查询/模式匹配(Pattern Match)

使用SQL查询数据时,时常会遇到这种情况,我们并不需要精确的匹配,而是要查找具有某类特点的数据。这种场景我们就要用到模糊查询。MySQL中常用的模糊查询方法有2种: like语句模糊查询regexp正则表达式模式匹配 目录 一、使用like模…