Module sktmls.models.contrib.conditional_generic_logic_model
Classes
class ConditionalGenericLogicModel (model_name: str, model_version: str, features: List[str], models: List[Any], preprocess_logics: List[Dict[str, List[Any]]], postprocess_logics: List[Dict[str, List[Any]]], predict_fns: List[str], model_selection_logic: Dict[str, List[Any]] = {'abs': 0}, data: Dict[str, Any] = {})
-
MLS 모델 레지스트리에 등록되는 다수 모델 기반의 클래스입니다.
모델 선택 로직으로 적용할 모델을 선택한 뒤 전처리 로직과 후처리 로직을 기반으로 프로세스합니다.
GenericLogicModel
과 동작 원리는 동일하나,models
에 여러 개의 ML 라이브러리로 학습된 모델을 저장해 두고model_selection_logic
을 통해 하나를 선택하여 predict를 수행합니다.Args
- model_name: (str) 모델 이름
- model_version: (str) 모델 버전
- features: (list(str)) 피쳐 이름 리스트
- models: ML 라이브러리로 학습한 모델 객체 리스트
- preprocess_logics: (list(dict)) 각 모델에 대해 전달된 피쳐
x
로부터 ML모델의 predict 함수에 input으로 들어갈preprocessed_x
를 만드는 전처리 로직 리스트 - postprocess_logics: (list(dict)) 각 ML모델의 predict 함수 결과로 얻어진
y
로부터 리턴 body(items 리스트)를 만드는 후처리 로직 리스트 - predict_fns: (list(str)) ML모델의 추론 함수 이름 (
predict
|predict_proba
|none
)none
전달 시 ML모델 추론을 사용하지 않습니다 (룰 모델).model_lib
이pytorch
인 경우 이 파라미터는 무시됩니다.
- model_selection_logic: (dict)
models
의 모델 중 하나를 선택하는 로직 (기본값: {"abs": 0} (models[0] 모델 사용))- 정수 반환 시 models의 인덱스로 사용합니다.
- list(dict) 반환 시 즉시 그 값을 리턴합니다. 이 때 유효한 response 형식이어야 합니다.
- data: (optional) (dict) 각 모델의
preprocess_logic
과postprocess_logic
에서 피쳐와 함께 "var" 참조할 추가 데이터 (기본값: {})- 피쳐 이름과 같은 키 존재 시 피쳐 값을 덮어쓰게 됩니다. 주의하세요!
models
,preprocess_logics
,postprocess_logics
,predict_fns
는GenericLogicModel
의model
,preprocess_logic
,postprocess_logic
,predict_fn
을 리스트로 여러 개 가지고 있는 형태입니다.자세한 형식은
GenericLogicModel
문서를 참조하세요.Example
my_model_v1 = ConditionalGenericLogicModel( model_name="my_model", model_version="v1", features=["feature1", "feature2", "feature3", "embedding_vector", "context_feature1", "context_feature2"], models=[model0, model1], preprocess_logics=[preprocess_logic0, preprocess_logic1], postprocess_logics=[postprocess_logic0, postprocess_logic1], predict_fns=["predict", "predict_proba"], model_selection_logic={ "if": [ {">": [{"var": "feature1"}, 3.0]}, 0, 1 ] }, data={} )
Ancestors
Methods
def predict(self, x: List[Any], **kwargs) ‑> Dict[str, Any]
Inherited members