본문으로 건너뛰기
PyTorch조회 1

Meta의 PyTorch 기반 대규모 모델 학습 효율 최적화 사례: 유효 학습 시간(ETT%) 극대화

Meta가 PyTorch 기반 대규모 모델 학습 시 발생하는 오버헤드를 줄여 유효 학습 시간(ETT%)을 90% 이상으로 개선한 기술적 방법론과 성과를 공유합니다.

섹션별 상세

01
대규모 학습 인프라의 효율성을 정량화하기 위해 유효 학습 시간(ETT%) 지표를 도입했습니다. ETT%는 전체 벽시계 시간(Wall Time) 대비 실제 데이터 학습 시간의 비율로 정의되며, 하드웨어 할당 후 학습 시작까지의 시간(TTS)과 장애 복구 시간(TTR)을 주요 관리 대상으로 삼습니다. 이를 통해 인프라의 유휴 상태와 안정성을 동시에 모니터링하고 최적화 우선순위를 결정합니다.
학습 주기의 단계별 구성과 L1/L2 지표를 보여주는 다이어그램입니다.
Diagram스케줄링, 하드웨어 설정, 컴파일, 유효 학습, 종료 등 전체 E2E 과정을 시각화합니다. TTS(Time to Start)와 TTR(Time to Recover)이 어느 구간에서 발생하는지 명확히 정의합니다.
다양한 기술 적용에 따른 학습 시작 시간(Time to Start)의 감소 추이를 보여주는 그래프입니다.
Chart베이스라인 156.5분에서 각종 최적화 기술을 거쳐 65.5분까지 단축되는 과정을 수치로 보여줍니다. 체크포인트 로딩과 컴파일 최적화가 큰 비중을 차지함을 알 수 있습니다.
02
트레이너 초기화 단계에서 불필요한 통신을 제거하고 프로세스를 파이프라인화하여 시작 속도를 개선했습니다. 기존에는 샤드 메타데이터를 구축하기 위해 수많은 all_gather 호출이 발생했으나, 로컬 메타데이터를 활용하는 방식으로 변경하여 통신 오버헤드를 줄였습니다. 또한 데이터 로딩(DPP)과 PyTorch 2.0 컴파일을 병렬로 실행하여 대규모 모델의 초기 대기 시간을 단축했습니다.
데이터 로딩과 PT2 컴파일의 병렬화 전후 비교 다이어그램입니다.
Diagram기존의 순차적 실행 방식에서 Fast Batch를 활용해 컴파일을 조기에 시작하는 병렬 방식으로의 전환을 설명합니다. 이를 통해 실제 학습 시작 전의 대기 시간을 획기적으로 줄이는 원리를 보여줍니다.
03
PyTorch 2.0의 컴파일 시간과 재컴파일 오버헤드를 줄이기 위한 최적화를 수행했습니다. 동적 셰이프(Dynamic Shapes)로 인한 잦은 재컴파일을 방지하기 위해 파라미터를 동적으로 마킹하는 도구를 개발하고, 여러 캐시 요소를 통합한 MegaCache를 도입하여 컴파일 시간을 약 40% 절감했습니다. 이는 특히 분산 환경이나 클라우드 환경에서 재시도 작업의 신뢰성을 높이는 데 기여했습니다.
04
체크포인트 저장 시 발생하는 GPU 차단 시간을 최소화하기 위해 비동기 체크포인팅 기술을 적용했습니다. 체크포인트를 CPU 메모리에 먼저 복사한 뒤 백그라운드에서 업로드를 진행함으로써 트레이너가 즉시 학습 루프로 복귀할 수 있게 했습니다. 또한 장애 발생 시 손실되는 학습량을 최소화하기 위해 실패율에 따른 최적의 체크포인트 저장 간격을 산출하여 적용했습니다.
체크포인트 저장 간격과 낭비되는 학습 시간(WTT%) 사이의 관계를 보여주는 그래프입니다.
Chart저장 간격이 너무 짧으면 차단 시간이 늘어나고, 너무 길면 실패 시 손실량이 커지는 트레이드오프 관계를 보여줍니다. 특정 조건에서 약 15분의 최적 저장 간격이 존재함을 시사합니다.
05
모델 퍼블리싱 과정을 학습 프로세스에서 분리하여 종료(Shutdown) 시간을 약 30분 단축했습니다. 기존에는 학습 종료 직전 GPU를 점유한 상태에서 추론용 모델 최적화 작업을 수행했으나, 이를 별도의 CPU 기반 독립 실행형 파이프라인으로 전환했습니다. 이를 통해 고비용 자원인 GPU의 유휴 점유 시간을 줄이고 전체적인 자원 활용 효율을 높였습니다.

용어 해설

유효 학습 시간(Effective Training Time (ETT%))
전체 E2E 실행 시간 중 실제 모델 학습(데이터 소비)에 사용된 시간의 비율입니다. 초기화, 체크포인팅, 장애 복구 등 오버헤드를 제외한 순수 학습 효율을 측정하는 핵심 지표입니다.
체크포인팅(Checkpointing)
학습 중인 모델의 상태(파라미터, 옵티마이저 등)를 특정 시점에 저장하는 과정입니다. 시스템 장애 시 처음부터 다시 시작하지 않고 마지막 저장 지점부터 복구할 수 있게 해줍니다.
샤딩 계획(Sharding Plan)
대규모 모델의 텐서를 여러 GPU 장치에 분산 배치하는 전략입니다. 효율적인 샤딩 계획은 초기화 시 통신 오버헤드를 줄이고 메모리 활용도를 최적화하는 데 필수적입니다.
동적 셰이프(Dynamic Shapes)
입력 데이터의 크기나 차원이 실행 시마다 변하는 특성입니다. PyTorch 2.0 컴파일러에서 잦은 재컴파일을 유발하는 주요 원인이며, 이를 최적화하는 것이 학습 시작 속도 개선의 핵심입니다.

기술

  • PyTorch 2.0
  • TorchRec
  • Triton
  • MegaCache
  • Async Checkpointing

활용 사례

  • 대규모 파운데이션 모델 학습
  • 분산 학습 인프라 효율화
  • 학습 비용 최적화
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 04. 18.수집 2026. 04. 18.출처 타입 RSS

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