AutoGL
清华大学开源的首个图数据 AutoML 框架,自动搜索最优 GNN 架构与超参数组合,覆盖节点分类、链接预测、图分类等核心任务。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
清华大学开源的首个图数据 AutoML 框架,自动搜索最优 GNN 架构与超参数组合,覆盖节点分类、链接预测、图分类等核心任务。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你的团队正在处理一个社交网络分析任务,需要从数以万计的用户关系图中提取有价值的信息。传统做法是数据科学家花费数周时间,反复调试 GCN、GAT 等模型的各种超参数组合——而现在,一个 Python 库可以自动完成这一切。这就是清华大学媒体与网络实验室(THUMNLab)开发的 AutoGL(Auto Graph Learning),也是目前 GitHub 上最活跃的图数据 AutoML 开源项目之一。
图1:AutoGL 自动图机器学习框架整体架构
图(Graph)是自然界最本质的数据结构之一。社交网络、分子化学、知识图谱、推荐系统、交通网络——这些场景的本质都是在处理实体与实体之间的关系。2017 年以来,图神经网络(GNN)异军突起,成为处理这类数据的标配技术。然而,图机器学习模型的调参门槛极高:一个 GCN 层的最优 dropout 率与图卷积聚合深度紧密耦合,而 GAT 的注意力头数又与节点特征维度相互影响。这种多维超参数空间的手动探索,消耗了研究者大量的宝贵时间。
正是在这一背景下,清华大学媒体与网络实验室于 2020 年底发布了 AutoGL,这是首个专门针对图数据设计的 AutoML 工具包,目标是让研究者和开发者能够「简单、快速地对图数据集和任务进行自动机器学习」。AutoGL 的论文发表于 ICLR 2021 Workshop,并被 IJCAI 2021 接收为基础性综述论文,GitHub 已累计获得超过 1100 颗星,被广泛用于学术研究场景。
图2:AutoGL 神经架构搜索(NAS)模块搜索空间示意
AutoGL 采用了五模块分层架构,从底层到顶层依次为:
AutoGL 提供了统一的数据集抽象层,封装了 PyTorch Geometric(PyG)和 Deep Graph Library(DGL)两大主流图计算后端。用户无需关心底层 API 差异,只需传入图数据即可开始自动搜索流程。框架支持同构图、异构图两大类数据,以及节点分类、链接预测、图分类三大核心任务。此外还引入了 NAS-Bench-Graph 基准数据集(发表于 NeurIPS 2022),为神经架构搜索算法提供标准化的评估环境。
图数据的特征工程是 GNN 效果的关键前提。AutoGL 提供了丰富的图特征生成器(Generator),包括 Graphlets(子图结构枚举)、EigenGNN(基于谱图理论的特征)以及 Netlsd、NxAverageClustering 等全局图统计特征。同时还内置了特征选择器(Selector),如基于 GBDT 的特征重要性评估,用于剔除冗余特征。这套组合拳使得输入模型的图特征质量得到系统性保障。
这是 AutoGL 最具技术含量的模块之一。用户无需手动选择 GCN 还是 GAT,框架会自动在多种架构之间进行搜索和比较。当前支持的搜索策略包括:
搜索空间覆盖了单路径(SinglePath)、GraphNAS、AutoAttend 等经典范式,评估器则支持 One-shot 权重共享(大幅加速搜索)和 Full Scratch 精确评估两种模式。特别值得一提的是 AutoGL 支持硬件感知搜索(Hardware-Aware NAS),可以根据推理延迟或显存占用的约束条件,搜索满足特定硬件预算的最优架构。
AutoGL 集成了十余种主流 HPO 算法,构成了图自动机器学习的「算法宝库」:
| 类别 | 算法 |
|---|---|
| 穷举类 | Grid Search(网格搜索) |
| 随机类 | Random Search、Quasi Random(Sobol 序列) |
| 贝叶斯类 | Bayes、TPE(Tree-structured Parzen Estimator)、CAMES、MOCAMES |
| 模拟退火 | Anneal |
| 图专用 | AutoNE(基于图神经网络的超参预测) |
这些算法覆盖了从暴力穷举到智能探索的全谱系策略,用户可以根据计算预算和精度需求灵活选择。对于大规模图数据集(如百万节点的社交网络),AutoGL 还支持图采样策略,确保即使在单机环境下也能完成超参数搜索。
单一模型往往难以在所有数据分布上表现出色。AutoGL 支持 Voting(投票集成)和 Stacking(堆叠集成)两种自动集成策略,可以将多个自动搜索得到的优秀模型组合成更强的集成模型。配合前述的超参数优化模块,AutoGL 实际上提供了一条从「单模型调参」到「多模型集成」的完整 AutoML 流水线。
2022 年,AutoGL 团队提出了 NAS-Bench-Graph,这是首个专门针对图数据的神经架构搜索 benchmark(NeurIPS 2022)。与 ImageNet 之于图像 NAS 的地位类似,NAS-Bench-Graph 为图神经架构搜索领域提供了可复现的评估标准,将搜索算法的对比周期从数天缩短到数分钟。
AutoGL v0.4.0 引入了一套完整的图鲁棒性模块,覆盖:结构扰动下的特征工程(对抗特征增强)、鲁棒 GNN 模型(对抗训练)以及鲁棒图神经架构搜索。这意味着用户不仅可以找到「最好的」模型,还能找到「最不容易被攻击」的模型——这在金融风控、安全审计等高可靠性场景中至关重要。
v0.4.0 同步引入了自监督预训练支持,使 AutoGL 能够利用大量无标注图数据进行表示学习。这解决了图数据标注成本高、质量参差不齐的痛点,让 AutoML 流程在数据稀缺场景下依然有效。
AutoGL 的典型应用场景包括:
AutoGL 作为纯 Python 库,没有提供 Dockerfile 或 docker-compose,但安装流程相当标准:
# 方式一:pip 一键安装
pip install autogl
# 方式二:源码安装(开发者模式)
git clone https://github.com/THUMNLab/AutoGL.git
cd AutoGL
pip install -e .
核心依赖包括 Python ≥ 3.6、PyTorch ≥ 1.6,以及 PyTorch Geometric(≥1.7)或 Deep Graph Library(≥0.7)之一。框架使用模块化设计,核心模块包括 autogl.datasets(数据集)、autogl.solver(求解器)、autogl.module(五大功能模块)。
# 快速上手:节点分类任务
from autogl.datasets import dataset_graphsage
from autogl.solver import AutoNodeClassifier
# 加载数据集
train_graph, val_graph, test_graph = dataset_graphsage()
# 启动 AutoML
solver = AutoNodeClassifier(
hp_memory=True, # 启用超参数记忆
time_limit=3600, # 搜索时间限制(秒)
)
solver.fit(train_graph, val_graph, normalized=True)
# 评估
result = solver.predict(test_graph, normalized=True)
GPU 不是必须,但强烈推荐。完整依赖链安装约需 2GB 磁盘空间,考虑到 PyG/DGL 的图计算开销,8GB 以上内存 + NVIDIA GPU(8GB+ 显存)是获得良好体验的配置基准。
使用 AutoGL 时有几点需要特别注意:
AutoGL 是图 AutoML 领域的先驱项目,在学术和工业界均有一定影响力:
随着图数据在社交网络、生物医药、知识图谱等领域的爆发式增长,自动化的图机器学习工具正变得越来越重要。AutoGL 作为这一方向的标杆开源库,无论是对于研究者还是工程师,都是值得纳入工具箱的项目。