모델 레지스트리
모델 레지스트리는 MLOps 라이프사이클의 컴포넌트로서 모델 버전을 관리하는 역할을 담당합니다. 아티팩트를 추적하는 것을 넘어 각 모델과 관련된 메타데이터를 추적하는 것이 책임입니다. 이 메타데이터에는 다음과 같은 내용이 포함됩니다.
- 성능
- 매개변수
- 데이터 계보
데이터 토폴로지
모든 엔터티는 프로젝트에 속하며, 프로젝트에 액세스 권한을 가진 사용자만 엔터티와 상호 작용할 수 있습니다.
Ml::Model
- 이름 및 설명과 같은 모델에 대한 일반 정보를 보유합니다.
- 각 모델은 동일한 이름을 가진 기본
Ml::Experiment
를 가지며, 후보자가 기록됩니다. - 여러 개의
Ml::ModelVersion
을 보유합니다.
Ml::ModelVersion
- 모델의 버전입니다.
- 동일한 프로젝트, 이름 및 버전을 가진
Packages::Package
에 연결됩니다. - 버전은 의미론적 버전을 사용해야 합니다.
Ml::Experiment
- 비교 가능한
Ml::Candidates
의 컬렉션입니다.
Ml::Candidate
- 모델 버전에 대한 후보자입니다.
- 일반적으로 훈련 코드로 전달되는 구성 변수인 매개변수(
Ml::CandidateParams
)를 여러 개 가질 수 있습니다. - 여러 사용자 정의 메타데이터(
Ml::CandidateMetadata
)를 가질 수 있습니다. - 여러 성능 지표(
Ml::CandidateMetrics
)를 가질 수 있습니다.
MLflow 호환성 레이어
GitLab 모델 레지스트리를 사용하는 데이터 과학자들을 위해 MLflow 클라이언트와의 호환성 레이어를 제공했습니다. 우리는 GitLab에서 MLflow 인스턴스를 제공하지 않습니다. 대신 GitLab 자체가 MLflow의 인스턴스로 작동합니다. 이 방법은 데이터를 GitLab 데이터베이스에 저장하며, 사용자 신뢰성과 기능성을 향상시킵니다. 호환성 레이어에 대해 자세히 알아보세요.
호환성 레이어는 MLflow rest API를 lib/api/ml/mlflow
에서 복제하여 구현했습니다.
MLflow에서 일부 용어는 GitLab에서 다르게 지칭됩니다.
- MLflow의
Run
은 GitLab의Candidate
입니다. - MLflow의
Registered model
은 GitLab의Model
입니다.
테스트를 위한 설정
MLflow를 사용하여 GitLab을 백엔드로 하는 스크립트를 테스트하려면 다음을 수행하세요:
-
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["MLFLOW_TRACKING_TOKEN"]='<TOKEN>' os.environ["MLFLOW_TRACKING_URI"]='<your gitlab endpoint>/api/v4/projects/<your project id>/ml/mlflow' client = MlflowClient() client.create_experiment("My first experiment")
-
스크립트 실행:
python mlflow_test.py
-
프로젝트
/-/ml/experiments
로 이동합니다. 실험이 생성된 것을 확인할 수 있어야 합니다.
스크립트를 편집하여 구현하려는 클라이언트 메서드를 호출할 수 있습니다. 더 완벽한 예제는 GitLab 모델 실험 예제를 참조하십시오.