Skip to main content
QUICK REVIEW

[논문 리뷰] Ivy: Templated Deep Learning for Inter-Framework Portability

Daniel Lenton, Fabio Pardo|arXiv (Cornell University)|2021. 02. 04.
Advanced Neural Network Applications참고 문헌 22인용 수 6
한 줄 요약

Ivy는 Tensorflow, PyTorch, Jax, MXNet 및 NumPy와 같은 다양한 프레임워크의 핵심 연산을 추상화함으로써, 틀에 얽매이지 않는 코드를 가능하게 하는 템플릿 기반 딥러닝 프레임워크입니다. 이로 인해 개발자는 1% 미만의 런타임 오버헤드로도 이식 가능하고 고수준의 함수를 작성할 수 있으며, 현재 및 향후 프레임워크 간에 지속 가능한 라이브러리 개발을 가능하게 합니다.

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로 추상화하여 코드 중복을 줄이고 이식 가능성을 높이기 위함.
  • 현재 및 향후 딥러닝 프레임워크에서 지속적으로 사용 가능한 '수명 주기'가 긴 라이브러리의 생성을 지원하기 위함.
  • 파rameter가 없는 도메인 특화 함수를 종단 간 미분 가능한 계산 그래프에 통합함으로써 하이브리드 미분 가능 프로그래밍을 촉진하기 위함.

제안 방법

  • Ivy는 기존 딥러닝 프레임워크(TensorFlow, PyTorch, Jax, MXNet, NumPy)의 핵심 기능 API를 일관된 호출 서명, 문법, 입력-출력 동작 방식을 갖춘 통합 인터페이스로 추상화합니다.
  • 저수준의 통합 Ivy 연산을 사용하여 고수준의, 틀에 얽매이지 않는 함수를 조합함으로써 백엔드 간 이식 가능성을 보장합니다.
  • Ivy는 즉각 실행(eager) 및 컴파일된 실행(compiled) 모드를 모두 지원하며, 런타임 오버헤드는 다양한 프레임워크와 라이브러리 간의 시간 측정 비교를 통해 측정됩니다.
  • 백엔드 추상화 계층을 사용하여 각 프레임워크의 네이티브 연산을 공통의 Ivy 인터페이스로 매핑함으로써 런타임 효율성을 유지합니다.
  • 순수 Ivy로 구성된 네 가지 라이브러리—역학, 3D 비전, 로봇공학, 미분 가능 환경—은 실용적 응용 사례와 다중 프레임워크 호환성을 입증합니다.
  • 런타임 오버헤드는 즉각 실행 모드에서 time.perf_counter()를 사용해 측정되었으며, 컴파일 모드로의 외삽을 통해 상대적 성능 영향을 평가했습니다.

실험 결과

연구 질문

  • RQ1다양한 주요 프레임워크 간에 일관된 동작을 유지하면서도 성능을 보존하는 통합된 딥러닝 API를 구축할 수 있는가?
  • RQ2Ivy는 얼마나 많은 코드 중복을 줄이고 딥러닝 프레임워크 간의 이식 가능성을 향상시키는가?
  • RQ3Ivy를 사용할 경우 네이티브 프레임워크 구현 대비 런타임 오버헤드는 어느 정도인가?
  • RQ4Ivy는 파rameter가 없는 도메인 특화 함수를 종단 간 미분 가능한 계산 그래프에 통합함으로써 하이브리드 미분 가능 프로그래밍을 효과적으로 지원할 수 있는가?
  • RQ5Ivy는 3D 비전 및 로봇공학과 같은 다양한 연구 분야에서 최소한의 성능 저하로 어떻게 확장 가능한가?

주요 결과

  • Ivy는 대부분의 경우 1% 미만의 런타임 오버헤드를 달성하였으며, 즉각 실행 모드에서 프레임워크 및 라이브러리 평균 오버헤드는 1.1%이며, 컴파일 모드에서는 0.1%였습니다.
  • 비전 라이브러리는 복잡한 연산(예: 다차원 지원이 있는 gather 및 scatter)을 자주 사용함에 따라 가장 높은 오버헤드(컴파일 모드 평균 1.8%)를 보였습니다.
  • 런타임 측정 결과, Ivy의 상대적 성능 오버헤드는 TensorFlow, PyTorch, Jax, MXNet 및 NumPy를 포함한 모든 지원 프레임워크에서 매우 미미하고 일관된 것으로 나타났습니다.
  • 이 프레임워크는 단일 Ivy 함수가 수정 없이 어떤 지원 백엔드에서도 직접 사용 가능한 원활한 다중 프레임워크 호환성을 제공합니다.
  • Ivy는 수동으로 설계된 도메인 특화 함수(예: 비전 라이브러리에서 제공하는 함수)를 종단 간 미분 가능한 모델에 통합할 수 있도록 하여 하이브리드 미분 가능 프로그래밍을 지원합니다.
  • Ivy는 현재 및 향후 딥러닝 프레임워크에서 지속적으로 기능하는 '수명 주기'가 긴 라이브러리의 생성을 가능하게 하여 장기적인 유지보수 비용을 감소시킵니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.