[논문 리뷰] Chunkflow: Distributed Hybrid Cloud Processing of Large 3D Images by Convolutional Nets
Chunkflow는 볼륨을 겹치는 청크로 분할하고, 로컬 및 클라우드 GPU/CPU 클러스터에서 처리한 후 결과를 블렌딩하여 테라- 및 페타바이올렉스 생물의학 영상에서 3D ConvNets의 분산·비용 효율적인 추론을 가능하게 하는 하이브리드 클라우드 프레임워크이다. 이 프레임워크는 장애 내성적인 작업 큐잉(aws sqs)을 활용하며, PyTorch 및 PZnet 백엔드를 지원하고 실시간 시각화 및 대규모 평가를 가능하게 하여 스포트 또는 프리emptible VM과 같은 불안정한 클라우드 인스턴스를 활용해 비용을 절감한다.
It is now common to process volumetric biomedical images using 3D Convolutional Networks (ConvNets). This can be challenging for the teravoxel and even petavoxel images that are being acquired today by light or electron microscopy. Here we introduce chunkflow, a software framework for distributing ConvNet processing over local and cloud GPUs and CPUs. The image volume is divided into overlapping chunks, each chunk is processed by a ConvNet, and the results are blended together to yield the output image. The frontend submits ConvNet tasks to a cloud queue. The tasks are executed by local and cloud GPUs and CPUs. Thanks to the fault-tolerant architecture of Chunkflow, cost can be greatly reduced by utilizing cheap unstable cloud instances. Chunkflow currently supports PyTorch for GPUs and PZnet for CPUs. To illustrate its usage, a large 3D brain image from serial section electron microscopy was processed by a 3D ConvNet with a U-Net style architecture. Chunkflow provides some chunk operations for general use, and the operations can be composed flexibly in a command line interface.
연구 동기 및 목표
- 테라- 및 페타바이올렉스 수준의 3D 생물의학 영상에 3D ConvNets를 처리할 때 발생하는 계산 및 메모리 병목 현상을 해결하기 위해.
- AWS 스포트 또는 Google 프리emptible VM과 같은 저비용, 활용도가 낮은 클라우드 인스턴스를 활용하여 대규모 3D ConvNet 추론을 실행할 때의 비용과 인프라 부담을 줄이기 위해.
- 벤더나 클러스터에 종속되지 않는 유연한, 벤더에 구애받지 않는 로컬 및 공공 클라우드 리소스 간의 분산 추론 배포를 가능하게 하기 위해.
- 모델 디버깅 및 일반화 향상을 위해 처리 중 실시간으로 추론 결과를 시각화하고 대규모 평가를 수행할 수 있도록 하기 위해.
- 다양한 계산 백엔드에서 3D 이미지 처리 파이프라인 내에서 청크 작업의 조합이 가능한 구성 가능한 명령줄 인터페이스를 제공하기 위해.
제안 방법
- 대규모 3D 이미지 볼륨을 겹치는, 다룰 수 있는 크기의 청크로 나누어 분산 처리를 가능하게 한다.
- AWS Simple Queue Service (SQS)를 사용한 프로듀서-컨슈머 아키텍처를 통해 작업 제출과 실행을 분리하여 워커의 동적 확장을 가능하게 한다.
- 로컬 머신이나 클라우드 인스턴스에서 실행되는 워커들은 SQS 큐에서 작업을 가져와 PyTorch (GPU) 또는 PZnet (CPU)를 사용해 할당된 이미지 청크를 처리하고 결과를 반환한다.
- 개별 청크에서 나온 결과는 겹치는 영역를 활용해 블렌딩되어 전역적으로 일관된 출력 이미지를 생성한다.
- 실패한 작업을 재처리할 수 있도록 장애 내성 기능을 제공하여 스포트 또는 프리emptible VM과 같은 불안정하지만 저비용의 클라우드 인스턴스를 신뢰성 있게 사용할 수 있도록 한다.
- 실시간 시각화를 가능하게 하기 위해 neuroglancer precomputed 형식과 통합하여 처리 중에 미리 계산된 썸네일 및 친화도 맵을 포함한 추론 결과를 실시간으로 렌더링할 수 있도록 한다.
실험 결과
연구 질문
- RQ1하이브리드 클라우드 기반의 분산 프레임워크는 테라- 및 페타바이올렉스 수준의 생물의학 영상에서 3D ConvNet 추론을 효율적이고 저비용으로 수행할 수 있는가?
- RQ2장애 내성적인 작업 큐잉과 동적 워커 스케일링은 신뢰할 수 없는 저비용 클라우드 인스턴스를 사용할 때 계산 비용을 어떻게 줄일 수 있는가?
- RQ3CPU 기반 추론(PZnet)은 어떤 경우에 GPU 기반 추론보다 성능 대비 비용에서 뛰어나거나 이를 능가할 수 있는가?
- RQ4중간 결과의 실시간 시각화는 3D ConvNet 추론 파이프라인의 디버깅 및 대규모 평가를 어떻게 향상시킬 수 있는가?
- RQ5구성 가능한 명령줄 인터페이스는 다양한 계산 백엔드에서 3D 이미지 청크의 유연하고 모듈화된 처리를 가능하게 하는가?
주요 결과
- Chunkflow는 U-Net 스타일의 3D ConvNet을 사용하여 대규모 3D 뇌 영상을 순차 섹션 전자현미경 이미지에서 성공적으로 처리하여 페타스케일 데이터에서의 확장성을 입증했다.
- 장애 내성적인 작업 큐잉을 활용하여 불안정한 클라우드 인스턴스에서도 신뢰성 있는 실행을 가능하게 하여 계산 비용을 크게 절감했다.
- 일부 경우에서 PZnet를 사용한 CPU 기반 추론이 GPU 기반 추론보다 비용 대비 처리량이 더 높아져, 특정 모델에 대해서는 CPU 기반 처리가 더 비용 효율적임을 입증했다.
- 다운샘플링된 썸네일 및 친화도 맵의 실시간 시각화를 통해 사용자는 처리 중 결과를 모니터링하고 검증할 수 있었으며, 이로 인해 오류를 조기에 발견할 수 있었다.
- 구성 가능한 명령줄 인터페이스를 통해 청크 작업의 조합을 매우 민첩하게 구성할 수 있었고, 이는 다양한 처리 파이프라인 간의 재사용성과 확장성 향상에 기여했다.
- 겹치는 영역를 블렌딩하여 청크 수준의 처리에도 불구하고 전역적으로 일관된 출력을 달성했으며, 패치 크기의 절반 이하로 자르는 경우조차도 시각적 아티팩트가 최소화되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.