C.W.K.
Stream
Lesson 06 of 12 · published

대용량 파일 처리

~10 min · lfs, large-files, s3

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

모델 weight 를 Git 에 넣지 마

Git 의 4 GB 모델 checkpoint 는 나쁨: clone 영원, push limit 가 단일 파일 >100 MB 거부, Git 이 binary 를 비효율 저장. 대안 사용.

옵션

  • Git LFS — 파일이 별도 LFS 저장소에 보관, repo 는 포인터 추적. 첫 GB 무료; 그 후 저장 tier 비용.
  • Hugging Face Hub — 모델 weight 전용, public 무료, 대용량 private 유료. 대부분 ML pipeline 에 native.
  • Cloud object 저장 (S3, R2, GCS) — CI 에서 자체 다운로드 step; scale 에 가장 쌈.
  • DVC — object storage 위 Git 같은 CLI; 코드와 함께 data 버전 추적.

CI 시사점

  1. 모델 weight 적극 cache. 매 run 4 GB 파일 pull 은 낭비.
  2. Git SHA 가 아니라 모델 버전 기반 키로 actions/cache 사용.
  3. 모델이 HF Hub 에 있으면 ~/.cache/huggingface 안 로컬 cache 경로로 huggingface_hub.snapshot_download 사용 — 그 경로가 actions/cache 타겟.

Code

Run 간 HF 모델 weight cache·yaml
      - name: Cache HF model
        uses: actions/cache@v4
        with:
          path: ~/.cache/huggingface
          # Key on the model name + revision, not the Git SHA
          key: hf-${{ vars.MODEL_NAME }}-${{ vars.MODEL_REVISION }}
          restore-keys: |
            hf-${{ vars.MODEL_NAME }}-

      - name: Pre-download model
        env:
          HF_TOKEN: ${{ secrets.HF_TOKEN }}
        run: |
          uv run python -c "
          from huggingface_hub import snapshot_download
          snapshot_download('${{ vars.MODEL_NAME }}', revision='${{ vars.MODEL_REVISION }}')
          "

External links

Exercise

Repo 의 Git 히스토리에 대용량 파일 있으면 어떻게 거기에 들어갔는지 audit. 사용 패턴에 따라 LFS, HF Hub, object storage 로 마이그레이션. 새 다운로드 경로 + cache 와 CI 여전히 동작 확인.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.