Graph-Learn(GL,原AliGraph) 是面向大规模图神经网络的研发和应用而设计的一款分布式框架, 它从实际问题出发,提炼和抽象了一套适合于当下图神经网络模型的编程范式, 并已经成功应用在阿里巴巴内部的诸如搜索推荐、网络安全、知识图谱等众多场景。
GL注重可移植和可扩展,对于开发者更为友好,为了应对GNN在工业场景中的多样性和快速发展的需求。 基于GL,开发者可以实现一种GNN算法,或者面向实际场景定制化一种图算子,例如图采样。 GL的接口以Python和NumPy的形式提供,可与TensorFlow或PyTorch兼容但不耦合。 目前GL内置了一些结合TensorFlow开发的经典模型,供用户参考。 GL可运行于Docker内或物理机上,支持单机和分布式两种部署模式。
安装部署
我们以Ubuntu 16.04
下基于g++ 5.4.0
编译为例,来说明从源码编译安装的步骤。
安装git
sudo apt-get install git-all
安装依赖的三方库
sudo apt-get install autoconf automake libtool libssl-dev cmake python-numpy python-setuptools python-pip
编译
- 下载源代码
git clone https://github.com/alibaba/graph-learn.git cd graph-learn git submodule update --init
- 编译C++ UT
make test
- 编译python安装包
make python
安装
sudo pip install dist/your_wheel_name.whl
目前,GL提供的模型示例基于TensorFlow 1.12开发,需要安装对应的版本。
sudo pip install tensorflow==1.12.0
运行测试用例
source env.sh ./test_cpp_ut.sh ./test_python_ut.sh
快速开始
图操作接口
GNN模型开发
论文
如果GL对你的工作有所帮助,请引用如下论文。
@article{zhu2019aligraph, title={AliGraph: a comprehensive graph neural network platform}, author={Zhu, Rong and Zhao, Kun and Yang, Hongxia and Lin, Wei and Zhou, Chang and Ai, Baole and Li, Yong and Zhou, Jingren}, journal={Proceedings of the VLDB Endowment}, volume={12}, number={12}, pages={2094--2105}, year={2019}, publisher={VLDB Endowment} }
协议
Apache License 2.0。
致谢
GL孵化于阿里巴巴内部,由计算平台事业部-PAI团队、新零售智能引擎-智能计算实验室、安全部-数据与算法团队共同研发。 研发过程中收到很多有价值的反馈,代码也依赖了以下开源社区的优秀项目,一并感谢。
如果你在使用GL过程中遇到什么问题,请留言或发信至graph-learn@list.alibaba-inc.com,也欢迎贡献代码。