Skip to main content
QUICK REVIEW

[논문 리뷰] Deep Learning with Dynamic Computation Graphs

Moshe Looks, Marcello Herreshoff|arXiv (Cornell University)|2017. 02. 07.
Topic Modeling참고 문헌 12인용 수 81
한 줄 요약

동적 배치를 도입하여 동적 계산 그래프를 가진 신경망의 효율적 학습과 추론을 가능하게 하며, 이러한 모델을 간결하게 구성하기 위한 조합기 라이브러리인 TensorFlow Fold를 제시합니다.

ABSTRACT

Neural networks that compute over graph structures are a natural fit for problems in a variety of domains, including natural language (parse trees) and cheminformatics (molecular graphs). However, since the computation graph has a different shape and size for every input, such networks do not directly support batched training or inference. They are also difficult to implement in popular deep learning libraries, which are based on static data-flow graphs. We introduce a technique called dynamic batching, which not only batches together operations between different input graphs of dissimilar shape, but also between different nodes within a single input graph. The technique allows us to create static graphs, using popular libraries, that emulate dynamic computation graphs of arbitrary shape and size. We further present a high-level library of compositional blocks that simplifies the creation of dynamic graph models. Using the library, we demonstrate concise and batch-wise parallel implementations for a variety of models from the literature.

연구 동기 및 목표

  • DCG의 정적 데이터 흐름 그래프에서의 비효율성을 동기부여하고 해결합니다.
  • 다양한 모양의 그래프 간 및 단일 그래프 내에서 연산을 배치하기 위한 동적 배치를 제안합니다.
  • Rapid prototyping 및 실험을 위한 고수준 조합기 라이브러리를 사용하여 DCG 모델을 구현하는 방법을 보여줍니다.
  • CPU 및 GPU 하드웨어에서의 경험적 속도 향상 및 실용적 가능성을 시연합니다.

제안 방법

  • 동적 배치를 입력 그래프 배치 전체의 같은 깊도에서 같은 연산을 그룹화하는 스케줄링 기법으로 정의합니다.
  • 가져오기(gather) 및 연결(concat) 연산을 사용하여 동적 그래프를 흉내 내는 정적 그래프로 입력 DCG를 다시 작성합니다.
  • 그래프 깊이를 따라 역전파를 가능하게 하는 정적 그래프를 반복하도록 TensorFlow의 while_loop를 사용하여 DCG를 구현합니다.
  • DCG 모델을 높은 수준으로 구성하기 위해 블록, 맵, 폴드, 리듀스 등 구성 요소를 갖춘 조합자 라이브러리인 TensorFlow Fold를 개발합니다.
  • 표현력과 배치 이점을 보여주기 위해 TreeRNNs, Tree-LSTMs, 피드포워드 주의(attention), 분자 그래프 컨볼루션 등 예제를 제시합니다.

실험 결과

연구 질문

  • RQ1다양한 그래프 토폴로지 간의 배치를 표준 정적 그래프 라이브러리에서의 배치 불가능성을 동적 배치가 보완할 수 있는가?
  • RQ2제안된 정적 그래프 에뮬레이션을 사용한 DCG 배치 시 성능 트레이드오프(속도 및 오버헤드)는 무엇인가?
  • RQ3TensorFlow Fold 조합자 라이브러리가 간결하고 확장 가능한 DCG 모델 개발을 얼마나 가능하게 하는가?
  • RQ4동적 배치를 통해 구현된 DCG 모델이 감정 분석이나 분자 그래프 처리와 같은 작업에서 상태-오브-더-아트나 경쟁력 있는 결과를 달성할 수 있는 정도는 어느 정도인가?

주요 결과

  • 동적 배치는 단일 트리 처리에 비해 상당한 속도 향상을 제공하며, 큰 트리의 경우 전체 배치 시 GPU에서 최대 160배 빠른 결과를 보입니다.
  • 동적 배치는 각 연산을 한 번만 인스턴스화하고 깊이별 배치를 실행함으로써 커널 호출 오버헤드를 줄여 더 작고 많은 GPU 커널을 줄입니다.
  • 추가적인 concat 및 gather 연산으로 인한 오버헤드가 존재하지만, 전반적인 이점은 특히 큰 배치 크기에서나 트리 내 배치를 완전히 활용할 때 여전히 유리합니다.
  • TensorFlow Fold 조합자 라이브러리는 DCG 모델의 간결한 구현을 가능하게 하고 코드 규모를 줄이며 모델 변형의 실험을 빠르게 할 수 있게 해줍니다.
  • 실험에는 TreeRNNs, 감정 분석을 위한 Tree-LSTMs, 분자에 대한 그래프 컨볼루션 접근법이 포함되어 있어 폭넓은 적용성과 실용성을 보여줍니다.

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

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

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

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