평소 만들던 학습 도커 이미지를 그대로 만들면 됩니다. 플랫폼이 주는 스크립트를 이미지에 넣을 필요도, 표준 출력에 특별한 형식을 지킬 필요도 없습니다. 데이터는 플랫폼이 미리 디렉터리에 놓아 주고, 설정은 환경 변수로 들어오며, 남길 것은 MLflow 로 올리고, 성공 여부는 종료 코드로 알리면 됩니다.

이 절은 그 바깥쪽 계약과 검증 절차를 다룹니다. 모델 알고리즘 자체는 다루지 않습니다.

한 장 요약

항목내용
전달물docker save 로 만든 이미지 tar (+ 태그 이름 · sha256)
실행플랫폼은 이미지의 ENTRYPOINT그대로 실행합니다. 커맨드를 덮어쓰지 않습니다
입력학습 데이터는 플랫폼이 미리 내려받아 /geo/dataset 에 둡니다. 다운로드 코드도, 스토리지 자격 증명도 필요 없습니다
설정하이퍼파라미터·태스크·GPU 는 모두 환경 변수로 들어옵니다
출력남길 것은 모두 MLflow 로 올립니다. 컨테이너 파일 시스템은 실행이 끝나면 사라집니다
종료exit 0 = 성공, 그 외 = 실패. 이것이 전부입니다

학습 한 건의 흐름

학습 한 건은 Kubernetes Job 하나(파드 하나) 로 돕니다. ①③, ⑧⑩ 은 플랫폼이 하고, 컨테이너가 관여하는 것은 ④~⑦ 뿐입니다.

학습 한 건의 실행 순서: 사용자 화면, 플랫폼 서버, MLflow, 학습 컨테이너의 역할 분담

  • MLflow run 은 제출 시점에 이미 만들어져 있습니다(①). 컨테이너의 mlflow.start_run() 은 그 run 을 이어받을 뿐입니다(④). 컨테이너가 run 을 닫지 못하고 죽어도 최종 상태는 플랫폼이 종료 코드를 보고 마감합니다(⑧).
  • 로그와 지표는 길이 다릅니다. 표준 출력은 화면의 라이브 로그로만 흐르고, 곡선과 진행률은 플랫폼이 MLflow 에서 읽습니다(⑤). print 로 찍은 숫자는 곡선이 되지 않습니다.
  • 데이터 준비는 학습 코드가 시작되기 전에 끝납니다(②). 파드의 init 컨테이너가 데이터셋을 받아 /geo/dataset 에 놓고, 그다음에 여러분의 이미지가 뜹니다.

서버가 보여 주는 6단계

학습 상세 화면의 진행 단계 는 6단계로 고정돼 있고, 모두 플랫폼이 관측한 사실로만 움직입니다. 트레이너가 단계를 알릴 방법은 없고, 알릴 필요도 없습니다.

외부 이미지로 돈 학습 상세: 실행 대기부터 결과 정리까지 6단계를 모두 서버가 표시한다
#스텝 키화면 이름무엇을 보고 넘어가나
1queue실행 대기제출부터 실행 슬롯이 날 때까지
2runtime_prepare학습 환경 준비학습 런타임 변형 해석, 이미지 pull 자격 증명 준비
3data_stage데이터셋 준비init 컨테이너의 데이터셋 스테이징(파일 수 기준 진행률)
4train학습여러분의 ENTRYPOINT. 진행률 = MLflow 의 max(step)+1 / params.epochs
5register모델 레지스트리 등록로깅된 모델을 레지스트리에 새 버전으로 등록
6finalize결과 정리상태 마감, 실행용 토큰 회수

이 절의 순서

  1. 트레이너가 할 일 3가지: 지표, 모델 로깅, 종료 코드
  2. 컨테이너 안 경로와 환경 변수
  3. MNIST 예제 전체: 복사해서 학습 코드만 바꾸면 되는 한 벌
  4. 로컬에서 먼저 검증하기
  5. 플랫폼에 이미지 올리기: tar 반입 또는 docker push
  6. 마법사에서 고르게 하기: 외부 이미지 변형
  7. 카탈로그 등록 요청: 새 태스크·모델·하이퍼파라미터
  8. 내장 학습 런타임: YOLO · RF-DETR · Pointcept
  9. 사전학습 가중치
  10. 자주 나는 실패

2026-09-21 기준 플랫폼에 맞춰 작성했습니다.

© Geo-MLOps