AI Briefing

효과적인 학습 시간으로 training 효율 높이기

·2026.04.21 09:00

핵심 내용

Meta는 ETT%를 90% 이상으로 끌어올리며 학습 비효율을 크게 줄였다.

1 / 2

자세히 보기

**Effective Training Time(ETT%)**는 E2E wall time 중 실제로 새 데이터를 소비하며 학습한 비율이다. Meta는 이를 통해 학습 외 구간의 낭비를 측정하고, Time to Start, Time to Recover, Number of Failures라는 3개 L1 지표로 병목을 쪼개서 개선했다.

H2’24부터 fleet 전체의 ETT를 분석해 온 결과, 지난 몇 년간 40개 이상의 신규 기술을 도입했다. 그 결과 2025년 말에는 offline training 기준 ETT%를 90% 이상으로 끌어올렸다.

개선 영역은 크게 네 가지다.

  • Time to Start / Recover: trainer 초기화와 PT2 compilation을 줄여 시작 지연과 복구 시간을 낮췄다.
  • Checkpoint Management: checkpoint 저장으로 인한 학습 중단 시간을 줄이고, unsaved training time도 최소화했다.
  • Shutdown Time Optimizations: inference용 model publishing을 GPU가 아닌 CPU 머신에서 처리해 GPU 시간을 절약했다.
  • Failure Reduction and Observability: 스케줄링 시간과 preemption job ratio를 개선하고, 컴포넌트 단위 관측과 에러 분류 정교화를 통해 실패 빈도를 낮췄다.

trainer initialization은 device_init, process_group_init, preproc_creation, train_module_creation, init_plugins, pre_train, get_first_batch_data로 나뉜다. 여기서는 두 방향의 최적화가 핵심이었다.

  • Communication optimizations: 불필요한 process group 생성과 rank 간 통신을 줄였다. 예를 들어 shard metadata를 만들기 위해 반복하던 all_gather를 줄이고, sharding plan broadcast 뒤 각 rank가 로컬 메타데이터로 자신의 global rank 정보를 구성하도록 바꿔 sharding 시간을 줄였다.
  • Pipeline optimizations: 서로 의존성이 없는 하위 단계를 병렬화했다. 특히 PT2 compilation과 DPP warm-up이 첫 배치 데이터를 기다리며 지연되던 문제를, fast batch를 이용해 먼저 데이터를 확보하는 방식으로 완화해 컴파일을 더 일찍 시작하게 했다. 이 방식은 대형 Foundation Model처럼 데이터 로딩이 긴 작업에서 특히 효과적이다.

PT2 compilation은 세 축으로 개선했다.

  • Unnecessary recompilations 감소: dynamic shapes 때문에 반복되던 재컴파일을 줄이기 위해 H1’25에 TORCH_COMPILE_DYNAMIC_SOURCES를 만들었다. 코드를 크게 바꾸지 않고 파라미터를 dynamic으로 표시할 수 있고, integer와 regex까지 지원해 유연성을 높였다.
  • PT2 cache 개선: MegaCache로 inductor, triton bundler, AOT Autograd, Dynamo PGO, autotune 설정을 하나의 아카이브로 묶어 공유했다. 이로써 원격 서버 요청이 줄고, 모델 세팅 시간이 감소했으며, startup과 retry 안정성도 높아졌다. 이 작업으로 평균 PT2 compile time은 약 40% 줄었다.
  • Autotune config pruning: Triton kernel의 설정 탐색 비용이 커지자, 가장 시간이 많이 드는 kernel을 찾아 코드베이스에 최적 runtime config를 반영하는 방식으로 컴파일 시간을 낮췄다.

Checkpoint management도 중요한 축이었다. checkpoint는 모델 파라미터, optimizer 상태, 진행 상황을 저장하는 스냅샷이며, 장애가 나도 마지막 저장 지점에서 재개할 수 있게 해준다. 하지만 저장 과정은 GPU 메모리와 시간을 점유해 학습을 막을 수 있어, Async Checkpointing과 PyTorch Native Staging으로 blocking time을 줄였다.

핵심은 학습 품질과 복구 가능성을 유지하면서도, 실제 학습에 쓰이지 않는 시간을 체계적으로 깎아내는 데 있다. 결과적으로 Meta는 ETT%를 하나의 운영 지표로 삼아, 초기화·컴파일·저장·복구·종료 전 구간을 함께 최적화하는 방향으로 학습 효율을 끌어올렸다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.