u013250861
这个作者很懒,什么都没留下…
展开
-
GNN-第三方库:PyTorch Geometric Temporal【PyG的一个时间图神经网络扩展库】
PyTorchGeometricTemporal是PyTorchGeometric(PyG)的一个时间图神经网络扩展库。它建立在开源深度学习和图形处理库之上。PyTorchGeometricTemporal由最先进的深度学习和参数学习方法组成,用于处理时空信号。PyTorchGeometricTemporal是第一个用于几何结构的时间深度学习的开源库,并在动态和静态图上提供常量时差图神经网络。我们使用离散时间图快照(discretetimegraphsnapshots)来实现这一点。...原创 2021-10-31 22:38:04 · 1751 阅读 · 1 评论 -
GNN-第三方库(工具包):networkx【处理图的工具包】
图-第三方库(工具包):networkx【处理图的工具包】原创 2021-11-02 23:15:00 · 1025 阅读 · 0 评论 -
GNN-第三方库:PyG(Pytorch Geometric)【基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型】【DeepWalk、LINE、GCN、GAT等】
其主要分为四大模块Models、Opeartors、Storage和Engine。PyGGithubPyG官方文档PyG教程(1)初识PytorchGeometrictorch_geometric安装笔记https。原创 2022-07-22 21:46:43 · 1086 阅读 · 0 评论 -
GNN-第三方库:DGL【图神经网络框架,支持对异构图的处理,开源相关异构图神经网络的代码,在GCMC、RGCN等业内知名的模型实现上也取得了很好的效果】
DGL库的逻辑层使用了顶点域的处理方式,使代码更容易理解。同时,又在底层的内存和运行效率方面做了大量的工作,使得框架可以发挥出更好的性能。原创 2021-10-31 22:36:52 · 1113 阅读 · 1 评论 -
随机游走算法(Random Walk)
参考资料:介绍一个全局最优化的方法:随机游走算法(Random Walk)原创 2021-10-30 22:00:11 · 2662 阅读 · 0 评论 -
GNN-频域-2016:ChebNet【频谱图卷积】【切比雪夫多项式(ChebShev Polynomial)】【应用切比雪夫多项式加速特征矩阵求解】【GCN来源于对ChebNet的进一步简化与近似】
其实之前我们也举了一些例子,比如最朴素的方法,例如图上所有结点的表示取个均值,即可得到图的表示。那有没有更好的方法呢,它们各自的优点和缺点又是什么呢,本篇主要对上面这两个问题做一点探讨。篇幅不多,理论也不艰深,请读者放心地看。前面两篇博客分别介绍了基于循环的图神经网络和基于卷积的图神经网络,那么在本篇中,我们则主要关注在。基本的频域卷积网络要计算拉普拉斯矩阵所有的特征值和特征向量,计算量巨大。切比雪夫多项式是以递归方式定义的一系列正交多项式序列。的作用是让特征向量矩阵归一化到。假设切比雪夫多项式的第。原创 2021-10-31 22:37:26 · 1450 阅读 · 1 评论 -
GNN-频域-2014:Spectral Networks and Locally Connected Networks on Graphs(频谱图卷积神经网络)【第一篇从频域角度分析】
空域卷积非常直观地借鉴了图像里的卷积操作,但缺乏一定的理论基础。而频域卷积则不同,相比于空域卷积而言,它主要利用的是**图傅里叶变换(Graph Fourier Transform)**实现卷积。简单来讲,它利用图的**拉普拉斯矩阵(Laplacian matrix)**导出其频域上的的拉普拉斯算子,再类比频域上的欧式空间中的卷积,导出图卷积的公式。虽然公式的形式与空域卷积非常相似,但频域卷积的推导过程却有些艰深晦涩。接下来我们将攻克这部分看起来很难的数学公式,主要涉及到。原创 2021-10-31 22:39:23 · 1148 阅读 · 0 评论 -
GNN-图卷积模型-2017:MPNN(消息传递神经网络)【消息传递(前向传播):聚合函数(消息传递)+更新函数(状态更新)】【图卷积模型统一框架】
从设计理念上看,空域卷积与深度学习中的卷积的应用方式类似,其核心在于聚合邻居结点的信息。比如说,一种最简单的无参卷积方式可以是:将所有直连邻居结点的隐藏状态加和,来更新当前结点的隐藏状态。这里非参式的卷积只是为了举一个简单易懂的例子,实际上图卷积在建模时需要的都是带参数、可学习的卷积核。消息传递网络(MPNN)是由Google科学家提出的一种模型。严格意义上讲,MPNN不是一种具体的模型,而是一种空域卷积的形式化框架。消息传递与状态更新操作,分别由Ml⋅Ml⋅和Ul⋅Ul。原创 2021-08-15 10:47:16 · 1523 阅读 · 1 评论 -
GNN-图卷积模型-直推式&归纳式-2017:GAT【消息传递(前向传播):聚合函数+更新函数】【聚合函数:attention(邻域所有节点根据注意力机制进行加权)】【训练更新函数的参数】【同质图】
图神经网络(GNN):GAT【Attention机制】原创 2021-08-15 10:46:44 · 5015 阅读 · 1 评论 -
GNN-图卷积模型-归纳式-2017:GraphSAGE【消息传递(前向传播):聚合+更新】【聚合函数:lstm/pool】【训练更新函数参数】【不全图卷积,每次采样一批节点来卷积训练】【同质图】
图神经网络(GNN):GraphSAGE【归纳式学习框架】原创 2021-08-15 10:48:29 · 923 阅读 · 1 评论 -
GNN-图卷积模型-2016:PATCHY-SAN【图结构序列化:将图结构转换成了序列结构,然后直接利用卷积神经网络在转化成的序列结构上做卷积】
我们之前曾提到卷积神经网络不能应用在图结构上是因为图是非欧式空间,所以大部分算法都沿着找到适用于图的卷积核这个思路来走。而 PATCHY-SAN 算法 《Learning Convolutional Neural Networks for Graphs》 另辟蹊径,它将图结构转换成了序列结构,然后直接利用卷积神经网络在转化成的序列结构上做卷积。由于 PATCHY-SAN在其论文中主要用于图的分类任务,我们下面的计算过程也主要针对图分类问题(例如,判断某个社群的职业)。那么,图结构转换成序列结构最主要的原创 2021-11-16 20:10:57 · 956 阅读 · 1 评论 -
GNN-图卷积模型-直推式-2016:GCN【消息传递(前向传播):聚合函数+更新函数】【聚合函数:mean(邻域所有节点取平均值)】【训练更新函数的参数】【空域+频域】【同质图】
图神经网络(GNN):GCN【开山之作】原创 2021-08-15 10:45:55 · 1725 阅读 · 0 评论 -
GNN-静态表征-相似度(一阶&二阶)-2016:SDNE【2个模型:一阶相似度(有监督) + 二阶相似度(无监督)-->两模型联合训练】【临接矩阵->自编码器->节点的向量表示】【同质图】
自然语言处理-GNN:SDNE【多层自编码器】原创 2021-08-15 10:41:07 · 615 阅读 · 1 评论 -
GNN-静态表征-相似度(一阶&二阶)-2015:LINE【2个模型:一阶相似度 + 二阶相似度->模型结果的直接拼接】【不基于“随机游走”和“Word2vec”】【别名采样法】【浅层模型、同质图】
自然语言处理-GNN:LINE【1阶+2阶相似度】原创 2021-08-15 10:40:34 · 1219 阅读 · 1 评论 -
GNN-静态表征-随机游走-2017:Metapath2vec【 步骤:①基于预定义“元路径”的有偏随机游走生成每个节点的训练序列,得到训练数据集;②套用Word2vec算法得到节点表示】【异质图】
自然语言处理-GNN:Metapath2vec【异构图网络】原创 2021-08-15 10:41:38 · 1216 阅读 · 1 评论 -
GNN-静态表征-随机游走-2016:Node2vec【 步骤:①有偏随机游走策略生成每个节点的训练序列(DFS&BFS),得到训练数据集;②套用Word2vec算法得到节点表示】【浅层模型、同质图】
自然语言处理-GNN:Node2vec【平衡同质性和结构性】原创 2021-08-15 10:40:01 · 661 阅读 · 1 评论 -
GNN-静态表征-随机游走-2014:DeepWalk【步骤:①随机游走策略生成每个节点的训练序列(DFS),得到训练数据集;②套用Word2vec算法得到节点表示】【捕获二阶相似度】【浅层、同质图】
图神经网络(GNN)-2014:DeepWalk: online learning of social representations原创 2021-10-30 21:04:39 · 447 阅读 · 1 评论 -
GNN-节点向量(Node Embedding)的表征学习-发展:随机游走/一阶&二阶相似度(静态表征)【直接学习出各个节点的向量表示】 -->图卷积(动态表征)【学习节点间聚合函数的参数】
2017:A Survey on Network Embedding原创 2021-10-30 21:16:25 · 554 阅读 · 1 评论 -
GNN:图结构的表示方法【邻接矩阵:每行数据表示一个节点与图中其他各个节点的相邻情况的ont-hot编码拼接上该节点的属性one-hot编码(二维数组结构)(稀疏,高维)】【邻接表(链表结构)】
微博、微信、LinkedIn 这些社交软件我想你肯定都玩过吧。在微博中,两个人可以互相关注;在微信中,两个人可以互加好友。那你知道,如何存储微博、微信等这些社交网络的好友关系吗?这就要用到我们今天要讲的这种数据结构:图。实际上,涉及图的算法有很多,也非常复杂,比如图的搜索、最短路径、最小生成树、二分图等等。我们今天聚焦在图存储这一方面,后面会分好几节来依次讲解图相关的算法。一、概述我们前面讲过了树这种非线性表数据结构,今天我们要讲另一种非线性表数据结构,图(Graph)。和树比起来,这是一种更加复杂的原创 2021-12-31 19:21:17 · 738 阅读 · 1 评论 -
GCN:分布式训练大规模深度图神经网络
的发展将图数据的分析与深度神经网络结合,在越来越多的领域发挥出重要的作用,例如电商推荐、生物化学结构分析、反恐反诈风险控制等等。数据规模也呈现越来越大之势,动辄上千万节点规模的图,让很多图神经网络的训练需要探寻并行计算的方式以加速。然而,图数据与视觉、自然语言等领域的数据不同,没有划分好的训练样本,很多情况下训练样本是从一个巨大的图中去随机采样,特征也需要在采样的过程中遍历邻接节点,这种天然特性使得对大规模图的并行训练并不容易。本期文章将为大家详细描述。幻方AI最近尝试对图神经网络的并行训练进行优化,以。原创 2022-12-08 19:03:32 · 986 阅读 · 0 评论 -
图神经网络(GNN):同质图模型【GCN/GraphSAGE/GAT...】、异质图模型【HAN/HetGNN...】
目前的图神经网络主要针对同质图(节点类型和边类型单一)设计.- 同质图中只有一种类型的节点和边(例如,只有朋友关系的社交网络),网络结构较为简单.因此,同质图神经网络通常只需要聚合单一类型的邻居来更新节点的表示即可(例如,通过在朋友关系下的邻居来更新节点表示). - 但真实世界中的图大部分都可以被自然地建模为异质图(多种类型的节点和边,如下图所示,IMDB数据中包含三种类型的节点Actor、Movie和Director,两种类型的边Actor-Moive和Movie-Director). 多种类型的节点原创 2020-12-18 23:13:16 · 3231 阅读 · 1 评论 -
图神经网络(GNN):综述【从图(Graph)到图卷积(Graph Convolution)】【各种图神经网络模型的目的就是学习到图中各个节点的Embedding表示】
本文试图沿着图神经网络的历史脉络,从最早基于不动点理论的**图神经网络**(Graph Neural Network, GNN)一步步讲到当前用得最火的**图卷积神经网络**(Graph Convolutional Neural Network, GCN)。本文的提纲与叙述要点主要参考了3篇图神经网络的Survey,分别是来自:- IEEE Fellow的 [Comprehensive Survey on Graph Neural Networks](https://arxiv.org/abs/190原创 2021-09-28 23:37:59 · 2174 阅读 · 1 评论 -
GNN:直推式学习(Transductive)【领域自适应:给定训练的数据包含了目标域数据】、归纳学习(Inductive)【元学习:从诸多给定的任务和数据中学习通用的模式,迁移到未知的任务和数据上】
简单来说,transductive和inductive的区别在于我们想要预测的样本,是不是我们在训练的时候已经见(用)过的。所谓直推式学习(GCN等),就是训练期间可以看得到没有标注的节点(训练需要整个图里面所有的节点参与),那么。我们常用的机器学习模式,就是这样的:根据已有数据,学习分类器,然后应用于新的数据或任务。所谓归纳式学习,在训练期间,看不到没有标注的节点常见的有GraphSAGE等。,指的是由当前学习的知识直接推广到给定的数据上。的情况下,结合已有的训练数据,看能不能推广到测试数据上。原创 2023-03-07 17:11:08 · 687 阅读 · 0 评论 -
GNN-第三方库:PBG(PyTorch-BigGraph)【Facebook】
最近,Facebook 开源了自己的图神经网络库 PyTorch-BigGraph(简称 PBG),有了它,再大的图都能快速生成图嵌入,并且完全不需要 GPU,对拥有数十亿节点的大规模图嵌入、电子商务中的推荐系统、社交媒体中的链接预测等任务都提供了极大的便利。研究人员在最近的 SysML 会议上发表了一篇关于 PBG 的论文,文中公开可用的社交图数据集实验结果表明“PBG 优于竞争方法”。本文是 AI 前线第 75 篇论文导读,我们将深入了解 PBG 背后的系统架构细节、原理和大型图上的实验效果。原创 2023-03-07 17:40:56 · 242 阅读 · 0 评论 -
Megatron-LM训练GPT2模型
又换了22.10,没有段错误但是,缺少te.pytorch.DotProductAttention!之前一直以为是识别不到megatron里的tokenizer,或者是pip tokenizer的包,弄了好久,结果是根本就是缺少了一个tokenizer.py。将huggingface转换为megatron可用,但是这个卡跑不下7B的,砍了参数,就不适配这个转换好的 了。在这里安装apex成功了,但是模型训练使用的时候又报错了!下载镜像 ,选好版本(别用太高,不适配,多踩了很多坑),有apex的就行。原创 2024-01-15 21:31:46 · 192 阅读 · 0 评论 -
如何使用 Megatron-LM 训练语言模型
在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的集成到训练代码中。🤗还支持使用API 来训练,其在 PyTorch 中提供功能完整的训练接口,甚至不需要自己编写训练的代码。是研究人员用于预训练大型 Transformer 模型的另一个流行工具,它是 NVIDIA 应用深度学习研究团队开发的一个强大框架。与accelerate和。原创 2024-01-05 00:25:16 · 1071 阅读 · 0 评论 -
Megatron-LM:简单读读TransformerEngine(transformer_engine)
得益于PyTorch灵活的外部扩展形式,只要不去触碰框架底层运行机制,仅仅在算子层面上的修改还是相当简单。这其实就是PyTorch的一个拓展,为了利用FP8的特性,针对Transformer里面的Kernel进行了重写,包含了一系列LayerNorm, GeLU, ScaledSoftmax等。具体到每一个算子实现动态范围调整的原理其实很简单,通过记录历史的abs max值,来去调整最终缩放的范围。在FP16下,其数据范围还是足够大的,因此在AMP下,原创 2024-01-06 01:37:36 · 1345 阅读 · 1 评论 -
TransformerEngine代码走读
在几个月前nv就发表过关于fp8数制训练和推理的白皮书,大概三四个月前公开了他们针对transformer模型的fp8训练的软件库TransformerEngine,由于最近在关注fp8训练,因此想了解一下他们的实现方案,但是由于没有H100的卡,目前还不能跑通te的代码,很多细节没办法验证,只能通过源码的阅读来观察它插入了什么功能实现fp8量化训练,特此记录一下。从这些层面来说,te的代码阅读难度还好,大部分工作是基于pytorch的一些数据结构,涉及底层的代码也不算多。原创 2024-01-07 21:19:15 · 1380 阅读 · 0 评论 -
Transformer Engine安装
1.确认您已经安装了 OpenCV 库。可以通过在命令行中输入。来检查您是否已经安装了该库。如果您还没有安装它,可以使用。原创 2024-01-07 21:37:48 · 1915 阅读 · 0 评论 -
Megatron-LM运行错误
其中新添加的True赋值给。原创 2024-01-08 01:51:55 · 416 阅读 · 0 评论 -
VSCode:deepspeed调试【.vscode/launch.json配置】
实现 run.sh的功能的同时,可以进行调试。原创 2023-12-30 14:15:34 · 648 阅读 · 0 评论 -
利用Tensor Core优化GPU性能的几个小窍门
拆分到最接近的分块(块量化)发生在输出矩阵大小无法被分块大小整除的时候,使用像其他前面的那些块一样,执行同样的计算量,来执行处理最边沿行列的线程块,但运算结果中只有一部分是有用的。图4演示了一个这样的tile的过程。图4,对于大小分别为M * K和K * N的两个矩阵相乘,是分别在前者中取大小为Mtile * Ktile,后者中取大小为Ktile * Ntile的不同滑块,(进行局部乘加)得到C中大小为Mtile * Ntile的滑块,然后两个矩阵分别在各自的横向和纵向进行滑动,完成得到整体C的计算。原创 2023-12-30 14:58:56 · 1132 阅读 · 0 评论 -
LLM-预训练-Megatron-LM-学习笔记-02:深入理解 Megatron-LM(2)原理介绍
本篇文章对张量模型并行、流水线模型并行的原理进行简单介绍。原创 2023-11-26 01:12:42 · 7293 阅读 · 0 评论 -
图解大模型训练之:Megatron源码解读2,模型并行
前文说过,用Megatron做分布式训练的开源大模型有很多,我们选用的是THUDM开源的CodeGeeX(代码生成式大模型,类比于openAI Codex)。选用它的原因是“完全开源”与“清晰的模型架构和预训练配置图”,能帮助我们高效阅读源码。我们再来回顾下这两张图。模型架构预训练配置由图可知,CodeGeeX在预训练中采用的是8头TP(同一个node内的8张卡做TP,8张卡组成一个完整的模型),192头DP(192个node间做DP),一共1536块GPU进行训练。原创 2023-11-12 20:15:17 · 250 阅读 · 0 评论 -
图解大模型系列之:Megatron源码解读1,分布式环境初始化
在阅读前,建议大家先掌握各种并行方式的理论知识。在阅读后,建议大家亲自阅读相关部分的源码细节,并阅读参考部分中推荐的tutorial。原创 2023-11-12 20:10:46 · 157 阅读 · 0 评论 -
NotImplementedError: Loading a dataset cached in a LocalFileSystem is not supported
这个错误源于fsspec中的一个重大变化。它已经在最新的datasets发布版(2.14.6)中修复。使用pip install -U datasets更新安装应该可以解决这个问题。原创 2023-11-08 23:31:40 · 5259 阅读 · 3 评论 -
大语言模型训练技巧
优化器存储一个float32的模型副本,则会消耗4X的显存,同时存储两个状态参数,分别消耗4X和4X的显存,则总共需要16X的显存。可以用来衡量算法/模型的复杂度。已知Transformer encoder的参数为:embedding(E),sequence(s),attention head(ah),vocabulary(v),hidden size(h),layer(n)因此,任意给定的GPU都会有两部分的通信,一个是与包含所有相同层的GPU(数据并行),另一个与不同层的GPU(流水线并行)。原创 2023-11-03 23:43:39 · 178 阅读 · 0 评论 -
GNN:“图卷积模型”通用框架【每一层网络都基于邻域节点(1-hop)更新当前节点的向量表示(一般用2~3层)】【消息传递:①从邻域节点汇聚信息;②更新当前节点状态】【各模型区别:聚合函数类型的选取】
在开始正式介绍图卷积之前,我们先花一点篇幅探讨一个问题:为什么研究者们要设计图卷积操作,传统的卷积不能直接用在图上吗? 要理解这个问题,我们首先要理解能够应用传统卷积的**图像(欧式空间)与图(非欧空间)**的区别。如果把图像中的每个像素点视作一个结点,如下图左侧所示,一张图片就可以看作一个非常稠密的图;下图右侧则是一个普通的图。阴影部分代表卷积核,左侧是一个传统的卷积核,右侧则是一个图卷积核。卷积代表的含义我们会在后文详细叙述,这里读者可以将其理解为在局部范围内的特征抽取方法。仔细观察两个图的结构,我们可原创 2021-10-30 21:07:40 · 1256 阅读 · 1 评论 -
GNN-图卷积模型-2015:GGNN【消息传递(前向传播):聚合函数+更新函数】【更新函数:GRU】【训练更新函数的参数】
图神经网络(GNN):GGNN【门控图神经网络】原创 2021-08-15 10:47:57 · 2057 阅读 · 0 评论