写点什么

Amazon SageMaker 现已推出:Deep Graph Library

  • 2019-12-11
  • 本文字数:2348 字

    阅读完需:约 8 分钟

Amazon SageMaker 现已推出:Deep Graph Library

今天,我们很高兴地宣布,为简化图神经网络的实现而构建的开源库 Deep Graph Library 现已在 Amazon SageMaker 上推出。


近年来,由于具有从复杂数据(例如自由文本、图像或视频)中提取复杂模式的强大能力,深度学习席卷了整个世界。但是,许多数据集不属于这些类别,使用图形更容易表达。 我们的直觉告诉我们,像卷积神经网络或递归神经网络这样的传统神经网络架构不适用于此类数据集,因此需要一种新的方法。


图神经网络初级读本


图神经网络 (GNN) 是当今机器学习领域最蓬勃发展的方向之一,这些参考文献将带您入门。


GNN 用于在数据集上训练预测模型,例如:


  • 社交网络数据集,其中的图形显示熟人之间的联系;

  • 推荐系统数据集,其中的图形显示顾客与物品之间的互动;

  • 化学分析数据集,其中化合物被建模为由原子和化学键组成的图形;

  • 网络安全数据集,其中的图形描述了源 IP 地址和目标 IP 地址之间的连接;

  • 等等!


在大多数情况下,这些数据集非常庞大,并且只有部分标记。以一个欺诈检测场景为例,在该场景中,我们将尝试通过分析某人与已知欺诈者的联系,来预测其为欺诈行为者的可能性。这个问题可以定义为半监督学习任务,其中只有一小部分图节点将被标记(“欺诈者”或“合法者”)。与尝试构建一个大型的手工标记数据集,并对其进行“线性化”以应用传统的机器学习算法相比,这应该是一个更好的解决方案。


解决这些问题需要特定领域的知识(零售、金融、化学等)、计算机科学知识(Python、深度学习、开源工具)和基础设施知识(培训、部署和扩展模型)。很少人能够掌握所有这些技能,这就是我们需要诸如 Deep Graph Library Amazon SageMaker 之类的工具的原因。


Deep Graph Library 简介


Deep Graph Library (DGL) 于 2018 年 12 月首次在 Github 上发布,是一个 Python 开源库,可帮助研究人员和科学家利用其数据集快速构建、训练和评估 GNN。



DGL 建立在流行的深度学习框架之上,例如 PyTorch Apache MXNet。如果您熟悉其中之一,就会发现使用起来得心应手。无论您使用哪种框架,都可以通过这些对初学者友好的示例轻松入门。我还发现 GTC 2019 研讨会的幻灯片和代码非常有用。


一旦完成了玩具示例,就可以开始探索 DGL 中已实现的各种前沿模型了。例如,您可以通过运行以下命令,使用图卷积网路 (GCN) 和 CORA 数据集来训练文档分类模型:


$ python3 train.py --dataset cora --gpu 0 --self-loop


所有模型的代码均可供查看和调整。这些实现已经过 AWS 团队仔细验证,他们验证了性能声明并确保可以重现结果。


DGL 还包含图形数据集的集合,您可以轻松下载并用于试验。


当然,您可以在本地安装和运行 DGL,但是为了为您提供便利,我们将其添加到了 PyTorch 和 Apache MXNet 的深度学习容器中。这样就可以轻松地在 Amazon SageMaker 上使用 DGL,以在任意规模上训练和部署模型,而不必管理服务器。我将向您展示如何操作。


在 Amazon SageMaker 上使用 DGL


我们在 Github 存储库中为 SageMaker 示例添加了完整的示例:在其中一个示例中,我们使用 Tox21 数据集训练了一个用于分子毒性预测的简单 GNN。


我们尝试解决的问题是,计算出新化合物对 12 种不同靶标(生物细胞内的受体等)的潜在毒性。可以想象,这种分析在设计新药时至关重要,而且无需进行体外实验就能快速预测结果,这有助于研究人员将精力集中在最有希望的候选药物上。


数据集包含 8,000 多种化合物:每种化合物均建模为图形(原子是顶点,原子键是边),并标记 12 次(每个目标一个标记)。我们将使用 GNN 建立一个多标签的二元分类模型,使我们能够预测所考察分子的潜在毒性。


在训练脚本中,我们可以轻松地从 DGL 集合中下载所需数据集。


from dgl.data.chem import Tox21


dataset = Tox21()


Similarly, we can easily build a GNN classifier using the DGL model zoo.


from dgl import model_zoo


model = model_zoo.chem.GCNClassifier(


in_feats=args['n_input'],


gcn_hidden_feats=[args['n_hidden'] for _ in range(args['n_layers'])],


n_tasks=dataset.n_tasks,


classifier_hidden_feats=args['n_hidden']).to(args['device'])


其余代码大部分是原始的 PyTorch,如果您熟悉此库,则使用起来就应该能够驾轻就熟。


要在 Amazon SageMaker 上运行此代码,我们要做的就是使用 SageMaker 模拟器,并传递 DGL 容器的全名并将训练脚本的名称作为超参数。


estimator = sagemaker.estimator.Estimator(container,


role,


train_instance_count=1,


train_instance_type='ml.p3.2xlarge',


hyperparameters={'entrypoint': 'main.py'},


sagemaker_session=sess) code_location = sess.upload_data(CODE_PATH, bucket=bucket, key_prefix=custom_code_upload_location) estimator.fit({'training-code': code_location})


<output removed> epoch 23/100, batch 48/49, loss 0.4684


epoch 23/100, batch 49/49, loss 0.5389


epoch 23/100, training roc-auc 0.9451


EarlyStopping counter: 10 out of 10


epoch 23/100, validation roc-auc 0.8375, best validation roc-auc 0.8495


Best validation score 0.8495


Test score 0.8273


2019-11-21 14:11:03 Uploading - Uploading generated training model


2019-11-21 14:11:03 Completed - Training job completed


Training seconds: 209


Billable seconds: 209


现在,我们可以获取 S3 中经过训练的模型,并将其用于预测大量化合物的毒性,而无需进行实际实验。真是好用!


现已推出!


您现在就可以在 Amazon SageMaker 上使用 DGL。


请试一试,并通过 DGL 论坛Amazon SageMakerAWS 平台或您常用的 AWS Support 联系方式向我们发送反馈。


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/now-available-on-amazon-sagemaker-the-deep-graph-library/


2019-12-11 15:32815

评论

发布
暂无评论
发现更多内容

知识经济时代,企业该如何进行知识管理?

Baklib

效率工具 知识管理 企业 知识 知识经济

技术使用点-mixins的使用

默默的成长

前端 Vue 3 10月月更

数据产品经理那点事儿四

金松(李博源)

大数据 深度思考 高效工作 数据产品经理

工赋开发者社区 | 精益思想与数字化技术难融合?

工赋开发者社区

来了!2022 XDR网络安全运营新理念峰会即将开幕!

未来智安XDR SEC

网络安全

牛客刷题系列(完全数计算,扑克牌大小)

雪芙花

c c++ 10月月更

运维服务体系架构

阿泽🧸

10月月更 运维服务

谷歌?新手不推荐 选它就对了

江拥羡橙

前端 工具 浏览器 谷歌 10月月更

数据分析有 AI 帮你,Sugar BI 智能分析全场景介绍

Baidu AICLOUD

数据分析 可视化 BI

Go语言 if判断和for循环实战 goto使用的那些坑

王中阳Go

Go golang 学习方法 面试题 10月月更

C++11智能指针(auto_ptr,unique_ptr,shared_ptr,weak_ptr的详解与模拟实现)

雪芙花

c c++ 10月月更

团队实现知识管理,先从知识库做起!

Baklib

效率 效率工具 知识管理 团队 知识

你一定要看的:Go slice切片详解和实战

王中阳Go

Go golang 高效工作 学习方法 10月月更

工赋开发者社区 | 最小可行架构注意事项:必须考虑分布式处理和数据的位置

工赋开发者社区

工赋开发者社区 | Gartner发布2023年十大战略技术趋势

工赋开发者社区

工赋开发者社区 | 即使是程序员也会喜欢这8种无代码/低代码工具

工赋开发者社区

ERP外贸管理系统是什么?哪家好?如何选?

优秀

外贸管理 ERP系统 ERP外贸管理系统

C/C++的类型转换

雪芙花

c c++ 10月月更

打破汽车零部件企业供应链壁垒,数商云SCM供应链系统实现一体化采购协同

数商云

数字化转型 供应链 企业数字化

vivo 鲁班平台 RocketMQ 消息灰度方案

阿里巴巴云原生

阿里云 云原生 Apache RocketMQ

你会用Go语言的rune类型吗?

王中阳Go

Go golang 学习方法 数据处理 10月月更

Spring Boot「09」Property 高级特性

Samson

Java 学习笔记 Spirng spring-boot 10月月更

Pixel系列还能打,靠的是什么?

脑极体

人工智能

Vue组件入门(十)Attributes 继承

Augus

Vue 3 10月月更

超级app+轻应用带来的改变

Geek_99967b

小程序

一起学习 Go 语言设计模式之单例模式

宇宙之一粟

设计模式 单例模式 Go 语言 10月月更

ZooKeeper基本架构

穿过生命散发芬芳

zookeeper 10月月更

真·workshop,来自联通、移动、爱奇艺等14位资深专家与你面对面聊云原生硬核技术|2022云栖大会

OpenAnolis小助手

云原生 虚拟化 云栖大会 龙蜥社区 专场

【Java深入学习】一个关于“锁”的程序-上

Geek_65222d

10月月更

SAP | Local结构和Global结构

暮春零贰

SAP 结构 10月月更

2022-10-19:一个数组如果满足 : 升降升降升降... 或者 降升降升...都是满足的 给定一个数组, 1,看有几种方法能够剔除一个元素,达成上述的要求 2,数组天然符合要求返回0 3,剔

福大大架构师每日一题

算法 rust 福大大

Amazon SageMaker 现已推出:Deep Graph Library_行业深度_AWS_InfoQ精选文章