본문으로 건너뛰기
NAVER CLOVA조회 2

이미지 토큰 재배치로 멀티모달 학습 병목 완화

이미지 토큰 부하를 GPU 사이에 재배치하고 통신을 계산과 겹쳐 30B MoE VLM 처리량을 13.3% 높였습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

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, 분산 학습 최적화 합산

섹션별 상세

01

대규모 멀티모달 학습의 비용과 병목

소버린 AI와 멀티모달 모델의 규모가 커지면서 GPU 인프라를 얼마나 효율적으로 활용하는지가 학습 비용과 개발 속도를 좌우합니다. Meta가 2025년 모델 카드에 공개한 Llama 4 사전학습에는 H100 GPU 누적 738만 시간이 투입됐고, 시간당 2.5~3달러로 환산하면 GPU 비용만 약 1,850만~2,200만 달러에 이릅니다. 팀네이버는 자체 클러스터에서 대규모 학습을 수행하는 과정에서 GPU 간 연산 부하 불균형과 Straggler 문제를 발견했고, 30B MoE 멀티모달 모델 기준 전체 학습 처리량을 50.2% 높였습니다. 이 가운데 이미지 토큰 불균형을 해결한 패킹과 재분배만으로 13.3%의 처리량 향상이 나왔습니다.
Qwen2.5-VL, Qwen3-VL, Llama 4 Scout / Maverick, Kimi K2.5의 공개 시점과 멀티모달 사전학습 규모를 비교한 표입니다.
Chart표는 최근 멀티모달 모델의 사전학습 규모가 수조 토큰에 이른다는 배경을 수치로 정리합니다. 본문에서 대규모 GPU 인프라의 활용 효율이 중요한 이유를 뒷받침하는 자료입니다.
02

멀티모달 모델의 계산 구조

VLM은 언어 처리를 담당하는 LLM과 이미지 정보를 변환하는 Vision Encoder가 결합된 구조이며, 팀네이버는 HyperCLOVA X CLIP Vision Encoder를 멀티모달 모델에 적용합니다. 입력 이미지와 텍스트는 각각 이미지 임베딩과 텍스트 임베딩으로 변환된 뒤 하나의 시퀀스로 LLM에 들어가고, LLM 연산량은 두 종류 토큰의 총합에 따라 결정됩니다. 반면 Vision Encoder 연산량은 이미지 토큰 수에만 비례하므로 같은 전체 시퀀스 길이라도 이미지가 많은 Pack을 받은 GPU가 더 오래 계산합니다. Data Parallelism에서는 각 GPU가 Gradient를 계산한 뒤 All-reduce로 합산하고, Gradient Accumulation에서는 여러 Micro-batch의 Gradient를 모아 Global Batch 단위로 한 번 업데이트하므로 계산 순서를 바꿔도 합산 결과 자체는 달라지지 않습니다.
HyperCLOVA X 32B Think를 중심으로 Text Tokenizer, Vision Encoder, Adapter와 Transformer 구조가 연결되는 VLM 처리 흐름을 나타낸 다이어그램입니다.
Diagram이미지는 이미지가 Vision Encoder를 거쳐 이미지 임베딩으로 변환되고 텍스트가 Text Tokenizer를 거쳐 LLM 입력에 합쳐지는 구조를 나타냅니다. Vision Encoder의 이미지 처리와 LLM의 통합 토큰 처리가 서로 다른 계산량 기준을 갖는다는 본문의 핵심 전제를 시각화합니다.
Data Parallelism과 Gradient Accumulation이 GPU 4개와 Micro-batch 4개를 조합해 16개 Gradient를 한 번에 가중치 업데이트에 반영하는 과정을 나타낸 그림입니다.
Diagram가로 방향으로 각 GPU가 Micro-batch를 순차 처리하고 세로 방향으로 여러 GPU가 서로 다른 Micro-batch를 동시에 계산합니다. 모든 Gradient를 All-reduce로 합산한 뒤 한 번 업데이트하므로 Micro-batch의 배치 순서를 바꿔도 결과가 유지된다는 설명을 뒷받침합니다.
03

Sequence Packing의 효율과 한계

길이가 다른 학습 샘플을 그대로 배치에 넣으면 가장 긴 샘플에 맞춘 Padding이 발생해 GPU가 빈 공간까지 계산합니다. 1,200~4,200 토큰 샘플을 배치로 묶은 예시에서는 Padding 비율이 약 40%였고, 이미지가 시퀀스 경계에서 잘릴 수 있는 Stream 방식도 멀티모달 데이터에 적합하지 않았습니다. 팀네이버는 온전한 샘플을 고정 길이 시퀀스에 채우는 Greedy Bin-packing을 사용해 8K 시퀀스 길이에서 99.4%의 패킹 효율을 달성했습니다. 그러나 이 방식은 전체 토큰 수만 맞추므로 이미지 토큰 수까지 균등하게 만들지는 못했고, 텍스트 중심 학습에서는 드러나지 않던 GPU별 Vision Encoder 부하 차이를 만들었습니다.
Non-packing 방식의 Padding 낭비와 Greedy bin-packing 방식의 고정 길이 시퀀스 채움 효율을 비교한 도식입니다.
ChartNon-packing에서는 4,200 토큰 샘플에 맞추면서 짧은 샘플의 Padding 비율이 38%, 52%, 71%까지 커집니다. Greedy bin-packing은 S1부터 S6까지 여러 샘플을 고정 길이 시퀀스에 이어 담아 97.7%와 98.9%의 채움률을 기록하고 Padding을 줄입니다.
04

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

두 Pack의 전체 길이가 각각 8,192 토큰으로 같아도 한 Pack에 이미지 토큰 3,000개, 다른 Pack에 500개가 들어가면 Vision Encoder 계산량은 크게 달라집니다. 실제 측정에서 이미지 토큰 3,000개 Pack의 Vision Encoder Forward에는 900ms가 걸렸고, 500개 Pack에는 200ms가 걸려 시작부터 700ms의 차이가 났습니다. 한 학습 스텝은 Vision Encoder Forward, LLM Forward, LLM Backward, Vision Encoder Backward 순서로 진행되며, Backward가 보통 Forward의 약 2배이므로 이미지 부하 차이는 뒤쪽에서 다시 확대됩니다. Gradient 동기화 Barrier가 모든 연산의 끝에 있기 때문에 먼저 끝난 GPU는 가장 느린 GPU를 기다리고, 시뮬레이션에서는 LLM과 GPU 규모가 커질수록 이 대기 낭비가 전체 학습 시간의 50%에서 80% 가까이 상승했습니다.
전체 토큰 수가 8,000으로 같은 GPU 0과 GPU 1의 Pack이 이미지 토큰 3,000 대 500으로 달라져 무게가 달라지는 상황을 표현한 그림입니다.
Diagram1D Packing은 이미지 토큰과 텍스트 토큰의 구성비를 구분하지 않아 전체 토큰 수만 맞춥니다. 그 결과 이미지가 많은 Pack은 Vision Encoder 계산 부하가 커지고 이미지가 적은 Pack은 상대적으로 가벼워져 GPU 간 실행 시간이 달라집니다.
이미지 토큰이 많은 Pack과 적은 Pack의 차이가 Vision Encoder Forward 시간과 전체 학습 스텝의 동기화 대기로 이어지는 과정을 시간축으로 나타낸 그림입니다.
Chart이미지 토큰이 많은 GPU의 Vision Encoder Forward는 900ms, 적은 GPU는 200ms로 나타나며 700ms의 초기 격차가 발생합니다. LLM 구간은 GPU 간 길이가 같지만 Vision Encoder Backward가 뒤에서 다시 실행되고 마지막 Barrier에서 동기화되므로 먼저 끝난 GPU가 대기하게 됩니다.
05

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

첫 번째 해결책은 전체 토큰 수뿐 아니라 이미지 토큰 수에도 예산을 두는 2D Packing이었지만, 이미지가 많은 샘플을 제외하는 과정에서 고정 길이 시퀀스를 채우지 못했습니다. 실제 데이터로 시뮬레이션한 결과 패킹 효율은 99%에서 66%로 떨어졌고, 후보 Buffer를 수천 개로 늘려도 이미지가 거의 없는 샘플이 부족해 빈 공간이 남았습니다. 이에 따라 이미 99% 채워진 Pack을 다시 만들지 않고, 각 GPU의 Pack별 이미지 토큰 수를 All-gather한 뒤 Micro-step마다 GPU 간 Pack을 교환하는 재배치 방식으로 전환했습니다. 무거운 Pack과 가벼운 Pack을 각 GPU에 균등하게 나누되 데이터와 모델 가중치, 학습 샘플 자체는 바꾸지 않으므로 Gradient 합산 결과와 Loss 곡선은 유지됩니다.
2D Packing에서 토큰 공간은 남아 있어도 이미지 예산이 먼저 소진되어 후보 샘플을 추가하지 못하고 빈 공간이 발생하는 상황을 나타낸 도식입니다.
Diagram각 Pack은 파란색 토큰 공간이 남아 있지만 노란색 이미지 예산이 가득 차 더 이상 샘플을 넣지 못합니다. 이미지가 대부분인 멀티모달 데이터에서는 이미지가 거의 없는 후보가 부족해 Buffer를 늘려도 빈 공간이 남고 Packing 효율이 떨어집니다.
Global Batch 내부에서 이미지 토큰 부하가 큰 Pack과 작은 Pack을 GPU 사이에 재배치해 각 Micro-batch의 부하를 균형화하는 과정을 나타낸 그림입니다.
Diagram재배치 전에는 각 GPU가 특정 Micro-batch에서 무거운 Pack을 맡아 Straggler가 발생합니다. 재배치 후에는 각 Step의 이미지 부하가 비슷해지고 Pack의 총 이미지 토큰 양은 그대로 유지되므로 Gradient 합산과 Loss에는 영향을 주지 않습니다.
06

통신을 계산 뒤에 숨긴 Overlap

Pack 재배치는 데이터 자체를 GPU 사이에서 이동시키므로 균형 계산만큼 통신 비용을 관리해야 했습니다. 구현에서는 현재 Micro-batch의 Forward와 Backward가 진행되는 동안 백그라운드 스레드와 CUDA stream이 다음 Micro-batch Pack을 미리 옮겨 계산과 통신을 겹쳤습니다. 재배치를 동기적으로 수행했을 때 처리량 개선은 1.7%에 그쳤지만, Overlap을 적용한 비동기 방식에서는 13.3%까지 상승해 통신 비용을 학습 시간에서 사실상 숨겼습니다. 수천 스텝의 장시간 학습에서는 백그라운드 스레드 정리 누락으로 Memory Leak도 발생했으며, 스트레스 테스트와 패치로 자원 누적을 해결한 뒤 속도가 안정화됐습니다.
Pack 재배치 통신을 계산과 순차 처리하는 방식과 다음 Micro-batch 재배치를 계산 중 백그라운드에서 수행하는 Overlap 방식을 비교한 도식입니다.
Diagram순차 방식에서는 Pack 재배치가 끝날 때까지 두 GPU가 기다려 계산과 통신 시간이 더해집니다. Overlap 방식에서는 현재 Micro-batch를 계산하는 동안 다음 Pack을 미리 재배치해 GPU가 계산을 끝낼 때 균형 잡힌 데이터가 도착하도록 만들고, 통신으로 인한 추가 대기를 줄입니다.
07

프로덕션 규모 검증과 확장성

최종 구현은 소규모 실험부터 실제 사전학습 환경까지 단계적으로 검증됐으며, 계산 순서만 바꾼 만큼 Loss 곡선은 동일하게 유지됐습니다. 검증에는 100여 개 데이터 소스와 2조 토큰 이상, 30B MoE VLM, B200 멀티 노드 환경이 사용됐고 패킹과 재배치 최적화로 같은 시간에 처리하는 학습량인 Throughput이 13.3% 증가했습니다. 전체 파이프라인에서는 저장소 I/O, 시퀀스 패킹, Vision Encoder, 분산 학습 네 영역을 합쳐 50.2%의 처리량 향상이 기록됐습니다. LLM 규모가 커질수록 전체 연산에서 Vision Encoder가 차지하는 비중이 줄어 개선 폭도 작아지지만, 수백만 GPU 시간이 필요한 사전학습에서는 두 자릿수 처리량 향상이 비용과 실험 여력을 바꾸는 규모입니다.

용어 해설

데이터 병렬(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 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

수집 2026. 08. 13.출처 타입 WEB

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.