Model API의 입출력 명세
Model API는 머신러닝 모델에 전달할 입력과 모델이 반환할 출력을 정의합니다. 모델 버전의 modelApi에는 선택적인 inputs: list<ModelApiInput>와 outputs: list<ModelApiOutput>가 있습니다. 두 목록의 항목은 각각 unsupported, parameter, tabular 분기 중 하나입니다.
매개변수 입출력
type: "parameter"는 다음 필드를 가집니다.
| 필드 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|
name | string | 필수 | 입출력 이름 |
required | boolean | 선택 | 기본값은 true이며 false이면 null 또는 생략 허용 |
dataType | 아래 재귀 자료형 | 필수 | 값의 자료형 |
required라는 메타데이터 필드를 생략할 수 있다는 사실과 실제 입출력 값이 선택이라는 뜻을 구분합니다. 이 필드를 생략하면 입출력 값의 필수 여부는 true입니다.
표 형식 입출력
type: "tabular"는 다음 필드를 가집니다.
| 필드 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|
name | string | 필수 | 입출력 이름 |
required | boolean | 선택 | 기본값 true, false이면 해당 입출력에 null 또는 생략 허용 |
columns | list<ModelApiColumn> | 선택 | 열의 명세 |
format | PANDAS 또는 SPARK | 선택 | 모델이 받거나 반환할 DataFrame 형식, 기본값 PANDAS |
각 ModelApiColumn에는 필수 문자열 name, 필수 dataType, 선택적인 boolean required가 있습니다. 열의 required도 기본값이 true이며 false이면 null이나 열 생략을 허용합니다.
DataFrame 형식은 입력과 출력 항목마다 지정합니다. 이 값은 모델이 받거나 반환하는 DataFrame의 형식이며, REST 요청 본문의 JSON 구조와는 구분합니다.
재귀 자료형
dataType.type으로 다음 12가지 분기를 구분합니다.
type | 추가 필드 |
|---|---|
date | 없음 |
boolean | 없음 |
string | 없음 |
double | 없음 |
integer | 없음 |
float | 없음 |
any | 없음 |
long | 없음 |
timestamp | 없음 |
array | 필수 itemType |
map | 필수 keyType, valueType |
unsupported | 필수 unsupportedType, 선택 params |
itemType, keyType, valueType도 같은 12가지 자료형의 객체이므로 배열과 맵을 중첩할 수 있습니다.
unsupported 정보
입력, 출력 또는 자료형의 type: "unsupported"에는 필수 문자열 unsupportedType과 선택적인 params가 있습니다. params는 문자열 키 UnsupportedTypeParamKey에서 문자열 값 UnsupportedTypeParamValue로 대응하는 맵입니다.
이 분기의 정보를 보존하여 처리하며 parameter나 tabular의 name, columns 같은 필드를 임의로 덧붙이지 않습니다. 모델 버전의 생성 출처가 API에서 지원되지 않아 발생하는 UnsupportedModelSource 오류는 이 입출력 분기와 구분합니다.