Model Registry
MLOps 라이프사이클에서 모델 버전을 관리하는 Model Registry의 데이터 토폴로지와 MLflow 호환 레이어에 대해 설명합니다.
Model Registry는 모델 버전 관리를 담당하는 MLOps 라이프사이클의 구성 요소입니다. 아티팩트 추적에 그치지 않고, 각 모델과 관련된 메타데이터도 추적하는 역할을 합니다. 예를 들면 다음과 같습니다: 성능(Performance) 파라미터(Parameters) 데이터 계보(Data lineage) 데이터 토폴로지 # 모든 엔티티는 프로젝트에 속하며, 해당 프로젝트에 접근 권한이 있는 사용자만 엔티티와 상호 작용할 수 있습니다. Ml::Model # 이름 및 설명과 같이 모델에 대한 일반 정보를 보유합니다. 각 모델에는 동일한 이름을 가진 기본 Ml::Experiment 가 있으며, 이 실험에 candidates가 기록됩니다. 여러 개의 Ml::ModelVersion 을 가집니다. Ml::ModelVersion # 모델의 버전입니다. 동일한 프로젝트, 이름, 버전을 가진 Packages::Package 와 연결됩니다. 버전은 시맨틱 버저닝(semantic versioning)을 사용해야 합니다. Ml::Experiment # 비교 가능한 Ml::Candidates 의 컬렉션입니다. Ml::Candidate # 모델 버전의 후보(candidate)입니다. 여러 파라미터( Ml::CandidateParams )를 가질 수 있으며, 이는 일반적으로 훈련 코드에 전달되는 구성 변수입니다. 여러 성능 지표( Ml::CandidateMetrics )를 가질 수 있습니다. 여러 사용자 정의 메타데이터( Ml::CandidateMetadata )를 가질 수 있습니다. MLflow 호환 레이어 # 데이터 사이언티스트가 GitLab Model Registry를 더 쉽게 사용할 수 있도록, MLflow 클라이언트 와의 호환 레이어를 제공합니다. GitLab은 별도의 MLflow 인스턴스를 제공하지 않습니다. 대신, GitLab 자체가 MLflow의 인스턴스로 동작합니다. 이 방식은 데이터를 GitLab 데이터베이스에 저장하여 사용자의 신뢰성과 기능성을 향상시킵니다. 호환 레이어에 관한 사용자 문서 를 참조하세요. 호환 레이어는 lib/api/ml/mlflow 에서 MLflow REST API 를 복제하는 방식으로 구현되어 있습니다. MLflow의 일부 용어는 GitLab에서 다르게 명명됩니다: MLflow의 Run 은 GitLab에서 Candidate 입니다. MLflow의 Registered model 은 GitLab에서 Model 입니다. 테스트 환경 설정 # GitLab을 백엔드로 사용하여 MLflow 스크립트를 테스트하려면: MLflow를 설치합니다: mkdir mlflow-compatibility cd mlflow-compatibility pip install mlflow jupyterlab 해당 디렉터리에 mlflow_test.py 라는 이름의 Python 파일을 만들고 다음 코드를 작성합니다: import mlflow import os from mlflow.tracking import MlflowClient os.environ["MLF