logo
logo
리디의 머신러닝 파이프라인 톺아보기
코드너리  |  2022. 12. 08
데이터 파이프라인
사용된 기술:
airflow-image
hadoop-image
kubernetes-image
redash-image
content

요약:

  • 데이터 처리 파이프 라인
    1. 고객들이 리디에 접속해 서비스를 사용하면, 익명화된 행동 로그들이 데이터사이언스팀의 로그 저장소에 쌓입니다. 이런 작업을 위해 Amazon Web Service(AWS)의 EMR을 적극 활용하고 있습니다. 데이터사이언스팀은 이런 데이터를 수년간 안정적으로 운영하고 있고, 그동안 축적한 노하우를 바탕으로 EMR을 사용해 머신러닝 모델의 학습과 추론 결과 생성에 필요한 데이터를 만들고 있습니다.
    2. 데이터 처리 파이프라인에서는 수많은 작업들을 주기적으로 처리하는데, 이런 작업들은 Airflow를 사용해 스케줄링 하고 있습니다. 머신러닝에 필요한 데이터 생성과 모델 학습도 Airflow에서 주기적으로 스케줄링하고 있습니다.
  • ML 모델링
    1. 데이터사이언스팀은 머신러닝 엔지니어가 여러 가지 실험들을 손쉽게 하도록 돕기 위해 Bazel이라는 빌드 툴을 코드 빌드와 모델 배포에 사용합니다. Bazel이 생소한 분들이 있을 텐데요. Bazel은 Google에서 사용하는 빌드 툴이고 TensorFlow를 비롯해 많은 프로젝트가 Bazel로 빌드되고 있습니다. Bazel로 빌드된 코드는 AWS의 Elastic Kubernetes Service(EKS)에 배포돼 학습 모델과 추론 결과를 만들고 있습니다.
  • A/B 테스팅
  • 서빙 API
    1. 머신러닝 모델이 생성한 추론 결과는 API를 통해 리디 앱과 웹에 결과를 제공하고 있습니다. 이를 위해, 리디에서는 Node.js를 사용해 API를 개발하고 있고, 데이터사이언스팀의 머신러닝 관련 API들도 Node.js를 통해 각종 추론 결과를 제공하고 있습니다.
  • 컨테이너 기반 운영과 배포 자동화
    • 리디의 각종 서비스들은 컨테이너 환경을 기반으로 서비스되고 있고, 데이터사이언스팀의 개발 및 운영 환경도 컨테이너 환경에 기반을 두고 있습니다. 리디는 EKS에서 컨테이너들을 효율적으로 운영하기 위해 Karpenter를 사용하고 있습니다. 머신러닝 작업들도 Karpenter와 연동돼 있어, 작업이 실행되는 동안만 GPU가 장착된 인스턴스들을 프로비저닝해서 사용하고, 사용이 끝나면 자동으로 반환해 비용이 낭비되지 않도록 운영하고 있습니다.
  • 모니터링
    1. 리디는 Production 환경에서 운영 중인 각종 서버들의 성능 지표들을 실시간으로 추적하고 있고, 문제가 생길 소지가 있는 것들은 미리 경고하도록 설정되어 있습니다. 응답 및 지연시간을 비롯한 각종 실시간 지표들은 Datadog로 수집해 대시보드로 모니터링하고 있고 있습니다.
Copyright © 2024. Codenary All Rights Reserved.