Cavs:面向动态神经网络的以顶点为中心的编程接口
机器学习
2017-12-13 v1 计算与语言
分布式、并行与集群计算
摘要
近期的深度学习(DL)模型已从静态网络架构转向动态架构,处理网络结构随每个样本变化的数据,例如变长序列、树和图。现有的基于数据流图的DL编程模型——无论是静态还是动态声明式——要么不能轻易表达这些动态模型,要么由于重复的数据流图构建与处理以及难以批量执行而效率低下。我们提出Cavs,一种面向动态DL模型的以顶点为中心的编程接口与优化系统实现。Cavs将动态网络结构表示为静态顶点函数和动态实例相关图,并通过按照中的依赖关系调度的执行来进行反向传播。Cavs规避了昂贵的图构建与预处理开销,允许对中预定义操作使用静态图优化技术,并自然地在不同的图上暴露批量执行机会。将Cavs与两种最先进的动态神经网络框架(TensorFlow Fold和DyNet)比较的实验证明了该方法的有效性:Cavs在各种动态神经网络架构的训练上实现了近一个数量级的加速,消融实验表明了我们所提出的批处理与内存管理策略的贡献。
引用
@article{arxiv.1712.04048,
title = {Cavs: A Vertex-centric Programming Interface for Dynamic Neural Networks},
author = {Hao Zhang and Shizhen Xu and Graham Neubig and Wei Dai and Qirong Ho and Guangwen Yang and Eric P. Xing},
journal= {arXiv preprint arXiv:1712.04048},
year = {2017}
}
备注
Short versions of this paper were presented at AISys workshop@SOSP 2017 and MLSys workshop@NIPS 2017