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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  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)

    View Slide

  6. Rachel Yelo Weather

    View Slide

  7. Rachel Yelo Weather

    View Slide

  8. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  9. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  10. 카카오페이 ML 모델
    개인신용평가 이상거래탐지 유저프로파일

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. MLOps 구축 전 개발과정
    모델 Serving
    ML 모델
    생산성 저하


    피쳐 통합 관리 부재
    모델 A ver1
    모델 A ver2
    모델 B ver1
    Feature 데이터

    View Slide

  24. MLOps 구축 전 개발과정
    모델 Serving
    ML 모델
    생산성 저하


    피쳐 통합 관리 부재


    운영 복잡도 증가
    모델 A ver1
    모델 A ver2
    모델 B ver1
    Feature 데이터

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. AWS 도입

    View Slide

  33. AWS 도입
    유연한


    컴퓨팅 리소스

    View Slide

  34. AWS 도입
    유연한


    컴퓨팅 리소스

    View Slide

  35. AWS 도입
    유연한


    컴퓨팅 리소스

    View Slide

  36. AWS 도입
    유연한


    컴퓨팅 리소스
    관리형


    서비스 제공

    View Slide

  37. AWS 도입
    유연한


    컴퓨팅 리소스
    관리형


    서비스 제공

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  43. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. 모델 학습 Work
    fl
    ow 요구사항

    View Slide

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


    지원

    View Slide

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


    지원

    View Slide

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


    편의성
    ML Workflow


    지원

    View Slide

  60. 모델 학습 Work
    fl
    ow 요구사항
    플랫폼 운영


    편의성
    ML Workflow


    지원

    View Slide

  61. 모델 학습 Work
    fl
    ow 요구사항
    플랫폼 운영


    편의성
    ML Workflow


    지원

    View Slide

  62. 모델 학습 Work
    fl
    ow 요구사항
    플랫폼 운영


    편의성
    ML Workflow


    지원

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  79. 모델 관리 서비스 요구사항
    모델 배포


    승인 관리
    모델 버전 및
    Metric 관리

    View Slide

  80. 모델 관리 서비스 요구사항
    모델 배포


    승인 관리
    모델 버전 및
    Metric 관리
    운영


    편의성

    View Slide

  81. 모델 관리 서비스 요구사항
    모델 배포


    승인 관리
    모델 버전 및
    Metric 관리
    운영


    편의성

    View Slide

  82. 모델 관리 서비스 비교
    On
    -
    prem MLflow
    AWS SageMaker


    Model Registry

    View Slide

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


    Model Registry

    View Slide

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


    Model Registry
    모델 Metric 및 버전 등록/관리 O O
    모델 배포 승인/기록 관리 O O

    View Slide

  85. 모델 관리 서비스 비교
    On
    -
    prem MLflow
    AWS SageMaker


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

    View Slide

  86. 모델 관리 서비스 비교
    On
    -
    prem MLflow
    AWS SageMaker


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

    View Slide

  87. 모델 관리 서비스 비교
    On
    -
    prem MLflow
    AWS SageMaker


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

    View Slide

  88. 모델 학습 파이프라인 배포

    View Slide

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


    train.py


    evaluation.py

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  97. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  98. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  113. 기존 Feature 추출 과정의 문제점
    Data
    Warehouse


    (Hadoop)

    View Slide

  114. Data
    Warehouse


    (Hadoop)
    Impala SQL
    Spark
    기존 Feature 추출 과정의 문제점

    View Slide

  115. Data
    Warehouse


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

    View Slide

  116. Data
    Warehouse


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

    View Slide

  117. Feature Store 요구사항
    간편한


    Feature 추출

    View Slide

  118. Feature Store 요구사항
    간편한


    Feature 추출
    Feature


    재사용성

    View Slide

  119. Feature Store 요구사항
    간편한


    Feature 추출
    Feature


    재사용성
    고가용성


    Scale
    -
    out

    View Slide

  120. Feature Store 비교
    Feast SageMaker


    Feature Store
    vs

    View Slide

  121. Feature Store 비교
    Feast SageMaker


    Feature Store
    vs

    View Slide

  122. Feature Store 비교
    Feast SageMaker


    Feature Store
    vs

    View Slide

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


    Feature Store

    View Slide

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


    Feature Store

    View Slide

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


    Feature Store
    비고
    Feature 메타 관리


    및 재사용성
    O △
    Feast의 Feature 관리가


    조금 더 체계적

    View Slide

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


    Feature Store
    비고
    Feature 메타 관리


    및 재사용성
    O △
    Feast의 Feature 관리가


    조금 더 체계적

    View Slide

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


    Feature Store
    비고
    Feature 메타 관리


    및 재사용성
    O △
    Feast의 Feature 관리가


    조금 더 체계적
    트러블 슈팅 △ X
    두 서비스 모두 docs, ref 부족


    SageMaker online store


    내부 확인 불가

    View Slide

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


    Feature Store
    비고
    Feature 메타 관리


    및 재사용성
    O △
    Feast의 Feature 관리가


    조금 더 체계적
    트러블 슈팅 △ X
    두 서비스 모두 docs, ref 부족


    SageMaker online store


    내부 확인 불가

    View Slide

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


    Feature Store
    비고
    Feature 메타 관리


    및 재사용성
    O △
    Feast의 Feature 관리가


    조금 더 체계적
    트러블 슈팅 △ X
    두 서비스 모두 docs, ref 부족


    SageMaker online store


    내부 확인 불가

    View Slide

  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


    우리 팀에서 개발했어요!

    View Slide

  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


    우리 팀에서 개발했어요!

    View Slide

  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


    우리 팀에서 개발했어요!

    View Slide

  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만 조회

    View Slide

  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만 조회

    View Slide

  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만 조회

    View Slide

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

    View Slide

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

    View Slide

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


    Athena - Serverless. Query 수행시 과금
    S3 + Athena
    Offline Store Online Store

    View Slide

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


    Athena - Serverless. Query 수행시 과금
    S3 + Athena
    Offline Store Online Store

    View Slide

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


    Athena - Serverless. Query 수행시 과금
    S3 + Athena
    Offline Store Online Store

    View Slide

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


    Athena - Serverless. Query 수행시 과금
    S3 + Athena
    Offline Store Online Store

    View Slide

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


    Athena - Serverless. Query 수행시 과금
    S3 + Athena
    Offline Store Online Store

    View Slide

  143. Feature 물리 저장소 선정
    매우 빠른 조회 성능


    잦은 데이터 조회에 적합
    Online Store
    S3 + Athena Redis
    Offline Store

    View Slide

  144. Feature 물리 저장소 선정
    매우 빠른 조회 성능


    잦은 데이터 조회에 적합
    Online Store
    S3 + Athena Redis
    Offline Store

    View Slide

  145. Feature 물리 저장소 선정
    매우 빠른 조회 성능


    잦은 데이터 조회에 적합
    Online Store
    S3 + Athena Redis
    Offline Store

    View Slide

  146. Feature 물리 저장소 선정
    매우 빠른 조회 성능


    잦은 데이터 조회에 적합
    Online Store
    S3 + Athena Redis
    Offline Store

    View Slide

  147. Feature 물리 저장소 선정
    매우 빠른 조회 성능


    잦은 데이터 조회에 적합
    Online Store
    S3 + Athena Redis
    Offline Store

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  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)
    모델 학습 파이프라인

    View Slide

  157. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  158. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

  159. 모델 Serving 요구사항

    View Slide

  160. 모델 Serving 요구사항
    다양한


    모델 프레임워크 지원

    View Slide

  161. 모델 Serving 요구사항
    다양한


    모델 프레임워크 지원

    View Slide

  162. 모델 Serving 요구사항
    실시간


    Inference
    다양한


    모델 프레임워크 지원

    View Slide

  163. 모델 Serving 요구사항
    실시간


    Inference
    다양한


    모델 프레임워크 지원

    View Slide

  164. 모델 Serving 요구사항
    실시간


    Inference
    운영


    모니터링
    다양한


    모델 프레임워크 지원

    View Slide

  165. 모델 Serving 요구사항
    실시간


    Inference
    운영


    모니터링
    다양한


    모델 프레임워크 지원

    View Slide

  166. 모델 Serving 요구사항
    실시간


    Inference
    운영


    모니터링
    다양한


    모델 프레임워크 지원

    View Slide

  167. 모델 Serving
    Model
    -
    Inference
    Model
    -
    Proxy

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


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

    View Slide

  174. 모델 Inference - ONNX
    Pytorch
    Scikit
    -
    learn
    Tensorflow
    ONNX Format


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

    View Slide

  175. 모델 Inference - ONNX
    Pytorch
    Scikit
    -
    learn
    Tensorflow
    ONNX Format


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

    View Slide

  176. 모델 Inference - ONNX
    Pytorch
    Scikit
    -
    learn
    Tensorflow
    ONNX Format


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

    View Slide

  177. 모델 Inference - ONNX
    Pytorch
    Scikit
    -
    learn
    Tensorflow
    ONNX Format


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

    View Slide

  178. API Endpoint

    View Slide

  179. API Endpoint

    View Slide

  180. API Endpoint
    Spring MVC Fast API

    View Slide

  181. API Endpoint
    Spring MVC Fast API
    운영 레퍼런스와 경험


    라이브러리 지원

    View Slide

  182. API Endpoint
    Spring MVC Fast API
    운영 레퍼런스와 경험


    라이브러리 지원

    View Slide

  183. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API

    View Slide

  184. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API

    View Slide

  185. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API

    View Slide

  186. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API
    운영 레퍼런스와 경험


    라이브러리 지원

    View Slide

  187. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API
    운영 레퍼런스와 경험


    라이브러리 지원
    Model
    -
    Proxy

    View Slide

  188. API Endpoint
    사용하기 쉬움


    커뮤니티와 레퍼런스


    Type Checking
    Spring MVC Fast API
    운영 레퍼런스와 경험


    라이브러리 지원
    Model
    -
    Inference

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  195. 1. MLOps 구축 배경


    2. 모델 학습 파이프라인


    3. Feature Store


    4. 모델 Serving


    5. Wrap
    -
    Up

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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


    for Redis

    View Slide

  201. Architecture Overview
    Pay Hadoop
    Service
    S3 Athena Feast
    ElastiCache


    for Redis
    Model Proxy Model Inference
    Feature Store
    모델 학습 파이프라인
    Model Serving
    모델 학습 파이프라인 Model Registry

    View Slide

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


    for Redis

    View Slide

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


    for Redis

    View Slide

  204. 적용 결과

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


    50% 효율화

    View Slide

  211. 적용 결과 : 비용
    구축 운영 유지보수
    On
    -
    Premise Cloud
    * 구축 : 서버 장비


    * 운영 : 운영 인건비, 사용요금(AWS)


    * 유지보수 : 장비 교체


    * 합계 : 5년간 운영한다는 가정 하에 금액 합계

    View Slide

  212. 적용 결과 : 비용
    * 구축 : 서버 장비


    * 운영 : 운영 인건비, 사용요금(AWS)


    * 유지보수 : 장비 교체


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

    View Slide

  213. 적용 결과 : 비용
    * 구축 : 서버 장비


    * 운영 : 운영 인건비, 사용요금(AWS)


    * 유지보수 : 장비 교체


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

    View Slide

  214. 적용 결과 : 비용
    구축 운영 유지보수 합계
    On
    -
    Premise Cloud
    30%


    비용 절감
    * 합계 : 5년간 운영한다는 가정 하에 금액 합계

    View Slide

  215. 적용 결과 : 비용
    30%


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

    View Slide

  216. 적용 결과 : 비용
    30%


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

    View Slide

  217. Lesson Learned

    View Slide

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


    View Slide

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


    View Slide

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


    View Slide

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


    2. Cloud와 On
    -
    Premise 연동(네트워크, 정책, 데이터 관리)


    View Slide

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


    2. Cloud와 On
    -
    Premise 연동(네트워크, 정책, 데이터 관리)


    View Slide

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


    2. Cloud와 On
    -
    Premise 연동(네트워크, 정책, 데이터 관리)


    View Slide

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


    2. Cloud와 On
    -
    Premise 연동(네트워크, 정책, 데이터 관리)


    3. 조직에 맞는 기술 찾기

    View Slide

  225. Future Work
    1. 모델 모니터링 고도화


    2. A/B 테스트


    3. DataOps 고도화

    View Slide

  226. Future Work
    1. 모델 모니터링 고도화


    2. A/B 테스트


    3. DataOps 고도화

    View Slide

  227. Future Work
    1. 모델 모니터링 고도화


    2. A/B 테스트


    3. DataOps 고도화

    View Slide

  228. Future Work
    1. 모델 모니터링 고도화


    2. A/B 테스트


    3. DataOps 고도화

    View Slide

  229. “Hidden Technical Debt in ML Systems”

    View Slide

  230. “Hidden Technical Debt in ML Systems”

    View Slide

  231. “Hidden Technical Debt in ML Systems”

    View Slide

  232. “Hidden Technical Debt in ML Systems”

    View Slide

  233. E.O.D

    View Slide