depyf:为机器学习研究人员打开PyTorch编译器的不透明盒子

PyTorch \texttt{2.x} 引入了一个旨在加速深度学习程序的编译器。然而,对于机器学习研究人员来说,充分发挥 PyTorch 编译器的潜力可能具有挑战性。编译器在 Python 字节码级别运行,使其看起来像一个不透明的盒子。为了解决这个问题,我们引入了 \texttt{depyf},这是一个旨在揭开 PyTorch 编译器内部工作原理的工具。 \texttt{depyf} 将 PyTorch 生成的字节码反编译回等效的源代码,并在内存中的代码对象与其磁盘上的源代码之间建立连接...

来源:Apple机器学习研究

PyTorch \texttt{2.x} 引入了一个旨在加速深度学习程序的编译器。然而,对于机器学习研究人员来说,充分发挥 PyTorch 编译器的潜力可能具有挑战性。编译器在 Python 字节码级别运行,使其看起来像一个不透明的盒子。为了解决这个问题,我们引入了 \texttt{depyf},这是一个旨在揭开 PyTorch 编译器内部工作原理的工具。 \texttt{depyf} 将 PyTorch 生成的字节码反编译回等效的源代码,并在内存中的代码对象与其磁盘上的源代码对应项之间建立连接。此功能使用户能够使用调试器逐行浏览源代码,从而增强他们对底层流程的理解。值得注意的是,\texttt{depyf} 是非侵入式且用户友好的,主要依靠两个方便的上下文管理器来实现其核心功能。

  • † 中国北京清华大学 BNRist 软件学院
  • ‡ 加州大学伯克利分校计算机科学系
  • ** 在 Apple 期间完成的工作