TL;DR
멀티모달 사전학습에서는 전체 토큰 수가 같은 Pack이라도 이미지 토큰 수에 따라 Vision Encoder 계산 시간이 달라져 GPU 간 Straggler 대기가 발생합니다. 팀네이버는 먼저 이미지 토큰 예산을 추가한 2D Packing을 시험했지만 패킹 효율이 99%에서 66%로 떨어져, 이미 채워진 Pack을 GPU 간에 교환하는 재배치 방식으로 전환했습니다. 각 GPU의 이미지 부하를 All-gather로 공유하고 Micro-step마다 Pack을 균등하게 배치한 뒤, CUDA stream과 백그라운드 스레드로 다음 Pack의 통신을 현재 계산과 겹쳤습니다. 동기 재배치의 처리량 개선은 1.7%였지만 Overlap을 적용하자 13.3%로 높아졌고, 네 영역을 합친 전체 파이프라인에서는 30B MoE VLM 기준 50.2%의 향상이 기록됐습니다. 계산 담당과 순서만 바꾸고 데이터와 모델 가중치는 유지해 Loss 곡선은 동일했습니다.
빠른 이해
새로운 점
이미지 토큰 수를 기준으로 Pack을 GPU 간에 재배치하고 CUDA stream 기반 Overlap으로 통신 비용을 숨겨 13.3%의 처리량 향상을 얻은 점입니다.
핵심 메커니즘
이미지와 텍스트를 포함한 샘플을 Greedy Bin-packing으로 고정 길이 Pack에 채운 뒤 각 Pack의 이미지 토큰 수를 GPU 간에 All-gather합니다. 모든 GPU가 동일한 규칙으로 Micro-step별 부하가 균등해지는 배치를 계산하고, 이미지 토큰이 많은 Pack과 적은 Pack을 GPU 사이에서 교환합니다. 현재 Micro-batch의 Forward와 Backward가 진행되는 동안 백그라운드 스레드와 CUDA stream이 다음 Micro-batch의 Pack을 미리 이동해 재배치 통신을 계산 시간과 겹칩니다. 데이터와 모델 가중치의 내용은 바뀌지 않고 계산 담당 GPU와 시점만 바뀌므로 Gradient 합산과 Loss 곡선은 유지되며, 동기 재배치의 1.7% 개선이 Overlap 적용 후 13.3% 개선으로 확대됩니다.
핵심 수치
- Llama 4 사전학습 GPU 시간: H100 누적 738만 시간- Meta가 2025년 모델 카드에 공개한 자료
- Greedy Bin-packing 효율: 8K 시퀀스에서 99.4%- 전체 토큰 중 실제 데이터가 차지하는 비율
- 2D Packing 효율: 99% -> 66%- 이미지 토큰 예산을 추가했을 때
- Vision Encoder Forward 시간: 이미지 3,000 토큰 Pack 900ms, 500 토큰 Pack 200ms- 동일한 8,192 토큰 Pack 간 비교
- Pack 재배치 처리량 개선: 동기 방식 1.7%, Overlap 적용 비동기 방식 13.3%- 프로덕션 규모 실험
- 전체 학습 파이프라인 처리량 개선: 30B MoE VLM 기준 50.2%- 저장소 I/O, 시퀀스 패킹, Vision Encoder, 분산 학습 최적화 합산
섹션별 상세
대규모 멀티모달 학습의 비용과 병목

멀티모달 모델의 계산 구조


Sequence Packing의 효율과 한계

이미지 토큰이 만드는 GPU 대기


2D Packing의 실패와 분산 재배치


통신을 계산 뒤에 숨긴 Overlap

프로덕션 규모 검증과 확장성
용어 해설
- 데이터 병렬(Data Parallelism)
- — 학습 데이터를 여러 조각으로 나누고 여러 GPU가 동시에 계산한 뒤 Gradient를 All-reduce로 합산하는 분산 학습 방식입니다. 모든 GPU가 동일한 가중치를 유지하므로 각 장치의 처리 속도가 달라지면 가장 늦은 장치가 전체 학습 속도를 결정합니다.
- Gradient Accumulation
- — GPU 메모리보다 큰 Global Batch를 여러 Micro-batch로 나누어 순차 계산하고, 각 단계의 Gradient를 누적한 뒤 가중치를 한 번 업데이트하는 기법입니다. 여러 번 나누어 계산해도 같은 Global Batch의 Gradient를 합산하므로 업데이트 결과는 한 번에 처리한 경우와 같게 유지됩니다.
- Sequence Packing
- — 길이가 다른 학습 샘플을 고정 길이 시퀀스 안에 이어 담아 Padding 공간을 줄이는 데이터 구성 방식입니다. 이 글에서는 Greedy Bin-packing으로 이미지 샘플을 자르지 않고 8K 시퀀스의 99.4%를 실제 토큰으로 채워 LLM 연산 낭비를 줄였습니다.
- Straggler 문제(Straggler Problem)
- — 분산 학습에서 특정 GPU의 계산이 늦어 나머지 GPU가 동기화 지점에서 대기하는 병목입니다. 멀티모달 학습에서는 GPU마다 이미지 토큰 수가 달라 Vision Encoder 계산 시간이 달라지고, 마지막 Barrier가 가장 느린 장치에 맞춰지면서 대기 시간이 커집니다.
- 계산과 통신의 중첩(Computation-communication Overlap)
- — 현재 Micro-batch를 계산하는 동안 백그라운드 스레드와 CUDA stream으로 다음 Micro-batch의 GPU 간 데이터 이동을 미리 처리하는 실행 방식입니다. 계산이 끝날 때 다음 Pack이 도착하도록 통신을 숨겨 재배치 비용이 학습 시간에 추가되는 현상을 줄입니다.
기술
- HyperCLOVA X CLIP
- Vision Encoder
- LLM
- VLM
- Data Parallelism
- Gradient Accumulation
- Sequence Packing
- Greedy Bin-packing
- 2D Packing
- All-reduce
- All-gather
- CUDA stream
- Computation-communication Overlap
- B200
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.