다시 이음

PyTorch vs TensorFlow in 2022 본문

알.쓸.데.상

PyTorch vs TensorFlow in 2022

Taeho(Damon) 2022. 2. 21. 18:17

안녕하세요.

 

오늘은 딥러닝 라이브러리인 Pytorch와 TensorFlow 중 어떤 라이브러리를 배우는게 좋을지, 어떤 라이브러리가 자주 사용되고 있는지 트렌드 분석을 통해 인사이트를 얻을 수 있는 블로그 글을 찾아 리뷰하려고 합니다.

 

본문은 AsemblyAI 블로그(http://www.assemblyai.com/blog/pytorch-vs-tensorflow-in-2022/)의 글을 토대로 정리한 글입니다.

 

참조한 글에서는 모델 가용성, 배포 인프라, 생태계로 나누어 Pytorch와 TensorFlow를 비교하여 분석하고 있습니다.

 

1. Pytorch?  TensorFlow?

 

둘다 오픈소스 딥러닝 소프트웨어 라이브러리 입니다.

Pytorch가 파이썬에서 직관적으로 해석되는 부분 때문에 현재 많이 사용되는 라이브러리입니다.

구분 TensorFlow Pytorch
패러다임 Define and Run Define by Run
그래프 형태 Static graph(정적) Dynamic graph(동적)
현재 사용자 적음 많음
자체 운영 포럼 없음 있음
중점 분야 산업 연구
제작자 구글 브레인팀 Facebook의 인공지능 연구팀

 

 

2. 모델 가용성

 

이 글에서 저자는 실무에 사용하는 딥러닝에서 사전학습된 모델에 대한 액세스가 중요하다고 서술합니다.

 

그에 따른 모델 가용성을 허깅 페이스(Hugging Face, 다양한 트랜스포머 모델(transformer.models)과 학습 스크립트(transformer.Trainer)를 제공하는 모듈)와 연구 논문을 통해서 설명합니다.

 

 

(1) 허깅페이스에서 top30 모델의 가용성, (2),(3) 연구논문에서의 가용성

 

개발 회사,연구소 현황

 

  • Google AI: 분명히 Google에서 발표한 연구는 주로 TensorFlow를 사용합니다. 연구자는 TensorFlow를 사용하는 것이 유용하거나 최소한 능숙하다고 생각할 수 있습니다. Google Brain은 또한 JAX를 위한 Google의 신경망 라이브러리인Flax와 함께 JAX를 사용합니다.
  • DeepMind: DeepMind는 2016년에 TensorFlow 사용을 표준화했지만2020년에 연구를 가속화하기 위해 JAX를 사용한다고 발표했습니다. 
  • OpenAI: OpenAI는 2020년에 내부적으로 PyTorch의 사용을 표준화했습니다. 그러나 강화 학습에 경우, 이전 저장소가TensorFlow에서 구현됩니다. Baselines는 강화 학습 알고리즘의 고품질 구현을 제공하므로 TensorFlow는 강화 학습 실무자에게 최고의 선택이 될 수 있습니다.
  • JAX: Google에는 연구 커뮤니티에서 인기를 얻고 있는 JAX 라는 또 다른 프로젝트가 있습니다. 어떤 의미에서는 PyTorch 또는 TensorFlow에 비해 JAX의 오버헤드가 훨씬 적습니다. 그러나 기본 철학은 PyTorch 및 TensorFlow와 다르며 이러한 이유로 JAX로 마이그레이션하는 것은 대부분의 경우 좋은 선택이 아닐 수 있습니다. JAX를 활용하는 모델/논문이 증가하고 있지만 PyTorch 및 TensorFlow와 관련하여 향후 몇 년 동안 연구 커뮤니티에서 JAX가 얼마나 널리 퍼질지는 현재로서는 불확실합니다.

 

3. 배포

 

TensorFlow는 처음부터 배포 지향 애플리케이션을 위한 필수 라이브러리 였으며 그럴만한 이유가 있습니다. TensorFlow에는 종단 간 딥 러닝 프로세스를 쉽고 효율적으로 만드는 수많은 관련 도구가 있습니다. (TensorFlow Serving  TensorFlow Lite)

 

Pytorch는 이전에 이 분야에서 악명 높았던 배포를 보다 쉽게 ​​만드는 데 투자했습니다. 이전에는 PyTorch 사용자가 Flask 또는 Django를 사용하여 모델 위에 REST API를 빌드해야 했지만 이제는 TorchServe  PyTorch Live 형태의 기본 배포 옵션이 있습니다.

 

현재 TensorFlow는 여전히 배포 측면에서 우위를 점하고 있습니다. Serving 및 TFLite는 PyTorch 경쟁업체보다 훨씬 강력하며 Google의 Coral 장치와 함께 로컬 AI에 TFLite를 사용하는 기능은 많은 산업 분야에서 필수 요소입니다.

 

4. 생태계

 

Pytorch -

Hub, PyTorch-XLA, TorchVision, TorchText, TorchAudio, SpeechBrain, ESPnet, AllenNLP, Ecosystem Tools, TorchElastic, TorchX, Lightning

 

TensorFlow -

Hub, Model Garden, Extended (TFX), Vertex AI, MediaPipe, Coral, TensorFlow.js, Cloud, Colab, Playground, Datasets

 

TensorFlow가 우세하다는 판단입니다.

 

 

5. 상황에 따른 라이브러리 추천

 

(1) 산업 종사자, (2) 연구원

 

(3) 교수, (4) 직무전환하는 사람