Skip to main content
QUICK REVIEW

[论文解读] Ivy: Templated Deep Learning for Inter-Framework Portability

Daniel Lenton, Fabio Pardo|arXiv (Cornell University)|Feb 4, 2021
Advanced Neural Network Applications参考文献 22被引用 6
一句话总结

Ivy 是一个模板化的深度学习框架,通过抽象 Tensorflow、PyTorch、Jax、MXNet 和 NumPy 中的核心操作,实现框架无关的代码,使开发者能够以不到 1% 的运行时开销编写可移植的高级函数。它通过一致的 API 支持跨框架的互操作性,并支持在当前和未来框架中长期复用的库。

ABSTRACT

We introduce Ivy, a templated Deep Learning (DL) framework which abstracts existing DL frameworks. Ivy unifies the core functions of these frameworks to exhibit consistent call signatures, syntax and input-output behaviour. New high-level framework-agnostic functions and classes, which are usable alongside framework-specific code, can then be implemented as compositions of the unified low-level Ivy functions. Ivy currently supports TensorFlow, PyTorch, MXNet, Jax and NumPy. We also release four pure-Ivy libraries for mechanics, 3D vision, robotics, and differentiable environments. Through our evaluations, we show that Ivy can significantly reduce lines of code with a runtime overhead of less than 1% in most cases. We welcome developers to join the Ivy community by writing their own functions, layers and libraries in Ivy, maximizing their audience and helping to accelerate DL research through inter-framework codebases. More information can be found at https://ivy-dl.org.

研究动机与目标

  • 解决深度学习框架之间缺乏互操作性的问题,该问题阻碍了代码复用并增加了维护开销。
  • 使开发者能够编写高级、框架无关的函数,使其在多个深度学习框架中无缝运行。
  • 通过将核心操作抽象为现有框架中的统一 API,减少代码重复并提高可移植性。
  • 支持创建‘终身’可用的库,使其在当前和未来的深度学习框架中保持可用性。
  • 通过支持无参数、领域特定的函数集成到端到端可微分计算图中,促进混合可微编程。

提出的方法

  • Ivy 将现有深度学习框架(TensorFlow、PyTorch、Jax、MXNet、NumPy)的核心功能 API 抽象为统一接口,保持一致的调用签名、语法和输入输出行为。
  • 通过低级统一的 Ivy 操作组合构建高级、框架无关的函数,确保在不同后端之间的可移植性。
  • Ivy 支持即时执行和编译执行两种模式,性能开销通过在不同框架和库之间进行时间对比测量评估。
  • 该框架使用后端抽象层,将每个框架的原生操作映射到统一的 Ivy 接口,同时保持运行时效率。
  • 四个纯 Ivy 库——力学、三维视觉、机器人学和可微分环境——展示了实际用例和跨框架兼容性。
  • 运行时开销通过在即时模式下使用 time.perf_counter() 测量,结果外推至编译模式以评估相对性能影响。

实验结果

研究问题

  • RQ1能否创建一个统一的深度学习 API,在保持多个主流框架间行为一致性的同时,仍能保持高性能?
  • RQ2Ivy 在多大程度上减少了代码重复并提升了在不同深度学习框架间的可移植性?
  • RQ3与原生框架实现相比,使用 Ivy 的运行时开销有多大?
  • RQ4Ivy 能否通过将无参数、领域特定的函数集成到可微分计算图中,有效支持混合可微编程?
  • RQ5Ivy 在如三维视觉和机器人学等多样化研究领域中表现如何,是否在最小性能退化下仍能良好扩展?

主要发现

  • 在大多数情况下,Ivy 的运行时开销低于 1%,在即时模式下跨框架和库的平均开销为 1.1%,在编译模式下为 0.1%。
  • 视觉库的开销最高(在编译模式下平均为 1.8%),原因在于频繁使用复杂的操作(如 gather 和 scatter)并支持多维张量。
  • 运行时测量表明,Ivy 的相对性能开销在所有支持的框架(包括 TensorFlow、PyTorch、Jax、MXNet 和 NumPy)中均极小且一致。
  • 该框架实现了无缝的跨框架兼容性:单个 Ivy 函数可直接在任何支持的后端中使用,无需修改。
  • Ivy 通过允许手工设计的、领域特定的函数(如视觉库中的函数)集成到任意框架的端到端可微分模型中,支持混合可微编程。
  • 该框架支持创建‘终身’库,使其在当前和未来的深度学习框架中保持功能可用,从而降低长期维护成本。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。