用于检测深度神经网络训练代码中张量形状错误的静态分析器
机器学习
2021-12-17 v1 编程语言
摘要
我们提出了一种自动静态分析器 PyTea,用于检测 PyTorch 代码中的张量形状错误。张量形状错误在深度神经网络代码中至关重要;一旦在训练阶段中途发生张量形状不匹配,大部分训练成本和中间结果都将丢失。给定输入的 PyTorch 源代码,PyTea 静态地追踪每一条可能的执行路径,收集该路径张量操作序列所需的张量形状约束,并判断这些约束是否不可满足(因此可能发生形状错误)。PyTea 的可扩展性和精度取决于真实世界 PyTorch 应用的特征:在 PyTea 的保守剪枝之后,执行路径的数量极少发生爆炸,且循环足够简单,可由我们的符号抽象所界定。我们在官方 PyTorch 仓库中的项目以及 StackOverflow 上提出的一些张量错误代码上对 PyTea 进行了测试。PyTea 成功检测到了这些代码中的张量形状错误,每次均在几秒钟内完成。
引用
@article{arxiv.2112.09037,
title = {A Static Analyzer for Detecting Tensor Shape Errors in Deep Neural Network Training Code},
author = {Ho Young Jhoo and Sehoon Kim and Woosung Song and Kyuyeon Park and DongKwon Lee and Kwangkeun Yi},
journal= {arXiv preprint arXiv:2112.09037},
year = {2021}
}