앞서 만들어둔 모델(from1)에는 워드 임베딩 과정이 포함되어 있다. 사용자가 원하는 흐름은 string → 블랙박스 → class 이지만, 우리는 블랙박스가 string → 전처리(예를 들어, 사전 학습된 워드 임베딩 함수) → 머신러닝 모델 → 후처리 → class 같이 복잡한 파이프라인을 감추고 있을 뿐이라는 사실을 알고 있다.

따라서 BentoML(from3) 등 서빙 프레임워크를 이용해 머신러닝 모델 서빙 시 모델뿐 아니라 적절한 버전의 모델 전처리 후처리 과정을 함께 불러올 수 있어야 한다. 혹은, 머신러닝 모델 자체에 전처리과정을 함께 묶어버릴 수 있어야 한다(from2).

모델 자체에 전처리과정이 내재되어있지 않는 경우, 머신러닝 모델과 전후처리 코드를 짝지어 관리하는 일은 상당히 까다로운 문제이다. 이런 일들을 실험 관리 도구(from5)가 도맡아 하곤 한다. 특히 실험 관리 도구 wandb 는 이들을 모두 아티팩트(Artifact)(from4)라는 일관된 통에 담아서 버전을 붙이고 불러올 수 있도록 관리한다.


parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료들.

  1. Joblib is a set of tools to provide lightweight pipelining in Python. In particular: transparent disk-caching of functions and lazy re-evaluation (memoize pattern) …
  2. 전처리는 Python으로 작성된 반면, 예측은 Tensorflow나 ONNX로 바이너리로 빌드하는 경우도 있습니다. 이러한 경우, 별도의 서버 또는 컨테이너를 구축해 각 리소스의 개발 및 운영을 최적화할 수 있습니다. … 프록시는 데이터 검색, 전처리 및 예측 서비스를 중재합니다. 이 기능을 통해 독립적인 라이브러리, 언어 및 인프라를 별도로 개발할 수 있습니다. 그러나 장애 발생 시 문제 해결을 위해 모든 구성요소를 이해하는 관리 구성요소를 추가해야 합니다.

from : 과거의 어떤 생각이 이 생각을 만들었는가?

  1. deer.a7.3_5_2. title: 케라스의 preprocessing 레이어가 추구하는 것처럼, 전처리과정을 모델의 레이어 하나로 취급한다면 전처리와 모델을 별도로 관리할 필요가 없어 관리 및 서빙이 간단해진다.
  2. ba2.3.6.5.1. title: wandb의 아티팩트(Artifact)는 데이터셋, 파이프라인, 모델을 담을 수 있고 버전을 붙일 수 있는 폴더이다.

supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는가?

  1. ba2.5.2.2. title: 모델 학습을 위한 데이터 전처리와 서빙되는 모델을 위한 데이터 전처리 파이프라인이 다르다는 문제가 있다. 이를 학습-서빙 왜곡이라고 한다. 전처리를 독립시켜 두는 방법, 모델에게 책임을 전가하여 전처리 파이프라인을 모델에 묶는 방법, 데이터에게 책임을 전가하여 전처리가 모두 완료된 데이터를 보장하는 방법이 있다.

opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는가?

  1. [mlops.1_3.1__1__1. title: 전처리-예측 패턴([[[SW Best practice](https://janghoo.notion.site/Best-practice-abce5d7978db47529300bea6c37419f2) Design pattern](https://janghoo.notion.site/Design-pattern-0dc0e08622d3478bb6b85720c7392626) Preprocess-prediction pattern](https://janghoo.notion.site/Preprocess-prediction-pattern-3f61258f7fa54499a5c3437be314b953))이 제안하는대로 전처리 후처리 과정을 아티팩트로 다운로드받는 것이 아니라 마이크로서비스로 쪼개어 API 로 통신하도록 만들 수 있다.](https://janghoo.notion.site/mlops-1_3-1__1__1-title-API-5d9df930a74f415389de2721ce4e7d71)