결론부터용어를 구분하는 목적은 메뉴를 찾는 게 아니라 바꿀 수 있는 것과 못 바꾸는 것을 가르는 것이다
| 용어 | 뜻 | 함께 구분할 것 |
|---|
| experiment | 같은 목적의 run을 담는 이름 있는 묶음 | 이름의 /는 폴더가 아니다 |
| run | 실행 하나. run_id(32자 hex)를 가진다 | 채택·기각의 단위와 맞춘다 |
| run_name | 사람이 읽는 이름 | 실제로는 mlflow.runName tag라 나중에 바꿀 수 있다 |
| param | 실행 전에 정한 조건 | 문자열이고 immutable — 부등호 검색이 안 된다 |
| metric | 실행이 만든 수치 | 실수이고 step으로 여러 번 쌓을 수 있다 |
| tag | 분류·메모 | 유일하게 자유롭게 고칠 수 있다 |
| artifact | run에 딸린 파일 | 값으로 못 담는 것 전용 |
| parent / child run | nested=True로 만든 부모-자식 관계 | tag의 mlflow.parentRunId로 표현된다 |
| lifecycle stage | active 또는 deleted | UI의 삭제는 deleted 표시일 뿐이다 |
| status | RUNNING · FINISHED · FAILED · KILLED | context manager가 자동으로 정리한다 |
| dataset | run에 연결된 데이터 참조 | 내용 기반 digest를 가진다 |
| 용어 | 뜻 | 운영 포인트 |
|---|
| tracking URI | 기록을 보낼 곳의 주소 | 상대 경로면 실행 디렉터리에 따라 달라진다 |
| backend store | param·metric·tag를 담는 DB 또는 파일 store | file store는 유지보수 모드, sqlite가 기본 |
| artifact store | 파일을 담는 디렉터리 또는 object storage | experiment 생성 시 정해지고 못 바꾼다 |
| artifact_location | 그 experiment의 artifact 루트 | 절대 경로로 박히면 레포 이동 시 깨진다 |
| tracking server | REST API와 UI를 제공하는 HTTP 서버 | 1인 로컬에서는 없어도 된다 |
runs:/<run_id>/<경로> | 특정 run의 artifact 주소 | 파일을 되가져올 때 쓴다 |
models:/<model_id> | 기록된 모델 하나의 주소 | MLflow 3의 LoggedModel을 가리킨다 |
models:/<이름>@<alias> | 등록 모델의 별칭 주소 | 소비자 코드가 참조할 형태 |
| 용어 | 뜻 | 주의할 점 |
|---|
start_run | run을 열고 활성화한다 | nested·run_id·parent_run_id 인자를 기억한다 |
log_params | param 여러 개를 기록 | 같은 key에 다른 값이면 예외 |
log_metrics | metric 여러 개를 기록 | NaN·inf가 그대로 통과한다 |
log_artifact | 파일 하나를 올린다 | artifact_path로 하위 폴더를 지정한다 |
log_artifacts | 디렉터리의 내용물을 올린다 | 디렉터리 이름이 사라진다 |
log_text · log_table · log_figure | 문자열·표·그림을 파일 없이 바로 올린다 | 긴 목록을 param 대신 남길 때 |
log_input | 이 run이 쓴 dataset을 연결한다 | context로 용도를 적는다 |
set_tag · set_tags | tag를 붙이거나 고친다 | mlflow.로 시작하는 이름은 예약이다 |
search_runs | 조건으로 run을 찾는다 | 기본 반환이 pandas DataFrame |
autolog | 학습 함수를 가로채 자동 기록 | 한 run에서 여러 번 학습하면 param이 충돌한다 |
| 조각 | 값 | 비고 |
|---|
metrics.<이름> | 실수 | 유일하게 부등호가 그대로 먹는다 |
params.<이름> | 문자열 | 등가와 LIKE만 |
tags.<이름> | 문자열 | IS NULL로 “아직 안 붙인 것”을 찾는다 |
attributes.<속성> | run_name · status · run_id 등 | run 자체의 성질 |
datasets.<속성> | name · digest · context | 데이터 기준으로 거른다 |
| 논리 연산 | AND만 | OR가 없다 |
| 용어 | 뜻 | 함께 구분할 것 |
|---|
| MLflow Model | 모델 파일 + 로딩 방법 + 의존성 + 규격을 담은 디렉터리 | pickle 하나가 아니다 |
| MLmodel | 그 디렉터리의 정의 YAML | flavor·signature·run_id가 여기 있다 |
| flavor | 이 모델을 어떤 라이브러리로 읽는지 | 하나의 모델이 여러 flavor를 가진다 |
| pyfunc | 라이브러리 무관 공통 predict() 인터페이스 | 소비자 코드의 의존성을 줄인다 |
| signature | 입출력 열 이름·타입 규격 | 열 순서가 밀리는 사고를 막는다 |
| input_example | 입력 샘플 | 주면 signature를 추론해 준다 |
| LoggedModel | MLflow 3에서 1급 개체가 된 기록된 모델 | run에 딸린 artifact가 아니다 |
| registered model | 이름이 붙은 모델 묶음 | 그 아래에 버전이 쌓인다 |
| model version | 등록할 때마다 1씩 느는 번호 | 내용은 변하지 않는다 |
| alias | 특정 버전을 가리키는 이름표 | 옮길 수 있다. stage의 대체재 |
| stage | Staging·Production 같은 고정 단계 | 예전 방식 — 새 설계에 쓰지 않는다 |
| 용어 | 뜻 | 운영 포인트 |
|---|
| soft delete | 지웠다고 표시만 하는 삭제 | UI와 mlflow runs delete가 여기까지다 |
mlflow gc | 표시된 것을 영구 삭제 | 되돌릴 수 없다. 먼저 백업 |
mlflow db upgrade | DB 스키마를 새 버전으로 이전 | MLflow 버전을 올릴 때 |
mlflow doctor | 환경 진단 출력 | 이상할 때 먼저 |
| write lock | sqlite가 한 번에 한 쓰기만 받는 성질 | 병렬 튜닝에서 database is locked |
| system tag | mlflow.로 시작하는 예약 tag | git commit·user·source가 자동으로 채워진다 |
| system metrics | CPU·메모리·GPU 사용률 자동 기록 | psutil이 필요하고 기본은 꺼져 있다 |