Upgrade to Pro — share decks privately, control downloads, hide ads and more …

카카오페이 MLOps 적용기 (feat. AWS)

kakao
PRO
December 08, 2022

카카오페이 MLOps 적용기 (feat. AWS)

#MLOps #모델학습파이프라인 #FeatureStore #모델Serving #AWS

카카오페이에서 MLOps 시스템을 구축하여 적용한 사례를 공유합니다.
MLOps의 핵심 구성요소인 모델 학습 파이프라인, Feature Store, 모델 Serving 의 구축과정을 상세하게 설명합니다.

발표자 : weather.hot
카카오페이 MLOps TF 웨더입니다. 대용량 데이터 처리를 위한 서버 엔지니어링에 관심이 많습니다.

rachel.green
카카오페이 MLOps TF 레이첼입니다. 머신러닝 모델 개발 및 서빙 환경 개발/구축을 하고 있습니다.

yelo.blood
카카오페이 MLOps TF 옐로입니다. 클라우드 기반의 데이터 엔지니어링에 관심이 많습니다.

kakao
PRO

December 08, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. 이나을 Weather.Hot, 조은비 Rachel.Green, 오영규 Yelo.Blood 카카오페이 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 카카오페이 MLOps 적용기 if(kakao)2022 (feat. AWS)
  2. 이나을 Weather.Hot, 조은비 Rachel.Green, 오영규 Yelo.Blood 카카오페이 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 카카오페이 MLOps 적용기 if(kakao)2022 (feat. AWS)
  3. 이나을 Weather.Hot, 조은비 Rachel.Green, 오영규 Yelo.Blood 카카오페이 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 카카오페이 MLOps 적용기 if(kakao)2022 (feat. AWS)
  4. 이나을 Weather.Hot, 조은비 Rachel.Green, 오영규 Yelo.Blood 카카오페이 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 카카오페이 MLOps 적용기 if(kakao)2022 (feat. AWS)
  5. 이나을 Weather.Hot, 조은비 Rachel.Green, 오영규 Yelo.Blood 카카오페이 Copyright 2022. Kakao

    Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 카카오페이 MLOps 적용기 if(kakao)2022 (feat. AWS)
  6. Rachel Yelo Weather

  7. Rachel Yelo Weather

  8. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  9. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  10. 카카오페이 ML 모델 개인신용평가 이상거래탐지 유저프로파일

  11. MLOps의 필요성 데이터 증가

  12. MLOps의 필요성 데이터 증가 데이터 변화

  13. MLOps의 필요성 데이터 증가 데이터 변화 모델 업데이트 필요

  14. MLOps 구축 전 개발과정 모델 Serving ML 모델 Feature 데이터

  15. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

    ver1 Feature 데이터
  16. MLOps 구축 전 개발과정 모델 Serving ML 모델 Feature 데이터

    모델 A ver1 모델 A ver2
  17. MLOps 구축 전 개발과정 모델 Serving ML 모델 Feature 데이터

    모델 A ver1 모델 A ver2
  18. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

    ver1 모델 A ver2 Feature 데이터
  19. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

    ver1 Feature 데이터 모델 A ver2
  20. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

    ver1 Feature 데이터 모델 A ver2 모델 B ver1
  21. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

    ver1 모델 A ver2 모델 B ver1 Feature 데이터
  22. MLOps 구축 전 개발과정 모델 Serving ML 모델 생산성 저하

    모델 A ver1 모델 A ver2 모델 B ver1 Feature 데이터
  23. MLOps 구축 전 개발과정 모델 Serving ML 모델 생산성 저하

    피쳐 통합 관리 부재 모델 A ver1 모델 A ver2 모델 B ver1 Feature 데이터
  24. MLOps 구축 전 개발과정 모델 Serving ML 모델 생산성 저하

    피쳐 통합 관리 부재 운영 복잡도 증가 모델 A ver1 모델 A ver2 모델 B ver1 Feature 데이터
  25. 카카오페이 MLOps 요구사항 표준화된 MLOps 정의 및 컴포넌트 개발 필요

  26. 카카오페이 MLOps 요구사항 표준화된 MLOps 정의 및 컴포넌트 개발 필요

  27. 카카오페이 MLOps 요구사항 표준화된 MLOps 정의 및 컴포넌트 개발 필요

  28. 카카오페이 MLOps 요구사항 모델 학습 파이프라인 표준화된 MLOps 정의 및

    컴포넌트 개발 필요
  29. 카카오페이 MLOps 요구사항 모델 학습 파이프라인 Feature Store 표준화된 MLOps

    정의 및 컴포넌트 개발 필요
  30. 카카오페이 MLOps 요구사항 모델 학습 파이프라인 Feature Store 모델 Serving

    표준화된 MLOps 정의 및 컴포넌트 개발 필요
  31. 카카오페이 MLOps 요구사항 모델 학습 파이프라인 Feature Store 모델 Serving

    표준화된 MLOps 정의 및 컴포넌트 개발 필요
  32. AWS 도입

  33. AWS 도입 유연한 컴퓨팅 리소스

  34. AWS 도입 유연한 컴퓨팅 리소스

  35. AWS 도입 유연한 컴퓨팅 리소스

  36. AWS 도입 유연한 컴퓨팅 리소스 관리형 서비스 제공

  37. AWS 도입 유연한 컴퓨팅 리소스 관리형 서비스 제공

  38. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  39. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  40. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  41. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  42. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  43. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  44. 모델 학습 파이프라인 모델 관리 서비스 모델 학습 Workflow

  45. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스

  46. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스

  47. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion
  48. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing
  49. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Training
  50. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Evaluation Model Training
  51. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Model Registry Data Preprocessing Model Training Model Evaluation
  52. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Training Model Evaluation Model Metric / 버전 관리 Model 성능 비교 Model Deploy Model Registry
  53. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Training Model Evaluation Model Metric / 버전 관리 Model 성능 비교 Model Deploy Model Registry
  54. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Training Model Evaluation Model Metric / 버전 관리 Model 성능 비교 Model Deploy Model Registry
  55. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

    Ingestion Data Preprocessing Model Training Model Evaluation Model Metric / 버전 관리 Model 성능 비교 Model Deploy Model Registry
  56. 모델 학습 Work fl ow 요구사항

  57. 모델 학습 Work fl ow 요구사항 ML Workflow 지원

  58. 모델 학습 Work fl ow 요구사항 ML Workflow 지원

  59. 모델 학습 Work fl ow 요구사항 플랫폼 운영 편의성 ML

    Workflow 지원
  60. 모델 학습 Work fl ow 요구사항 플랫폼 운영 편의성 ML

    Workflow 지원
  61. 모델 학습 Work fl ow 요구사항 플랫폼 운영 편의성 ML

    Workflow 지원
  62. 모델 학습 Work fl ow 요구사항 플랫폼 운영 편의성 ML

    Workflow 지원
  63. 모델 학습 Work fl ow: AWS Step Function Preprocessing Step

    Training Step Evaluation Step Model Step Start End
  64. 모델 학습 Work fl ow: AWS Step Function Preprocessing Step

    Training Step Evaluation Step Model Step Start End
  65. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Training Step Evaluation Step Model Step Start End Preprocessing Step
  66. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  67. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = “train.py",

    # ೟ण௏٘౵ੌݺ hyperparameters = base_hyperparameters, # Estimator hyperparameter ࢸ੿ … instance_type = “ml.m5.xlarge", # ೟ण ੋझఢझ ఋੑ ૑੿ framework_version = “1.0-1”). # Estimator(XGBoost)੄ ߡ੹ ૑੿ training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  68. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = “train.py",

    # ೟ण௏٘౵ੌݺ hyperparameters = base_hyperparameters, # Estimator hyperparameter ࢸ੿ … instance_type = “ml.m5.xlarge", # ೟ण ੋझఢझ ఋੑ ૑੿ framework_version = “1.0-1”). # Estimator(XGBoost)੄ ߡ੹ ૑੿ training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  69. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, # ਤীࢲ ੿੄ೠ Estimator # input data ҃۽(S3 Uri) ૑੿ data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  70. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, # ਤীࢲ ੿੄ೠ Estimator # input data ҃۽(S3 Uri) ૑੿ data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  71. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, # ਤীࢲ ੿੄ೠ Estimator # input data ҃۽(S3 Uri) ૑੿ data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  72. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) # п Stepਸ ࣽࢲ؀۽ ੿੄ branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  73. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  74. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  75. from sagemaker.xgboost.estimator import XGBoost xgb_train = XGBoost( entry_point = "train.py",

    hyperparameters = base_hyperparameters, … instance_type = "ml.m5.xlarge", framework_version = "1.0-1") training_step = steps.TrainingStep( "Train Step", estimator=xgb_train, data={"train":sagemaker.TrainingInput("s3://mbucket/train.csv", content_type="text/csv")}, job_name=execution_input["TrainingJobName"], ) workflow_graph = Chain([training_step, processing_evaluation_step]) branching_workflow = Workflow( name=“ModelPipelineSample",definition=workflow_graph, …) branching_workflow.create() execution = branching_workflow.execute() 모델 학습 Work fl ow: AWS Step Function Preprocessing Step Training Step Evaluation Step Model Step Start End
  76. 모델 관리 서비스 요구사항

  77. 모델 관리 서비스 요구사항

  78. 모델 관리 서비스 요구사항 모델 버전 및 Metric 관리

  79. 모델 관리 서비스 요구사항 모델 배포 승인 관리 모델 버전

    및 Metric 관리
  80. 모델 관리 서비스 요구사항 모델 배포 승인 관리 모델 버전

    및 Metric 관리 운영 편의성
  81. 모델 관리 서비스 요구사항 모델 배포 승인 관리 모델 버전

    및 Metric 관리 운영 편의성
  82. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry
  83. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry
  84. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry 모델 Metric 및 버전 등록/관리 O O 모델 배포 승인/기록 관리 O O
  85. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry 모델 Metric 및 버전 등록/관리 O O 모델 배포 승인/기록 관리 O O 플랫폼 운영 난이도 중 하
  86. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry 모델 Metric 및 버전 등록/관리 O O 모델 배포 승인/기록 관리 O O 플랫폼 운영 난이도 중 하
  87. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

    Model Registry 모델 Metric 및 버전 등록/관리 O O 모델 배포 승인/기록 관리 O O 플랫폼 운영 난이도 중 하
  88. 모델 학습 파이프라인 배포

  89. 모델 학습 파이프라인 배포 모델 코드 preprocessing.py train.py evaluation.py

  90. 모델 학습 파이프라인 배포 모델 코드 Jenkins

  91. 모델 학습 파이프라인 배포 모델 코드 배포 S3 Jenkins

  92. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 배포 S3

    Jenkins Lambda
  93. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 배포 S3

    Jenkins Step Function Lambda Workflow 생성
  94. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 모델 저장

    배포 S3 Jenkins Step Function Model Registry Lambda Workflow 생성
  95. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 모델 저장

    배포 S3 Jenkins Step Function Model Registry 모델 Approve 모델 배포 Lambda Workflow 생성
  96. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 모델 저장

    배포 S3 Jenkins Step Function Model Registry 모델 Approve 모델 배포 Lambda Workflow 생성
  97. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  98. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  99. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  100. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  101. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  102. Features Online Store Offline Store User Data Transaction Data User

    Log Feature란? User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  103. Features Online Store Offline Store User Data Transaction Data User

    Log Feature란? User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  104. Features Online Store Offline Store User Data Transaction Data User

    Log Feature란? User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  105. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  106. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  107. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  108. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  109. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  110. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  111. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  112. Feature란? Features Online Store Offline Store User Data Transaction Data

    User Log User ID 나이 평균 결제금액 송금액 사고여부 A 20 2,000 2,000 0 B 40 50,000 50,000 0 C 60 10,000 1,000,000 1
  113. 기존 Feature 추출 과정의 문제점 Data Warehouse (Hadoop)

  114. Data Warehouse (Hadoop) Impala SQL Spark 기존 Feature 추출 과정의

    문제점
  115. Data Warehouse (Hadoop) Impala SQL Spark ? 기존 Feature 추출

    과정의 문제점
  116. Data Warehouse (Hadoop) Impala SQL Spark ? 기존 Feature 추출

    과정의 문제점
  117. Feature Store 요구사항 간편한 Feature 추출

  118. Feature Store 요구사항 간편한 Feature 추출 Feature 재사용성

  119. Feature Store 요구사항 간편한 Feature 추출 Feature 재사용성 고가용성 Scale

    - out
  120. Feature Store 비교 Feast SageMaker Feature Store vs

  121. Feature Store 비교 Feast SageMaker Feature Store vs

  122. Feature Store 비교 Feast SageMaker Feature Store vs

  123. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store

  124. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store

  125. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적
  126. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적
  127. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가
  128. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가
  129. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가
  130. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요!
  131. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요!
  132. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요!
  133. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요! 월 운영 비용 $5,433 $19,200 Offline - 36TB Online - 60GB 저장 일 5000만 조회
  134. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요! 월 운영 비용 $5,433 $19,200 Offline - 36TB Online - 60GB 저장 일 5000만 조회
  135. Feature Store 종합평가 및 기술선정 Feast를 선택했어요! Feast SageMaker Feature

    Store 비고 Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가 AWS 저장소 지원 Offline - Redshift, (Athena+S3) Online - DynamoDB, Redis Offline - S3+Athena Online - DynamoDB로 추정 Feast의 Athena Connector 우리 팀에서 개발했어요! 월 운영 비용 $5,433 $19,200 Offline - 36TB Online - 60GB 저장 일 5000만 조회
  136. Feature 물리 저장소 선정 Online Store Offline Store

  137. Feature 물리 저장소 선정 Online Store Offline Store

  138. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

    기능 Athena - Serverless. Query 수행시 과금 S3 + Athena Offline Store Online Store
  139. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

    기능 Athena - Serverless. Query 수행시 과금 S3 + Athena Offline Store Online Store
  140. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

    기능 Athena - Serverless. Query 수행시 과금 S3 + Athena Offline Store Online Store
  141. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

    기능 Athena - Serverless. Query 수행시 과금 S3 + Athena Offline Store Online Store
  142. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

    기능 Athena - Serverless. Query 수행시 과금 S3 + Athena Offline Store Online Store
  143. Feature 물리 저장소 선정 매우 빠른 조회 성능 잦은 데이터

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  144. Feature 물리 저장소 선정 매우 빠른 조회 성능 잦은 데이터

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  145. Feature 물리 저장소 선정 매우 빠른 조회 성능 잦은 데이터

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  146. Feature 물리 저장소 선정 매우 빠른 조회 성능 잦은 데이터

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  147. Feature 물리 저장소 선정 매우 빠른 조회 성능 잦은 데이터

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  148. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Feast Online Store ML 모델 개발 (Feature 조회) Batch 적재 (Step Function AWS Batch) (Kafka, Nifi) (Impala, Spark, Airflow) 모델 학습 파이프라인
  149. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  150. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  151. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  152. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  153. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  154. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  155. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  156. Feature 파이프라인 실시간 데이터 실시간 처리, 적재 (TBD) Data Warehouse

    (Hadoop, Kudu) Feature 가공, Batch 적재 모델 Serving Offline Store Online Store ML 모델 개발 (Feature 조회) (Kafka, Nifi) (Impala, Spark, Airflow) Feast Batch 적재 (Step Function AWS Batch) 모델 학습 파이프라인
  157. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  158. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  159. 모델 Serving 요구사항

  160. 모델 Serving 요구사항 다양한 모델 프레임워크 지원

  161. 모델 Serving 요구사항 다양한 모델 프레임워크 지원

  162. 모델 Serving 요구사항 실시간 Inference 다양한 모델 프레임워크 지원

  163. 모델 Serving 요구사항 실시간 Inference 다양한 모델 프레임워크 지원

  164. 모델 Serving 요구사항 실시간 Inference 운영 모니터링 다양한 모델 프레임워크

    지원
  165. 모델 Serving 요구사항 실시간 Inference 운영 모니터링 다양한 모델 프레임워크

    지원
  166. 모델 Serving 요구사항 실시간 Inference 운영 모니터링 다양한 모델 프레임워크

    지원
  167. 모델 Serving Model - Inference Model - Proxy

  168. 모델 Proxy Service Model - Proxy Model - Inference Online

    Feature
  169. 모델 Proxy Service Model - Proxy Model - Inference Online

    Feature
  170. 모델 Proxy Service Model - Proxy Model - Inference Online

    Feature
  171. 모델 Inference Service Model - Proxy Model - Inference Online

    Feature
  172. 모델 Inference Service Model - Proxy Model - Inference Online

    Feature
  173. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

    Format ONNX Runtime Java Python 모델 프레임워크 모델 구동 API Endpoint
  174. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

    Format ONNX Runtime Python 모델 프레임워크 모델 구동 API Endpoint Java
  175. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

    Format ONNX Runtime Python 모델 프레임워크 모델 구동 API Endpoint Java
  176. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

    Format ONNX Runtime Python 모델 프레임워크 모델 구동 API Endpoint Java
  177. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

    Format ONNX Runtime Python 모델 프레임워크 모델 구동 API Endpoint Java
  178. API Endpoint

  179. API Endpoint

  180. API Endpoint Spring MVC Fast API

  181. API Endpoint Spring MVC Fast API 운영 레퍼런스와 경험 라이브러리

    지원
  182. API Endpoint Spring MVC Fast API 운영 레퍼런스와 경험 라이브러리

    지원
  183. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API
  184. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API
  185. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API
  186. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API 운영 레퍼런스와 경험 라이브러리 지원
  187. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API 운영 레퍼런스와 경험 라이브러리 지원 Model - Proxy
  188. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

    Fast API 운영 레퍼런스와 경험 라이브러리 지원 Model - Inference
  189. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  190. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  191. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  192. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  193. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  194. 모델 Serving 배포 Jenkins Model Registry Spinnaker EKS Docker Image

  195. 1. MLOps 구축 배경 2. 모델 학습 파이프라인 3. Feature

    Store 4. 모델 Serving 5. Wrap - Up
  196. Summary 모델 학습 파이프라인 Feature Store 모델 Serving

  197. Summary 모델 학습 파이프라인 Feature Store 모델 Serving

  198. Summary 모델 학습 파이프라인 Feature Store 모델 Serving

  199. Architecture Overview Pay Hadoop Service Feature DB Offline Feature Store

    Feature API Online Feature Store 모델 학습 파이프라인 Model Registry Model - Proxy Feature Store 모델 학습 파이프라인 Model Serving Model Inference
  200. Architecture Overview Pay Hadoop Service S3 Athena Feast Model Proxy

    Model Inference Feature Store 모델 학습 파이프라인 Model Serving 모델 학습 파이프라인 Model Registry ElastiCache for Redis
  201. Architecture Overview Pay Hadoop Service S3 Athena Feast ElastiCache for

    Redis Model Proxy Model Inference Feature Store 모델 학습 파이프라인 Model Serving 모델 학습 파이프라인 Model Registry
  202. Architecture Overview Pay Hadoop Service S3 Athena Feast Step Function

    Model Registry Model Proxy Model Inference Feature Store 모델 학습 파이프라인 Model Serving ElastiCache for Redis
  203. Architecture Overview Pay Hadoop Service S3 Athena Feast Step Function

    Model Registry Model Proxy Model Inference Feature Store 모델 학습 파이프라인 Model Serving ElastiCache for Redis
  204. 적용 결과

  205. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving
  206. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving
  207. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving
  208. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving
  209. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving
  210. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

    단위) 0 3.5 7 10.5 14 3 7 2 4 2 3 모델 학습파이프라인 Feature 준비 모델 Serving 개발 리소스 50% 효율화
  211. 적용 결과 : 비용 구축 운영 유지보수 On - Premise

    Cloud * 구축 : 서버 장비 * 운영 : 운영 인건비, 사용요금(AWS) * 유지보수 : 장비 교체 * 합계 : 5년간 운영한다는 가정 하에 금액 합계
  212. 적용 결과 : 비용 * 구축 : 서버 장비 *

    운영 : 운영 인건비, 사용요금(AWS) * 유지보수 : 장비 교체 * 합계 : 5년간 운영한다는 가정 하에 금액 합계 구축 운영 유지보수 On - Premise Cloud
  213. 적용 결과 : 비용 * 구축 : 서버 장비 *

    운영 : 운영 인건비, 사용요금(AWS) * 유지보수 : 장비 교체 * 합계 : 5년간 운영한다는 가정 하에 금액 합계 구축 운영 유지보수 On - Premise Cloud
  214. 적용 결과 : 비용 구축 운영 유지보수 합계 On -

    Premise Cloud 30% 비용 절감 * 합계 : 5년간 운영한다는 가정 하에 금액 합계
  215. 적용 결과 : 비용 30% 비용 절감 * 합계 :

    5년간 운영한다는 가정 하에 금액 합계 구축 운영 유지보수 합계 On - Premise Cloud
  216. 적용 결과 : 비용 30% 비용 절감 * 합계 :

    5년간 운영한다는 가정 하에 금액 합계 구축 운영 유지보수 합계 On - Premise Cloud
  217. Lesson Learned

  218. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정

  219. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정

  220. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정

  221. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정 2.

    Cloud와 On - Premise 연동(네트워크, 정책, 데이터 관리)
  222. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정 2.

    Cloud와 On - Premise 연동(네트워크, 정책, 데이터 관리)
  223. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정 2.

    Cloud와 On - Premise 연동(네트워크, 정책, 데이터 관리)
  224. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정 2.

    Cloud와 On - Premise 연동(네트워크, 정책, 데이터 관리) 3. 조직에 맞는 기술 찾기
  225. Future Work 1. 모델 모니터링 고도화 2. A/B 테스트 3.

    DataOps 고도화
  226. Future Work 1. 모델 모니터링 고도화 2. A/B 테스트 3.

    DataOps 고도화
  227. Future Work 1. 모델 모니터링 고도화 2. A/B 테스트 3.

    DataOps 고도화
  228. Future Work 1. 모델 모니터링 고도화 2. A/B 테스트 3.

    DataOps 고도화
  229. “Hidden Technical Debt in ML Systems”

  230. “Hidden Technical Debt in ML Systems”

  231. “Hidden Technical Debt in ML Systems”

  232. “Hidden Technical Debt in ML Systems”

  233. E.O.D