Core Concepts
DiffusionPipe는 확산 모델의 구조적 특성과 학습 방법을 고려하여 파이프라인 병렬 처리를 최적화하고, 비학습 부분의 계산을 파이프라인 버블에 효율적으로 채워 넣어 학습 속도를 크게 향상시킨다.
Abstract
이 논문은 대규모 확산 모델 학습을 위한 효율적인 파이프라인 병렬 처리 시스템 DiffusionPipe를 제안한다.
첫째, DiffusionPipe는 확산 모델의 구조적 특성과 학습 방법을 고려하여 최적의 모델 분할 및 파이프라인 스케줄링 방법을 제안한다. 확산 모델은 학습 가능한 부분(백본)과 학습되지 않는 부분(인코더 등)으로 구성되며, 자기 조건화 기법을 사용하는데, 이러한 특성을 고려하여 최적의 파이프라인 구성을 도출한다.
둘째, DiffusionPipe는 비학습 부분의 계산을 파이프라인 버블에 효율적으로 채워 넣는 기법을 제안한다. 기존 파이프라인 병렬 처리 방식에서는 버블이 많이 발생하지만, DiffusionPipe는 이 버블 시간을 비학습 부분의 계산으로 채워 넣어 장치 활용도를 크게 높인다. 이를 위해 비학습 부분을 효과적으로 분할하고 버블에 삽입하는 알고리즘을 개발했다.
셋째, DiffusionPipe는 비학습 부분에 포함된 실행 시간이 매우 긴 레이어를 처리하기 위해 부분 배치 처리 기법을 도입했다. 이를 통해 이러한 레이어도 파이프라인 버블에 효과적으로 삽입할 수 있다.
실험 결과, DiffusionPipe는 기존 데이터 병렬 처리 방식 대비 최대 1.28배, 기존 파이프라인 병렬 처리 방식 대비 최대 1.41배 빠른 학습 속도를 달성했다. 또한 파이프라인 버블을 거의 완전히 제거할 수 있었다.
Stats
안정 확산 모델 v2.1에서 비학습 부분의 실행 시간이 학습 부분의 순방향 및 역방향 실행 시간의 38~44% 차지
ControlNet v1.0에서 비학습 부분의 실행 시간이 학습 부분의 76~89% 차지
Quotes
"DiffusionPipe는 확산 모델의 구조적 특성과 학습 방법을 고려하여 최적의 파이프라인 구성을 도출한다."
"DiffusionPipe는 비학습 부분의 계산을 파이프라인 버블에 효율적으로 채워 넣어 장치 활용도를 크게 높인다."
"DiffusionPipe는 부분 배치 처리 기법을 도입하여 실행 시간이 매우 긴 비학습 레이어도 효과적으로 처리할 수 있다."