GraphLearn on PAI|学习笔记

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 快速学习 GraphLearn on PAI。

开发者学堂课程【PAL 平台学习路线:机器学习入门到应用:GraphLearn on PAI】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/855/detail/14122


GraphLearn on PAI


内容介

一、背景介绍

二、图与深度学习一体化

三、GNN 框架设计理念

四、GraphLearn:可扩展的工业级 GNN 框架

 

一、背景介绍

经过几年的成熟与发展深度学习技术被赋予了更多期待神经网络是一颗明珠它的发展过程中,除了算法的创新框架的支持也不可或缺回顾深度学习的发展

一个爆发点来自于机器视觉,image night 的比赛引发深度学习的热潮,CV 算法的识别能力一度超过了人类,在此之后我能见到了成熟的 CV 产品落地如人脸识别CV 的发展由仅有研究转入到应用

个爆发点来自于 NLP,随着 TransformerBert,GTP 系列模型的不断迭代,机器翻译阅读理解等问题的精度屡屡被刷新,相比前两者图与深度学习的结合是后起之秀近几年在各大 AI 顶会受到追捧图像自然语言图相比前两者更偏客观因为图像的组成原理不变人类的语言构成不变那么对于 CV 和 NLP 研究是可以期待有一个上而图的构成则偏主观因为我们可以把任何有关系的事物抽象成图比如在电商网站的购买行为是一种图好友关系是一种图基因的碱基序列也是一种图这种抽象是没有上限这赋予了我们关于图研究在当下时间之外的更多的想象。

image.png

 

二、图与深度学习一体化

图数据蕴含着巨大的商业价值科学价值我们对于图的认识是从学习图本身开始的比如在途中找到两个景点之间的最短联通路径商业中的我们更倾向于把图纳入到一个场景本身作为解决方案的一部分比如在电商网站我们把用户的购物行为图作为精准推荐算法的一部分,我们对于图的使用学徒变成的用途,用途的难点在于图是不规则的,我们很难在不规则的数据上开展高计算更难把他与以深度学习算法为基础的面向场景的任务结合起来,Embedding 技术是一个重大突破使得我们能够把离散的不规则的特征稠密化连续化这也为图与深度学习的结合提供的桥梁近年来图神经网络算法的发展应用是图与深度学习结合价值的最好证明,当然如前所述这里还有很大的空间有待探索图神经网络算法的快速发展让当下主流的深度学习框架稍显不足,尤其是在面向工业界的复杂场景的时候,这也在某种程度上限制了图神经网络的推广。我们相信图的重要性以及与深度学习结合所带来的价值

 

三、GNN 框架设计理念

把图纳入的深度学习的范畴是一个自然趋势需要在框架上提供支持,设计一款图神经网络框架我们要考虑以下几个出发点

每个有价值的事物必然要经过时间的检验才能被证明有价值或保持长久的生命力图神经网络也不例外所以我们设计框架首先要面向和支持工业生产,工业场景所要求的效率稳定性比较严格,所要处理的图数据也更为复杂这是框架难度所在大数据和深度学习推动了工业发展,也让开源社区达到了前所未有的繁荣

开源技术是人类史上的文明让我们都从中受益遍观当下没有哪个 AI 技术可以脱离开源生态而独立存在因此图神经网络框架也不例外也需要拥抱开源,图神经网络处于发展阶段算法迭代非常快落地应用也百花齐放,作为框架要跟得上节奏甚至提前做出论坛在不断变化的需求中便于扩展

 

四、GraphLearn:可扩展的工业级 GNN 框架

GraphLearn 是一个我们自研的面向开发者的图神经网络框架框架根植于阿里巴巴集团的业务。经过沉淀和孵化充分考虑了数据应用生态等方面的问题,目前,GraphLearn已经作为云产品的一部分可以通过阿里云官网集体学习平台PAI试用,此外框架的代码也已经开源可以一键安装我们发布好的 package,也可以根据自己的开发环境从源码编译安装或者做二次开发,下面来从宏观上介绍一下 GraphLearn 的几个特点让大家对 GraphLearn 能做什么有一个直观认识。

1.工业级图数据支持

概括来说工业级图数据的第1个特点是规模大千亿级边,百亿极点的图是常规需求单个图的存储需要耗费TB级的内存2个特点是异构化程度高,实际中的图往往不是理想的一种点ID和一种边而是点边异构化,其类型多几种甚至是几十种3个特点是点边并非只有一个单独的 ID,同时也存在着多样化的属性信息这些属性不规则类型也多种多样,对于如上所述的GraphLearn 可以做到在几分钟内完成从文件系统的原始数据到内存索引构建,并通过提供简单易用的 API 简化复杂数据的处理

2. 统一的编程范式

image.png

数据的复杂性也直接影响了上层算法编程范式,面对如此规模的图数据采样是必要过程采样把大图变成小图定做必要的数据对齐,满足深度学习别带训练的需要,不同的采样算法直接影响了上层计算的输入,GraphLearn内置了多种采样并支持扩展,此外 GraphLearn 也内置了采样模块作为对监督训练的支持,采样之后是向量化因为原始数据是 ID 和属性等离散的需要经过向量化和稠密化才可以接受到上神经网络的计算,接下来是我们熟悉的邻近的聚合自身信息的整合这里所说的每个阶段在 GraphLearn 中都有对应的接口支持以简化开发过程

3.可扩展的计算模式

为了可扩展,GraphLearn 抽象了每个算子的计算模式包括 MAP,PROCESS,REDUCE 三个阶段

 image.png

该范式可以覆盖关于图的大多数计算的需求以采样为例,当 Server 收到 EPID 的采样请求时MAP 接段根据图划分策略把 DI 分发数据所对应的 Server 面,因为图是分布式存储的,PROCESS 阶段在每个 Server 上本地执行采样计算,数据计算 KOlocket,尽可能避免数据迁移所带来的开销,REDUCE 阶段则把各个 Server 的结果汇聚起来如果需要扩展一种新的算法只需实现上述三个函数即可

4.支持面向业务定制化

为了便于应用,GraphLearn 支持面向业务的定制化中的每个场景都有一个具体的深度学习模型来支撑这些模型与业务是紧密结合的,最底层数据输入再经过必要的算子 Graph Embedding 算法铲除图的向量化表示。然后在对接原有的业务模型整个模型构成了一个端到端的大模型训练过程中的信息也可以反向传播到大模型中的每一层已有公开成果显示端到端训练往往会有更好的收益而且在效率上也避免了中间结果落地的开销

image.png

5.可与 PAI 云产品集成

目前 GraphLearn 已在阿里云学习平台PAI上发布兼容 DLC,DSW,STUDIO,EASPAI云产品并打通了Max compute,NAS,OSS 等生态数据的之间的连接,我们可以在 PAI 平台上利用 GraphLearn 和 tens Flow开发一个图神经网络算法,也可以直接调用我们发好的算法组件如 Graphsage。

6.兼容开源生态

PAI 后台的支援调度与安全隔离深度优化的软件站内核开发和生产提供了很好的保障此外 GraphLearn也已经开放到了开源社区,并且与社区内的主流深度学习生态兼容GraphLearn 比较轻量级方便安装部署支持护单机和分布式不同模式只需简单配置即可,我们可以基于 GraphLearn 结合 TensorFlow  PyTorch 开发自己的图神经网络算法和应用。也可以在探索阶段结合 Python 和 Numpy 进行高效率的调试。

7.已落地的应用举例

在阿里集团内部 GraphLearn 已经在多个场景落地,几个有代表性的场景如淘宝的搜索推荐利用商品店铺用户之间的关系来提升推荐和搜索算法的效率;网络安全如网上刷单往往具有明显的团伙效应GNN 可以有效的打击汇察,知识图谱高质量图谱关系的构建需要花费大量的人力可以用 GNN 作为辅助来降低这个人力成本构建好的图谱还可以进一步被 GNN 挖掘应用其他的业务和场景

8.GL 的未来规划

几个方面推进 GNN 及其生态的建设

首先是算法于业务GNN 的价值一定应用算法和框架共同去证明,业务和算法是风向标GNN 的生命力要通过落地的场景才能保持实践会带来算法创新。

另一方面是图数据和编程框架,业务和算法的变化无论是规模上还是图的组织方式上必然带来不一样的数据以及连接算法与数据之间的编程框架,软件优化也主要体现在这一,最后是新型硬件,框架是合理的利用算力但并不能创造算,极致的性能最终源于硬件的支持深度学习已经引发了好几轮 GPU 的变革,但 GPU 纯粹用于这种不规则的计算并不经济我们也在探索适合 GNN 新型硬件

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
Python机器学习和图像处理学习笔记
Python机器学习和图像处理学习笔记
|
10月前
|
机器学习/深度学习 算法 搜索推荐
【吴恩达机器学习笔记】十五、大规模机器学习
【吴恩达机器学习笔记】十五、大规模机器学习
61 0
|
10月前
|
机器学习/深度学习 算法
【吴恩达机器学习笔记】九、机器学习系统的设计
【吴恩达机器学习笔记】九、机器学习系统的设计
67 0
|
10月前
|
机器学习/深度学习 算法
【吴恩达机器学习笔记】八、应用机器学习的建议
【吴恩达机器学习笔记】八、应用机器学习的建议
76 0
|
10月前
|
机器学习/深度学习 算法 前端开发
学习笔记: 机器学习经典算法-集成学习策略
机器学习经典算法-个人笔记和学习心得分享
121 0
|
10月前
|
机器学习/深度学习 算法 Python
学习笔记: 机器学习经典算法-决策树(Decision Tress)
机器学习经典算法-个人笔记和学习心得分享
138 0
|
10月前
|
机器学习/深度学习 资源调度 算法
学习笔记: 机器学习经典算法-核SVM(KernelSVM)
机器学习经典算法-个人笔记和学习心得分享
83 0
|
10月前
|
机器学习/深度学习 资源调度 算法
学习笔记: 机器学习经典算法-线性SVM(LinearSVM)
机器学习经典算法-个人笔记和学习心得分享
91 0
|
10月前
|
机器学习/深度学习 算法
学习笔记: 机器学习经典算法-空间内一点到超平面的距离推广公式
机器学习经典算法-个人笔记和学习心得分享
91 0
|
10月前
|
机器学习/深度学习 算法 数据可视化
学习笔记: 机器学习经典算法-分类算法模型的评价指标
机器学习经典算法-个人笔记和学习心得分享
94 0