AI
020. [Kubeflow][KServe] 인증문제 해결하기 (Istio-Dex)
KServe on Kubeflow with Istio-Dex Kubeflow KServe 인증문제 해결하기 KServe를 Kubeflow와 함께 배포했다면, [[KServe First InferenceService 처음배포하기]]에서 예상하지 못한 인증문제를 겪으셨을 것입니다. 인증 문제가 발생한 이유는 Kubeflow내 외부로 통하는 모든 트래픽이 Istio-Dex를 통해 인증과 인가(AuthN/AuthZ)를 거치기 때문입니다. 따라서 KServe로 추론 요청을 보낼 때에도 인증정보가 필요합니다. [[KServe First InferenceService 처음배포하기]]에 이어서 인증정보를 추가하여 추론요청을 보내는 방법을 알아보겠습니다. 인증정보 받아오기 Istio-dex는 ID / Password로 ..
019. [Kubeflow][KServe] InferenceService 처음 배포하기!
이번 튜토리얼에서는 ScikitLearn InferenceService를 배포할 것입니다. 이 InferenceService는 간단한 [iris] ML model을 서빙합니다. 속성 리스트를 InferenceService에 전송하면, 붓꽃(iris)의 종(species)을 예측해서 보여줍니다. 모델은 원시(raw) 쿠버네티스 서비스가 아닌 InferenceService로 배포되고 있기 때문에, 훈련된 모델을 제공하기만 하면 바로 사용이 가능합니다 마치 초능력을 가진것처럼 말이죠! 1. 테스트 InferenceService 생성하기 apiVersion: "serving.kserve.io/v1beta1" kind: "InferenceService" metadata: name: "sklearn-iris" sp..
018. [Kubeflow][KServe] SKLearn model InferenceService 배포하기
[!NOTE] 이 문서는 KServe v0.7을 기준으로 작성되었습니다. 이번글에서는 SKLearn 모델을 학습하고 KServe의 InferenceService로 배포해보겠습니다. 모델 학습, 로컬 테스트, Inferece Serivce 배포 순서로 진행합니다. 모델 학습과 로컬 배포테스트는 건너 뛰셔도 무방합니다. 모델 학습하기 학습할 모델은 머신러닝에서 매우 유명한 Iris 데이터셋, 붓꽃 종 분류 문제를 해결하는 모델입니다. 다음 코드를 수행해서 모델을 학습하고 'model.joblib'으로 학습한 모델을 저장합니다. from sklearn import svm from sklearn import datasets from joblib import dump iris = datasets.load_iris..
017. [Kubeflow][KServe] Model Serving Control Plane
Control Plane Kserve의 컨트롤 플레인은 인퍼런스 서비스를 제어하는 역할을 합니다. 일반적으로 KServe는 Serverless 플랫폼인 Knative를 사용하여 구현합니다. 그리고 Knative의 serverless 배포를 이용하여 인퍼런스 서비스의 구성요소인 predictor, transformer, explainer가 들어오는 요청에 기반하여 autoscaling되도록 합니다. 요청트래픽이 없다면 인스턴스가 하나도 뜨지 않도록 하는 Zero scaling도 가능합니다. Knative를 사용하지 않는 Raw 배포를 사용한다면, kubernetes의 deployment, service, ingress, HPA가 사용됩니다. Control Plane Components KServe Cont..
016. [Kubeflow][KServe] Model Serving Data Plane
Data Plane InferenceService의 Data Plane 아키텍처는 단일 모델에 대한 요청을 조절하는 구성요소의 정적 그래프(Static Graph)로 구성됩니다. Embedding, A/B test, Multi-Arm-Bandits과 같은 고급 기능은 반드시 인퍼런스 서비스와 함께 구성되어야 합니다. Concept 컴포넌트(Component): 각 엔드포인트는 여러개의 컴포넌트로 구성되어 있습니다. "predictor", "explainer", "transformer" 가 그 컴포넌트들 입니다. 필수 컴포넌트는 predictor 하나이며 시스템의 핵심(core) 입니다. 나머지 "transformer", "explainer"는 선택 컴포넌트입니다. KServe가 진화함에 따라 Outlie..