[pytorch] CI: TIMM pretrained 모델 캐싱 기능 Revert
PR 링크: pytorch/pytorch#175095 상태: Merged | 변경: +3 / -51
들어가며
PyTorch의 Inductor 벤치마크는 TIMM(Torch Image Models) 라이브러리의 pretrained 모델을 사용합니다. PR #174581에서는 이 모델들을 공유 HuggingFace 캐시에 저장하여 반복 다운로드를 피하려 했으나, 문제가 발생하여 이 PR로 원복되었습니다.
핵심 코드 분석
1. 전용 캐시 디렉토리 로직 제거 (_linux-test.yml)
Before (PR #174581에서 추가된 코드):
if [[ "${TEST_CONFIG}" == *timm* ]]; then
TIMM_PIN="$(< .ci/docker/ci_commit_pins/timm.txt)"
TIMM_CACHE_DIR="${HF_CACHE}/timm_${TIMM_PIN}"
if [[ ! -d "${TIMM_CACHE_DIR}" ]]; then
mkdir -p "${TIMM_CACHE_DIR}"
chmod -R a+rwX "${TIMM_CACHE_DIR}"
fi
if [[ ! -f "${TIMM_CACHE_DIR}/.timm_cache_complete" ]]; then
export TRANSFORMERS_OFFLINE=0
export HF_DATASETS_OFFLINE=0
fi
fi
After (원복): 이 블록 전체가 제거되었습니다.
2. 사전 다운로드 로직 제거 (test.sh)
Before:
TIMM_PIN="$(< .ci/docker/ci_commit_pins/timm.txt)"
export HF_HOME="${HF_HOME}/timm_${TIMM_PIN}"
if [[ "${TRANSFORMERS_OFFLINE:-1}" == "0" ]]; then
python benchmarks/dynamo/timm_models.py --download-only \
&& touch "${HF_HOME}/.timm_cache_complete"
fi
After: 이 블록 전체가 제거되었습니다.
3. --download-only 옵션 및 관련 코드 제거 (common.py)
벤치마크 공통 코드에서 --download-only CLI 옵션과 관련 로직이 제거되고, --accuracy/--performance/--tolerance와 --training/--inference 인자가 다시 필수(required)로 변경되었습니다.
Before:
group.add_argument("--download-only", action="store_true",
help="Download all models and exit without running benchmarks.")
mode_group = parser.add_mutually_exclusive_group(required=False)
After:
# --download-only 제거됨
mode_group = parser.add_mutually_exclusive_group(required=True)
왜 이게 좋은가
Revert PR은 종종 "실패한 시도"로 보이지만, 실제로는 CI 안정성을 지키는 중요한 안전망입니다. 원래 PR의 의도(TIMM 모델 캐싱으로 CI 속도 향상)는 좋았지만, 공유 캐시의 동시성 문제나 권한 문제가 CI 환경에서 예상치 못한 실패를 일으켰습니다. 빠르게 revert하고 문제를 분석한 후 개선된 방식으로 재시도하는 것이 대규모 프로젝트에서의 올바른 접근입니다.
정리
- PR #174581(TIMM 캐싱)의 전체 원복
- pin별 캐시 디렉토리 생성,
--download-only옵션, 사전 다운로드 로직 모두 제거 - CLI 인자를 다시 필수(required=True)로 복원
- 51줄 삭제로 CI를 안정 상태로 복구
참고 자료
⚠️ 알림: 이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [pytorch] Inductor: CycleGAN CPU 벤치마크 expected accuracy 상태 업데이트
- 현재글 : [pytorch] CI: TIMM pretrained 모델 캐싱 기능 Revert
- 다음글 [triton] CLCTryCancel이 Async Proxy를 사용하도록 수정
댓글