다음을 통해 공유


모델 서비스를 사용하여 Python 코드 배포

이 문서에서는 Mosaic AI Model Serving를 사용하여 Python 코드를 배포하는 방법을 설명합니다.

MLflow의 Python 함수 pyfunc는 Python 코드 또는 Python 모델을 배포할 수 있는 유연성을 제공합니다. 다음은 가이드를 사용할 수 있는 예제 시나리오입니다.

  • 입력을 모델의 예측 함수에 전달하려면 모델에 전처리가 필요합니다.
  • 모델 프레임워크는 MLflow에서 기본적으로 지원되지 않습니다.
  • 애플리케이션을 사용하려면 모델의 원시 출력을 사후 처리해야 합니다.
  • 모델 자체에는 요청당 분기 논리가 있습니다.
  • 완전 사용자 지정 코드를 모델로 배포하려고 합니다.

사용자 지정 MLflow Python 함수 모델 생성

MLflow는 사용자 지정 Python 모델 형식으로 Python 코드를 기록하는 기능을 제공합니다.

MLflow를 사용하여 임의 Python 코드를 패키징하는 경우 두 가지 필수 함수가 있습니다.

  • load_context - 모델이 작동하려면 한 번만 로드해야 하는 모든 항목을 이 함수에 정의해야 합니다. 시스템이 predict 함수 중에 로드되는 아티팩트 수를 최소화하여 유추 속도를 높일 수 있도록 하는 것이 중요합니다.
  • predict - 이 함수는 입력 요청이 수행될 때마다 실행되는 모든 논리를 저장합니다.

Python 함수 모델 로그

사용자 지정 코드를 사용하여 모델을 작성하더라도 조직의 공유 코드 모듈을 사용할 수 있습니다. code_path 매개 변수를 사용하면 모델 작성자가 경로에 로드되고 다른 사용자 지정 pyfunc 모델에서 사용할 수 있는 전체 코드 참조를 기록할 수 있습니다.

예를 들어 모델이 다음과 같이 기록되는 경우:

mlflow.pyfunc.log_model(CustomModel(), "model", code_path = ["preprocessing_utils/"])

preprocessing_utils의 코드는 모델의 로드된 컨텍스트에서 사용할 수 있습니다. 다음은 이 코드를 사용하는 예제 모델입니다.

class CustomModel(mlflow.pyfunc.PythonModel):
    def load_context(self, context):
        self.model = torch.load(context.artifacts["model-weights"])
        from preprocessing_utils.my_custom_tokenizer import CustomTokenizer
        self.tokenizer = CustomTokenizer(context.artifacts["tokenizer_cache"])

    def format_inputs(self, model_input):
        # insert some code that formats your inputs
        pass

    def format_outputs(self, outputs):
        predictions = (torch.sigmoid(outputs)).data.numpy()
        return predictions

    def predict(self, context, model_input):
        model_input = self.format_inputs(model_input)
        outputs = self.model.predict(model_input)
        return self.format_outputs(outputs)

모델에 서비스 제공

사용자 지정 pyfunc 모델을 로그한 후 Unity 카탈로그 또는 작업 영역 레지스트리에 등록하고 모델 서비스 엔드포인트모델을 제공할 수 있습니다.

Notebook 예제

다음 Notebook 예제에서는 쿼리된 모델의 원시 출력을 소비를 위해 사후 처리해야 하는 경우 모델 출력을 사용자 지정하는 방법을 보여 줍니다.

MLflow PyFunc Notebook을 사용하여 출력을 제공하는 모델 사용자 지정

Notebook 가져오기