1. Signature란?
MLflow는 모델을 저장할 때 입력(Input) 과 출력(Output) 의 형태를 함께 기록합니다.
이 정보를 Signature라고 부르며,
모델이 “어떤 데이터 형태를 받아 어떤 결과를 반환하는지”를 명확히 정의합니다.
예시 코드 (MLmodel 내부)
signature:
inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 4]}}]'
outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "int64", "shape": [-1]}}]'
🔹 inputs → 입력 데이터 타입(float64)과 구조([-1, 4])
🔹 outputs → 출력 데이터 타입(int64)과 구조([-1])
🔹 -1은 입력 개수(batch size)가 가변적임을 의미합니다.
즉, “4개의 실수(float64)를 입력받아 정수형 결과(int64)를 반환하는 모델”이라는 뜻이에요.
이 Signature 정보는 모델을 로드하거나 서빙할 때 입력 형식을 자동 검증하는 데 사용됩니다.
2. Input Example이란?
Signature가 모델의 형식을 정의한다면,
Input Example은 그 형식에 맞는 실제 입력 데이터를 예시로 보여줍니다.
예시 (input_example.json)
[
[5.7, 2.8, 4.1, 1.3],
[6.5, 3.0, 5.5, 1.8],
[6.3, 2.3, 4.4, 1.3]
]
이 예시는 모델이 예측을 수행할 때 기대하는 입력 형태를 그대로 담고 있습니다.
MLflow는 이 파일을 통해 다음을 수행할 수 있습니다:
- 모델 서빙 시 입력 포맷 자동 감지
- API 호출 전 입력 데이터 검증
- mlflow models predict 명령어 테스트 시 참고
3. Signature와 Input Example의 관계
| 구분 | 역할 | 설명 |
| Signature | 데이터 구조 정의 | 입력/출력 타입과 형태 지정 |
| Input Example | 예시 데이터 제공 | Signature 기반의 실제 입력 샘플 |
두 파일은 함께 모델의 재현성(Reproducibility) 과 안정성(Serving Stability) 을 보장합니다.
Signature는 “규칙서”, Input Example은 “샘플 데이터”라고 생각하면 이해하기 쉬워요.
정리하면
MLflow의 Signature는 모델 입출력의 형식을 정의하고,
Input Example은 그 형식에 맞는 실제 입력 데이터를 예시로 제공한다.
이 두 요소 덕분에 MLflow는 재현 가능한 모델 서빙 환경을 자동으로 구성할 수 있다.
'MLOps·머신러닝 운영 > MLflow를 활용한 머신러닝 실험 관리' 카테고리의 다른 글
| MLflow Model API (0) | 2025.10.24 |
|---|---|
| MLflow 모델 Signature는 언제 생성될까? (0) | 2025.10.23 |
| MLflow 산출물(Artifacts) 폴더 구조 이해하기 (0) | 2025.10.23 |
| MLflow Tracking 실험 관리 — 파라미터, 메트릭, 아티팩트, 태그 기록하기 (1) | 2025.10.22 |
| MLflow Run (0) | 2025.10.22 |