Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

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

kakao
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

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. MLOps 구축 전 개발과정 모델 Serving ML 모델 모델 A

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

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

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

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

    피쳐 통합 관리 부재 운영 복잡도 증가 모델 A ver1 모델 A ver2 모델 B ver1 Feature 데이터
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 모델 학습 파이프라인 모델 학습 Workflow 모델 관리 서비스 Data

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

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

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

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

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

    Ingestion Data Preprocessing Model Training Model Evaluation Model Metric / 버전 관리 Model 성능 비교 Model Deploy Model Registry
  22. 모델 학습 Work fl ow: AWS Step Function Preprocessing Step

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

    Training Step Evaluation Step Model Step Start End
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 모델 관리 서비스 비교 On - prem MLflow AWS SageMaker

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

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

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

    Model Registry 모델 Metric 및 버전 등록/관리 O O 모델 배포 승인/기록 관리 O O 플랫폼 운영 난이도 중 하
  39. 모델 학습 파이프라인 배포 모델 코드 Lambda 트리거 모델 저장

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

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

    배포 S3 Jenkins Step Function Model Registry 모델 Approve 모델 배포 Lambda Workflow 생성
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. Feature Store 종합평가 및 기술선정 Feast SageMaker Feature Store 비고

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

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

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

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

    Feature 메타 관리 및 재사용성 O △ Feast의 Feature 관리가 조금 더 체계적 트러블 슈팅 △ X 두 서비스 모두 docs, ref 부족 SageMaker online store 내부 확인 불가
  61. 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 우리 팀에서 개발했어요!
  62. 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 우리 팀에서 개발했어요!
  63. 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 우리 팀에서 개발했어요!
  64. 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만 조회
  65. 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만 조회
  66. 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만 조회
  67. Feature 물리 저장소 선정 S3 - 고가용성 및 비용 최적화

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

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

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

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

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

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

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

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

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

    조회에 적합 Online Store S3 + Athena Redis Offline Store
  77. 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) 모델 학습 파이프라인
  78. 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) 모델 학습 파이프라인
  79. 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) 모델 학습 파이프라인
  80. 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) 모델 학습 파이프라인
  81. 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) 모델 학습 파이프라인
  82. 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) 모델 학습 파이프라인
  83. 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) 모델 학습 파이프라인
  84. 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) 모델 학습 파이프라인
  85. 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) 모델 학습 파이프라인
  86. 모델 Inference - ONNX Pytorch Scikit - learn Tensorflow ONNX

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

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

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

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

    Format ONNX Runtime Python 모델 프레임워크 모델 구동 API Endpoint Java
  91. API Endpoint 사용하기 쉬움 커뮤니티와 레퍼런스 Type Checking Spring MVC

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

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

    Fast API 운영 레퍼런스와 경험 라이브러리 지원 Model - Inference
  94. 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
  95. Architecture Overview Pay Hadoop Service S3 Athena Feast Model Proxy

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

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

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

    Model Registry Model Proxy Model Inference Feature Store 모델 학습 파이프라인 Model Serving ElastiCache for Redis
  99. 적용 결과 : 개발 리소스 Before After 개발 리소스 (주

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

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

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

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

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

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

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

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

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

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

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

    5년간 운영한다는 가정 하에 금액 합계 구축 운영 유지보수 합계 On - Premise Cloud
  111. Lesson Learned 1. 상황에 맞는 MLOps 적용 범위 결정 2.

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

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

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

    Cloud와 On - Premise 연동(네트워크, 정책, 데이터 관리) 3. 조직에 맞는 기술 찾기