PyTorch와 Meta:40개 이상의 최적화로 유효 훈련 시간 90% 초과 달성, MegaCache가 PT2 컴파일 40% 단축
Meta는 2025년 말까지 추천 모델의 오프라인 훈련에 대해 유효 훈련 시간(ETT) 90% 초과를 달성한 방법을 발표했습니다. 방법에는 PyTorch 에코시스템의 40개 이상의 새 최적화, PT2 컴파일 시간을 40% 단축하는 MegaCache, 작업당 30분을 절약하는 독립형 모델 발행, 비동기 체크포인트가 포함됩니다. 개선 사항은 PyTorch와 TorchRec을 통해 오픈소스화되었습니다.
이 기사는 AI가 1차 출처를 기반으로 생성했습니다.
Meta의 16명의 엔지니어 팀과 PyTorch 프로젝트 협력자들이 2026년 4월 17일에 2025년 말까지 추천 모델의 오프라인 훈련에 대해 유효 훈련 시간(ETT) 90% 초과를 달성한 방법에 대한 상세한 게시물을 발표했습니다. Ruilin Chen, Yuzhen Huang, Hang Qi 등의 공동 저작으로 40개 이상의 구체적인 최적화 목록을 포함합니다.
ETT란 무엇이며 왜 중요한가
Meta는 새로운 지표——유효 훈련 시간(ETT%)——를 도입했습니다. 이는 실제로 생산적인 훈련에 사용되는 총 엔드투엔드 wall time의 백분율을 측정합니다.
공식은 단순합니다:
ETT% = 100% - 유휴% - 실패%
Meta는 ETT를 세 가지 하위 지표로 분해합니다:
- 시작 시간 — 하드웨어 할당에서 첫 번째 배치 소비까지
- 복구 시간 — 장애 후 재시작 및 재개에 걸리는 시간
- 실패 횟수 — 인프라 관련 중단의 총 수
이것이 중요한 이유: 클래식 지표인 **모델 FLOPs 활용률(MFU)**은 훈련 내부의 효율성만 측정하지만 그 전, 중, 후의 모든 것을 무시합니다. 확장 시 “중간” 단계가 지배적인 비용이 됩니다.
MegaCache:컴파일 시간 40% 감소
주요 혁신 중 하나는 MegaCache——PT2(PyTorch 2.0) 구성 요소를 위한 통합 캐싱 시스템입니다:
- Inductor 캐시
- Triton bundler
- AOT Autograd
- Dynamo PGO
- 자동 조정 설정
Meta는 이것들을 단일 캐시로 통합하여 한 번 수행한 후 다음 작업에서 재사용합니다.
결과: 평균 PT2 컴파일 시간 약 40% 감소. 추가 이점은 원격 서버에 대한 요청 감소, 더 빠른 모델 설정, 재시도된 작업을 위한 더 신뢰할 수 있는 시작입니다.
체크포인트 관리
체크포인트는 복구에 중요하지만 일반적으로 훈련을 차단합니다. Meta는 세 가지 방향으로 작업했습니다:
비동기 체크포인트:
- 체크포인트의 CPU 메모리 복사본 생성
- 메인 트레이너는 백그라운드 프로세스가 업로드하는 동안 계속
- GPU 유휴 시간 감소
PyTorch 네이티브 스테이징:
- 커스텀 C++ 스테이징 구현 대체
- 새 PyTorch 네이티브 API 사용
- 트레이드오프: 트레이너 메모리 증가로 블로킹 시간 감소
간격 최적화:
- 미저장 훈련 시간 = (실패 횟수) × (체크포인트 간격) / 2
- 체크포인트 저장 블로킹 시간 = (훈련 루프 시간) / (체크포인트 간격) × (체크포인트당 블로킹 시간)
- 최적 간격은 총 손실 시간을 최소화
독립형 모델 발행:30분 절약
클래식 흐름: 훈련이 완료된 후 동일한 GPU가 모델 발행(프로덕션 형식으로 내보내기, 검증, 업로드)을 수행합니다.
Meta는 발행을 훈련에서 분리했습니다:
- 훈련이 앵커 체크포인트 생성
- 별도의 CPU 기반 독립형 작업이 병렬로 모델 발행
결과: 작업당 약 30분 절약. 매일 수백 개의 훈련을 실행하는 회사에게는 매월 수백 시간이 됩니다.
트레이너 초기화
통신 최적화:
- 불필요한 프로세스 그룹 생성 제거
- 메타데이터를 위한 불필요한 all_gather 호출
- 대신 샤딩 계획 브로드캐스트 후 전역 랭크 메타데이터를 로컬로 구축
파이프라인 최적화:
- 독립적인 초기화 단계 병렬화
- “빠른 배치” 데이터를 사용하여 DPP 워밍업과 PT2 컴파일 겹침
- 긴 데이터 로딩을 가진 기반 모델에 특히 유용
장애 감소
Meta는 두 가지 주요 장애 원인을 확인했습니다:
- 작업 선점 (동시 작업이 많을수록 = 충돌이 많음)
- 서비스 회귀
대응은 두 갈래: 새 스케줄링 알고리즘을 위한 인프라 팀과의 협력 + TTS, TTR, 미저장 훈련 시간, 체크포인트 저장 시간을 실시간으로 표시하는 구성 요소 수준 관찰성 대시보드.
오픈소스 기여
PyTorch 2.0 개선:
- 동적 형상 처리를 위한
TORCH_COMPILE_DYNAMIC_SOURCES - MegaCache 엔드투엔드 캐싱 시스템
- PyTorch 네이티브 스테이징 API
TorchRec 개선:
- 샤딩 계획 최적화 (all_gather 오버헤드 제거)
- 통신 최적화 패턴
모든 것이 다른 조직의 복제를 위해 PyTorch 문서에서 제공됩니다.
업계에 대한 메시지
Meta 게시물에서 가장 깊은 교훈은 최적화 패러다임의 전환입니다: “각 반복을 어떻게 더 빠르게 훈련하는가”에서 “실제 훈련이 아닌 모든 것을 어떻게 줄이는가”로. 커뮤니티가 MFU와 처리량 향상에 집중하는 동안, Meta는 10% ETT 향상이 10% MFU 향상만큼 가치 있다는 것을——그리고 종종 엔지니어링을 통해 훨씬 쉽게 달성할 수 있다는 것을——보여줍니다.
AI 훈련을 확장하는 조직에게 ETT는 MFU만큼 중요한 지표가 됩니다.
자주 묻는 질문
- ETT 지표는 정확히 무엇을 의미합니까?
- 유효 훈련 시간은 실제로 생산적인 훈련(새 데이터 소비)에 사용되는 총 엔드투엔드 wall time의 백분율입니다. ETT% = 100% - 유휴% - 실패%. 목표는 초기화, 오류 복구, 체크포인트에 소비되는 시간을 최소화하는 것입니다.
- 어떤 PyTorch 도구가 오픈소스화되었습니까?
- 동적 형상을 위한 TORCH_COMPILE_DYNAMIC_SOURCES, MegaCache 엔드투엔드 캐싱 시스템, 비동기 체크포인트를 위한 PyTorch 네이티브 스테이징 API, TorchRec 샤딩 최적화.
- 현대 훈련에서 가장 큰 병목은 무엇입니까?
- 더 이상 FLOPs 활용률이 아니라 정상 상태 훈련 밖의 '중간' 단계——시작, 체크포인트, 장애 복구입니다. 이 단계에서 GPU가 유휴 상태이며 이는 확장 시 지배적인 비용이 됩니다.