MLOps·머신러닝 운영/MLflow를 활용한 머신러닝 실험 관리

MLflow의 Signature와 Input Example 이해

Data Jun 2025. 10. 23. 22:59

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는 재현 가능한 모델 서빙 환경을 자동으로 구성할 수 있다.