본문 바로가기
C.W.K.
Stream
Lesson 10 of 12 · published

모델 레지스트리

~10 min · registry, versioning, mlops

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

모델도 버전 관리가 필요해

'새 모델 학습함'이라는 말만으로는 정보가 턱없이 부족해. 어느 모델인지, 어떤 데이터를 썼는지, 어느 커밋에서 만들었는지, 어떻게 점수가 나왔는지 알아야 해. 모델 레지스트리가 바로 이 질문들에 답을 준단다.

흔히 쓰는 레지스트리

  • Hugging Face Hub — 기본은 퍼블릭이고 프라이빗 조직도 지원해.
  • MLflow — 오픈소스라서 직접 호스팅할 수 있어.
  • Weights & Biases (W&B) — 실험 추적부터 레지스트리까지 전부 지원해.
  • SageMaker Model Registry — AWS 환경에 딱 맞아.
  • Vertex AI Model Registry — GCP 환경에 딱 맞아.

기록해야 할 메타데이터

  1. 소스 SHA (모델을 만든 Git 커밋).
  2. 학습 데이터 버전 (DVC 버전, 데이터셋 SHA, S3 etag).
  3. 하이퍼파라미터.
  4. 홀드아웃 세트 평가 점수.
  5. 학습 환경 (Docker 이미지 SHA, GPU 종류, 라이브러리 버전).
  6. 승격 단계 (스테이징 / 프로덕션 / archived).

CI 연동

학습 작업이 성공하면 모델을 '스테이징' 단계로 레지스트리에 올려. 그다음 별도의 워크플로(수동이나 예약 실행)가 평가 게이트를 통과하면 '프로덕션'으로 승격시켜. 서빙 스택은 시작할 때 '프로덕션' 모델을 가져와.

Code

성공하면 학습 모델을 HF Hub에 푸시하기·yaml
      - name: Train
        run: uv run python train.py --output ./out/
      - name: Eval
        id: eval
        run: |
          score=$(uv run python eval.py --model ./out/ --json | jq -r .accuracy)
          echo "score=$score" >> $GITHUB_OUTPUT
      - name: Push to HF Hub (staging only)
        if: steps.eval.outputs.score > 0.85
        env:
          HF_TOKEN: ${{ secrets.HF_TOKEN }}
        run: |
          uv run python -c "
          from huggingface_hub import HfApi
          HfApi().upload_folder(
            folder_path='./out',
            repo_id='my-org/my-model',
            revision='staging',
            commit_message='train: ${{ github.sha }} score=${{ steps.eval.outputs.score }}',
          )
          "

External links

Exercise

우리 스택에 맞는 레지스트리를 골라봐. 학습 실행 하나가 결과 모델을 메타데이터와 함께 푸시하도록 연결해. 그리고 평가 게이트를 거치는 별도의 워크플로를 통해 스테이징에서 프로덕션으로 승격시켜 봐.

Progress

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

댓글 0

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

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