InfoGrab DocsInfoGrab Docs

Model Registry

요약

Model Registry는 모델 버전 관리를 담당하는 MLOps 라이프사이클의 구성 요소입니다. 데이터 계보(Data lineage) 모든 엔티티는 프로젝트에 속하며, 해당 프로젝트에 접근 권한이 있는 사용자만 엔티티와 상호 작용할 수 있습니다.

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["MLFLOW_TRACKING_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 Model experiments 예제를 참조하세요.

Model Registry

GitLab v19.1
원문 보기
요약

Model Registry는 모델 버전 관리를 담당하는 MLOps 라이프사이클의 구성 요소입니다. 데이터 계보(Data lineage) 모든 엔티티는 프로젝트에 속하며, 해당 프로젝트에 접근 권한이 있는 사용자만 엔티티와 상호 작용할 수 있습니다.

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["MLFLOW_TRACKING_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 Model experiments 예제를 참조하세요.