Skip to main content
QUICK REVIEW

[논문 리뷰] TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems

Martı́n Abadi, Ashish Agarwal|arXiv (Cornell University)|2016. 03. 14.
Parallel Computing and Optimization Techniques참고 문헌 42인용 수 9,726
한 줄 요약

TensorFlow는 데이터 흐름 그래프를 사용하고 훈련 및 추론을 지원하며 모바일 기기에서 대규모 분산 시스템에 이르기까지 실행될 수 있는 머신 러닝 알고리즘을 표현하기 위한 인터페이스이자 구현입니다. Apache 2.0 라이선스 하에 오픈 소스입니다.

ABSTRACT

TensorFlow is an interface for expressing machine learning algorithms, and an implementation for executing such algorithms. A computation expressed using TensorFlow can be executed with little or no change on a wide variety of heterogeneous systems, ranging from mobile devices such as phones and tablets up to large-scale distributed systems of hundreds of machines and thousands of computational devices such as GPU cards. The system is flexible and can be used to express a wide variety of algorithms, including training and inference algorithms for deep neural network models, and it has been used for conducting research and for deploying machine learning systems into production across more than a dozen areas of computer science and other fields, including speech recognition, computer vision, robotics, information retrieval, natural language processing, geographic information extraction, and computational drug discovery. This paper describes the TensorFlow interface and an implementation of that interface that we have built at Google. The TensorFlow API and a reference implementation were released as an open-source package under the Apache 2.0 license in November, 2015 and are available at www.tensorflow.org.

연구 동기 및 목표

  • 모바일에서 클러스터 배포에 이르는 ML 모델 통합 시스템의 필요성을 제시한다.
  • TensorFlow 프로그래밍 모델, 구현 및 시스템 아키텍처를 설명한다.
  • TensorFlow가 다양한 하드웨어에서 확장 가능한 학습과 추론을 가능하게 하는 방법을 보여준다.
  • 성능과 유연성을 향상시키는 확장 및 최적화를 시연한다.
  • 연구 및 생산 맥락에서의 실용적 배포 및 활용을 강조한다.

제안 방법

  • 상태를 가지는 노드와 제어 종속성을 가진 데이터 흐름 스타일의 계산 그래프 모델을 도입한다.
  • 단일 기계 및 분산 실행 아키텍처를 설명하고, 장치 배치 및 Send/Receive 노드를 통한 장치 간 통신을 포함한다.
  • 자동 미분 계산 및 계산 그래프에의 통합을 설명한다.
  • 부분 실행, 장치 제약, 제어 흐름, 입력 연산, 큐, 컨테이너 등과 같은 확장을 제시한다.
  • 공통 부분식 제거, 메모리 및 통신을 고려한 최적화와 비동기 커널과 같은 최적화를 상세히 다룬다.
  • 분산 환경에서의 장애 허용, 체크포인트 저장 및 복구를 논의한다.

실험 결과

연구 질문

  • RQ1단일 프레임워크가 이질적인 하드웨어에서 광범위한 ML 알고리즘을 표현하고 실행할 수 있는 방법은?
  • RQ2데이터 흐름 그래프 표현이 확장 가능하고 분산된 학습 및 추론을 어떻게 가능하게 하는가?
  • RQ3성능과 확장성을 극대화하기 위해 장치 배치, 장치 간 통신 및 메모리 관리를 어떻게 다뤄야 하는가?
  • RQ4확장(제어 흐름, 입력 처리, 큐, 컨테이너)이 ML 워크로드의 사용성과 효율성을 어떻게 향상시키는가?
  • RQ5대규모 ML 시스템에 효과적인 최적화와 장애 허용 메커니즘은 무엇인가?

주요 결과

  • TensorFlow는 데이터 흐름 그래프를 CPU, GPU 및 기타 장치에 매핑하는 유연한 프로그래밍 모델을 제공하여 연구 실험과 생산 배치를 모두 가능하게 한다.
  • 이 시스템은 단일 머신 및 분산 실행을 지원하며 확장 가능한 노드 배치, Send/Receive 노드를 통한 장치 간 통신, 변수의 장애 허용 체크포인트 저장을 제공한다.
  • 자동 미분 계산이 그래프에 내장되어 경사 하강법과 같은 일반적인 ML 최적화를 가능하게 한다.
  • 부분 실행, 제어 흐름, 입력 파이프라인, 큐, 컨테이너와 같은 다양한 확장 기능이 ML 워크로드의 사용성과 성능을 향상시킨다.
  • 최적화에는 공통 부분식 제거, 메모리 및 통신 오버헤드를 줄이기 위한 ASAP/ALAP 스케줄링, 비동기 커널 지원이 포함된다.
  • TensorFlow는 2015년 11월 Apache 2.0 하에 오픈 소스화되었으며, 수년 간 연구 및 생산에서 다양한 도메인에 사용되어 왔으며, 수십 대의 머신에서 수백억 개의 매개변수를 가진 대규모 딥 네트워크를 포함한 사례를 포함한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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