Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

사전 학습 파일에서 Foundry 모델 만들기

외부에서 학습한 가중치 파일, 공개 모델 파일, 로컬 개발 환경이나 Code Workspaces에서 만든 파일 및 기존 시스템의 모델을 Foundry 모델로 게시할 수 있습니다. 파일을 읽고 추론하는 어댑터를 함께 제공하면 버전, 세부 권한과 모델 계보를 관리하며 배치 파이프라인과 온라인 호스팅에서 소비합니다.

Modeling Objectives에서 모델을 관리하고 온톨로지 및 모델 함수에 연결하여 업무와 가정 시나리오 분석에 사용할 수 있습니다.

비정형 데이터셋에 파일 업로드

프로젝트에서 + New > Dataset을 선택합니다.

Import new data를 선택하여 로컬 모델 파일을 올립니다.

한 데이터셋에 여러 파일을 올릴 수 있습니다. 이 데이터셋은 표 스키마가 없는 비정형 데이터셋입니다.

모델 학습 저장소

Model Integration 종류와 Model Training 언어 템플릿으로 저장소를 만듭니다. 파일 로드 및 게시 코드는 model_training 모듈에, 어댑터는 별도 model_adapters 모듈에 둡니다.

모델 객체로 복원하고 게시

변환은 데이터셋 파일을 올바른 Python 모델 객체로 읽고, 해당 객체로 어댑터를 초기화한 뒤 ModelOutput에 게시합니다. 라이브러리마다 모델 파일 로드 메서드가 다르므로 저장에 사용한 형식과 의존성을 맞춥니다.

다음 예제는 model.pkl에 저장한 모델이 input_feature라는 특성 하나를 받아 행별 수치 예측을 반환한다고 가정합니다. 모델 프레임워크와 필요한 의존성을 저장소에 추가합니다. 다른 입력 API의 모델은 어댑터를 그 모델 계약에 맞게 정의합니다.

src/main/model_adapters/adapter.py:

import palantir_models as pm

class ExampleModelAdapter(pm.ModelAdapter):
    @pm.auto_serialize
    def __init__(self, model):
        self.model = model

    @classmethod
    def api(cls):
        return (
            {"df_in": pm.Pandas([("input_feature", float)])},
            {"df_out": pm.Pandas([("input_feature", float), ("prediction", float)])},
        )

    def predict(self, df_in):
        df_in["prediction"] = self.model.predict(df_in[["input_feature"]])
        return df_in

src/main/model_training/publish_model.py에는 파일을 읽는 변환을 둡니다. copy_model_to_driver는 비정형 데이터셋의 파일들을 드라이버에 복사합니다. 아래 모델 파일 및 출력 경로는 실제 리소스로 바꿉니다.

import os
import pickle
from transforms.api import transform, Input
from palantir_models.transforms import ModelOutput, copy_model_to_driver
from main.model_adapters.adapter import ExampleModelAdapter

@transform(
    model_files=Input("/Models/imported/model_files"),
    model_output=ModelOutput("/Models/published/imported_model"),
)
def compute(model_files, model_output):
    model_files_path = copy_model_to_driver(model_files.filesystem())
    with open(os.path.join(model_files_path, "model.pkl"), "rb") as model_file:
        model = pickle.load(model_file)
    model_output.publish(model_adapter=ExampleModelAdapter(model))

CBAC 환경에서는 출력 모델을 미리 생성하고 분류를 설정합니다. Build로 파일 로드와 게시를 실행합니다. PyTorch나 TensorFlow도 각 라이브러리의 역직렬화 메서드로 객체를 복원하여 같은 게시 과정에 연결합니다.

추론에서 사용

게시한 모델은 Modeling Objective의 온라인 또는 배치 배포에 연결하거나 Python 변환의 ModelInput으로 사용합니다. 구체적인 로컬 학습, 파일 업로드와 목표 배포는 Iris 예제에서 확인합니다.