Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Pipeline Parallelism

파이프라인 병렬 처리는 모델의 연속된 레이어를 서로 다른 GPU에 배치하고 마이크로배치를 순차적으로 전달하므로, 단일 GPU보다 큰 모델도 학습할 수 있습니다.

파이프라인 병렬화는 분산 학습 기법으로, 신경망을 깊이 방향으로 여러 연속 레이어 그룹인 스테이지로 나누고 각 스테이지를 별도의 GPU에 배치한 뒤 한 스테이지의 활성값을 다음 스테이지로 전달합니다. 모든 GPU를 계속 사용하기 위해 각 배치를 더 작은 마이크로배치로 나누고, 조립 라인의 부품처럼 스테이지들을 통과하게 합니다. 이를 레이어 간 모델 병렬화라고도 합니다. Yanping Huang이 이끈 Google 연구진은 2018년 11월 GPipe를 통해 마이크로배치 접근 방식을 널리 알렸습니다. 연구진은 5억 5,700만 개의 파라미터를 가진 AmoebaNet을 학습하여 ImageNet에서 top-1 정확도 84.4%를 달성했으며, 60억 개의 파라미터와 128개 레이어를 갖춘 다국어 번역용 트랜스포머도 학습했습니다.

마이크로배치와 파이프라인 버블#

한 번에 배치 하나만 처리하면 한 스테이지만 작업하고 나머지는 대기합니다. 스테이지 2는 스테이지 1이 끝나야 시작할 수 있으며, 역전파 중에는 순서가 반대로 바뀝니다. 마이크로배치를 사용하면 스테이지 1이 첫 번째 마이크로배치를 스테이지 2에 넘기는 즉시 두 번째 마이크로배치를 시작할 수 있습니다. 파이프라인을 채우고 비우는 동안 남는 유휴 슬롯을 버블이라고 합니다. 스테이지 4개와 마이크로배치 6개를 사용하는 GPipe 방식의 순전파 스케줄을 출력하면 다음과 같은 모양이 됩니다.

stages, micro_batches = 4, 6
steps = micro_batches + stages - 1  # time steps until the last micro-batch leaves the last stage

for stage in range(stages):
    row = ""
    for t in range(steps):
        m = t - stage  # stage s starts micro-batch m once stage s-1 hands it over
        row += f" F{m}" if 0 <= m < micro_batches else "  ."
    print(f"GPU {stage}:{row}")

# Every stage idles for stages - 1 of the steps, in the forward and again in the backward pass
bubble = (stages - 1) / steps
print(f"Idle fraction: {bubble:.0%}")

출력은 계단 형태입니다. GPU 0은 처음 아홉 단계 중 여섯 단계에서 F0부터 F5까지 순전파를 수행한 뒤 대기하고, GPU 3은 세 단계 동안 대기한 다음 F0를 시작하며, 마지막 줄은 Idle fraction: 33%입니다. 버블 비율은 (스테이지 수 − 1) / (마이크로배치 수 + 스테이지 수 − 1)이므로, 동일한 4개 스테이지를 통과하는 마이크로배치를 24개로 늘리면 버블이 11%로 줄어듭니다. 모든 마이크로배치의 그래디언트는 단일 옵티마이저 단계 전에 합산되며, 이는 그래디언트 누적과 동일한 계산이므로 전체 배치로 학습할 때와 같은 업데이트가 이루어집니다. GPipe는 각 스테이지 내의 활성값도 버리고 역전파 중에 다시 계산하는데, 이는 그래디언트 체크포인팅의 한 형태입니다.

파이프라인 스케줄#

이후의 스케줄은 메모리 사용량을 줄이거나 버블을 축소하기 위해 동일한 작업의 순서를 바꿉니다.

  • 1F1B: 2018년 PipeDream 시스템에서 도입되었으며, 파이프라인이 가득 찬 뒤 각 스테이지에서 순전파 마이크로배치 하나와 역전파 마이크로배치 하나를 번갈아 처리합니다. 그러면 각 스테이지는 모든 마이크로배치가 아니라 스테이지 수만큼의 마이크로배치에 대해서만 활성값을 보유합니다.
  • 인터리브 1F1B: 각 GPU에 여러 개의 더 작고 서로 인접하지 않은 스테이지를 할당합니다. NVIDIA의 Megatron-LM 팀은 이 방식으로 처리량이 10% 이상 향상되었다고 보고했으며, 3,072개 GPU에서 1조 파라미터 모델을 502 petaFLOP/s로 학습해 최고 성능의 52%를 달성했습니다.
  • 제로 버블: 역전파를 두 부분으로 나눕니다. 이전 스테이지가 기다리는 스테이지 입력에 대한 그래디언트와, 나중에 유휴 슬롯을 채울 수 있는 가중치 그래디언트입니다. 메모리 예산이 비슷한 조건에서 처리량이 1F1B보다 최대 23% 높습니다.

PyTorch는 파이프라이닝 API에서 이를 ScheduleGPipe, Schedule1F1B, ScheduleInterleaved1F1B, ScheduleInterleavedZeroBubble, ScheduleDualPipeV로 제공합니다. 이 API는 모델을 스테이지로 나누기도 합니다. DualPipe는 DeepSeek-V3에서 비롯되었으며, DeepSeek-V3 팀은 16개의 파이프라인 스테이지를 사용해 계산과 통신을 겹쳐 실행하고 버블을 줄였습니다.

파이프라인 병렬화의 적용 분야#

스테이지는 마이크로배치마다 경계에서 활성값만 한 번씩 교환하므로, 파이프라인 병렬화는 모든 레이어 내부에서 통신하는 텐서 병렬화보다 서버 간 연결 속도가 느린 환경에 더 적합합니다. 따라서 대규모 학습에서는 두 방식을 함께 사용합니다. Meta는 Llama 3 405B를 학습할 때 각 8-GPU 서버 내에서 8방향 텐서 병렬화를, 서버 간에는 16개 파이프라인 스테이지를, 64~128개 복제본 간에는 데이터 병렬화를 사용했습니다. vLLM과 같은 서빙 엔진도 대규모 언어 모델(LLM)에 노드가 두 개 이상 필요할 때 동일한 분할 방식을 사용합니다. 가장 느린 스테이지가 전체 파이프라인의 속도를 결정합니다. 또한 언어 모델의 첫 번째와 마지막 스테이지에는 임베딩 테이블과 출력 레이어도 포함되므로, Llama 3에서는 두 스테이지에 각각 트랜스포머 레이어를 하나씩 적게 배정했습니다.

관련 접근 방식은 작업을 다른 방식으로 분할합니다.

  • 텐서 병렬화: 각 레이어 내부의 가중치 행렬을 분할하므로 모든 GPU가 모든 레이어에 참여합니다.
  • 컨텍스트 병렬화: 긴 입력 시퀀스를 여러 GPU에 나눕니다.
  • 분할 학습: 네트워크를 깊이 방향으로 나누는 방식이지만 조직 간에 분할하므로, 데이터 소유자가 후속 레이어를 실행하는 서버에 원시 데이터를 보내지 않습니다.

데이터 병렬화는 모든 GPU에 모든 레이어를 유지하고 대신 배치를 나눕니다. 모델이 단일 장치에 들어가는 경우에는 이 방식만으로 충분합니다. Ultralytics YOLO26은 여러 GPU에서 이 방식으로 학습합니다. 학습 모드에서 device=[0, 1, 2, 3] 및 batch=64를 사용하면 각 GPU가 전체 객체 탐지 모델로 이미지 16개를 처리하고, PyTorch DistributedDataParallel은 각 역전파가 끝난 후 GPU 간 그래디언트를 평균화합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요