Model Registry
모델 레지스트리가 ML 모델의 버전 관리, 거버넌스 및 배포를 수행하는 방법을 알아봅니다. 중앙 집중식 학습, 관리, 모니터링 및 재현성을 위한 Ultralytics Platform을 살펴봅니다.
모델 레지스트리는 머신 러닝 모델의 수명 주기 전반에서 모델을 구성하고, 버전을 관리하고, 거버넌스를 적용하고, 검색하기 위한 중앙 집중식 시스템입니다. 학습된 모델 가중치와 각 모델의 학습, 평가, 승인 및 배포 방식을 설명하는 메타데이터를 연결합니다. 머신 러닝 운영의 핵심 구성 요소인 레지스트리는 어떤 모델 버전이 프로덕션 트래픽을 처리해야 하는지 결정할 때 팀이 신뢰할 수 있는 기준을 제공합니다.
모델 레지스트리 작동 방식#
모델 등록은 학습 실행에서 후보 모델이 생성된 후 시작됩니다. 레지스트리는 이름이 지정된 항목을 생성하고, 버전을 할당하며, 해당 아티팩트를 이해하고 재현하는 데 필요한 정보를 기록합니다. 일반적인 항목에는 다음이 포함됩니다.
- 모델 아티팩트: 직렬화된 가중치, 전처리 로직, 구성 파일 또는 이러한 항목의 저장 위치에 대한 참조입니다.
- 버전: 한 후보를 다른 후보와 구분하는 변경 불가능한 식별자입니다.
- 메트릭 및 파라미터: 검증 정확도, 정밀도, 재현율, 지연 시간, 데이터셋 세부 정보, 하이퍼파라미터 및 기타 측정값입니다.
- 계보: 모델, 소스 코드, 학습 실행 및 데이터 간의 연결 관계입니다.
- 상태: 후보, 승인됨, 거부됨, 챔피언 또는 보관됨과 같은 레이블입니다.
- 배포 정보: 현재 해당 버전을 사용 중인 환경 및 엔드포인트입니다.
플랫폼마다 이러한 개념을 구현하는 방식은 다릅니다. MLflow Model Registry 워크플로는 등록된 모델, 버전, 별칭 및 태그를 사용하는 반면, Amazon SageMaker Model Registry는 모델 그룹, 승인 상태, 계보 및 배포 자동화를 지원합니다. 일부 시스템은 모델 시그니처도 기록합니다. 모델 시그니처는 Snowflake 모델 시그니처 문서에 설명된 예상 입력 및 출력 스키마입니다.
champion 또는 production과 같은 별칭은 변경 불가능한 버전 간에 이동할 수 있는 안정적인 이름을 제공합니다. Vertex AI 모델 별칭 가이드에 설명된 것처럼 애플리케이션은 버전 번호를 하드코딩하지 않고 별칭을 요청할 수 있습니다.
모델 레지스트리와 관련 개념 비교#
모델 레지스트리는 여러 ML 도구와 기능이 겹치지만, 고유한 목적을 수행합니다.
- **실험 추적**은 파라미터, 메트릭 및 중간 아티팩트를 포함한 학습 실행을 기록합니다. 레지스트리는 이러한 실험에서 선택된 출력을 받아 릴리스 후보로 관리합니다.
- 아티팩트 스토리지는 대용량 파일을 보관합니다. 레지스트리는 이러한 파일을 직접 저장할 수도 있지만, 외부 객체 스토리지를 가리키는 메타데이터 인덱스로 기능할 수도 있습니다. Kubeflow Model Registry 아키텍처는 이러한 메타데이터 중심 설계를 보여줍니다.
- 소스 제어는 코드를 버전 관리하는 반면, 모델 레지스트리는 학습된 아티팩트와 ML 관련 메타데이터를 버전 관리합니다. GitLab 모델 레지스트리는 모델 버전을 CI/CD 작업, 로그, 메트릭 및 파라미터와 연결할 수 있습니다.
- **모델 배포**는 선택된 모델을 추론에 사용할 수 있도록 제공합니다. 레지스트리는 승인된 아티팩트를 식별하고, 배포 시스템은 해당 아티팩트를 실행합니다.
- **모델 모니터링**은 릴리스 후 프로덕션 동작을 관찰합니다. 모니터링 결과에 따라 평가, 재학습, 등록 및 대체 버전 승격이 트리거될 수 있습니다.
따라서 레지스트리는 주변의 모든 구성 요소를 대체하는 것이 아니라 실험과 프로덕션 사이의 제어 지점 역할을 합니다.
실제 적용 사례#
제조 검사 시스템에서 엔지니어는 카메라, 자재 또는 제품 설계가 변경될 때마다 결함 검출기를 재학습할 수 있습니다. 레지스트리는 각 모델의 데이터셋 참조, 평균 정밀도, 추론 지연 시간 및 지원되는 하드웨어 형식을 보존할 수 있습니다. 테스트 결과 버전 12가 오탐을 늘리지 않고 스크래치 검출 성능을 개선한 것으로 확인되면, 승인 담당자는 버전 12를 승격하고 즉시 롤백할 수 있도록 버전 11을 유지할 수 있습니다.
의료 영상 분석에서는 여러 팀이 종양 검출 후보를 평가할 수 있습니다. 등록을 통해 각 버전의 검증 결과, 학습 구성, 담당 소유자 및 승인 이력이 보존됩니다. 프로덕션 애플리케이션을 검토된 모델로 제한하는 동시에, 감사 및 재현성을 위해 이전 버전을 계속 사용할 수 있습니다. Snowflake Model Registry 거버넌스에 설명된 것과 같은 역할 기반 제어는 민감한 아티팩트가 무단으로 교체되거나 검사되는 것을 방지하는 데 도움이 됩니다.
Ultralytics 워크플로에서의 모델 등록#
Ultralytics Platform은 컴퓨터 비전 모델의 데이터셋 주석 처리, 학습, 결과 비교, 내보내기, 배포 및 모니터링을 위한 중앙 집중식 모델 관리를 제공합니다. 문서화된 Platform 모델 관리 워크플로는 업로드된 .pt 가중치와 클라우드 또는 원격 학습을 통해 생성된 모델을 지원합니다.
다음 문서화된 워크플로는 로컬에서 Ultralytics YOLO26을 학습하는 동시에 결과 모델, 구성, 메트릭 및 로그를 이름이 지정된 Platform 프로젝트로 전송합니다.
import os
from ultralytics import YOLO
# Authenticate remote training with Ultralytics Platform
os.environ["ULTRALYTICS_API_KEY"] = "YOUR_API_KEY"
model = YOLO("yolo26n.pt")
model.train(
data="coco8.yaml",
epochs=3,
project="username/model-registry-demo",
name="candidate-001",
)프로젝트 및 실행 이름을 사용하면 관련 모델과 함께 후보를 쉽게 찾을 수 있습니다. 팀은 이를 평가하거나, 추가 실험 로깅을 위해 Ultralytics MLflow 통합을 사용하거나, 등록된 모델을 특정 클라우드 또는 엣지 하드웨어에서 실행해야 할 때 YOLO 모델 내보내기를 적용할 수 있습니다.
실용적인 레지스트리 지침#
등록된 모든 버전을 변경 불가능한 것으로 취급합니다. 배포에는 사람이 이해하기 쉬운 별칭을 사용하고, 검증 근거를 보존하며, 명확한 승격 요건을 정의합니다. 시맨틱 버전 관리에 기반한 명명 정책은 호환성 변경 사항을 전달할 수 있지만, 자동으로 증가하는 버전도 효과적입니다.
무엇보다 설명이 없는 가중치 파일이 아니라 완전한 모델 패키지를 등록해야 합니다. 전처리 규칙, 클래스 이름, 입력 스키마, 종속성 또는 데이터셋 참조가 누락되면 겉보기에는 유효한 모델도 재현할 수 없거나 안전하게 배포할 수 없게 됩니다. 액세스 제어, 자동화된 테스트, 승인 게이트, 감사 로그 및 롤백 절차를 갖추면 모델 레지스트리는 단순한 파일 카탈로그에서 신뢰할 수 있는 프로덕션 보호 장치로 발전합니다.









