中文

降低 PyTorch 选择性微分的内存消耗

机器学习 2024-08-22 v2

摘要

内存是许多深度学习任务的限制性资源。除了神经网络权重之外,主要的内存消耗之一是自动微分(AD)为反向传播构建的计算图。我们观察到,PyTorch 当前的 AD 实现在存储计算图时忽略了关于参数可微性的信息。然而,当只需要参数子集的梯度时(如在许多现代微调任务中),这些信息对于减少内存消耗是有用的。具体而言,每当参数被标记为不可微时,在其参数上呈线性作用的层(密集层、卷积层或归一化层)的输入就可以被丢弃。我们提供了此类层的直接替换、与可微性无关的实现,并证明了其在不影响运行时间的情况下减少内存消耗的能力。

关键词

引用

@article{arxiv.2404.12406,
  title  = {Lowering PyTorch's Memory Consumption for Selective Differentiation},
  author = {Samarth Bhatia and Felix Dangel},
  journal= {arXiv preprint arXiv:2404.12406},
  year   = {2024}
}

备注

The code is available at https://github.com/plutonium-239/memsave_torch . This paper was accepted to WANT@ICML'24