Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

TechY

[MlOps] Data Engineering in Uber (1) 본문

[MlOps]/[IndustryCheck]

[MlOps] Data Engineering in Uber (1)

hskimim 2021. 9. 11. 18:10

MlOps 에 관심을 가지게 된지 얼마 안된터라, 이분야가 대체 어떤 것이고 뭐부터 공부해야 할지 막막했던 차에, 구세주를 찾았으니 바로 Uber Engineering Blog 이다.

 

서비스를 제공하면서 그 과정에서 가졌던 이슈들과 프레임워크들을 공유해주는데, 실무에서 사용되는 다양한 기술들과 주요 이슈들을 체크하기에 너무 좋은 자료들이라 정리하려 한다. 정리는 한 source posting 당 또는 source posting의 주제를 나름대로 묶어서, 하나의 포스트로 짧게 정리해 가볍게 진행한다.

 

Meet Michelangelo: Uber’s Machine Learning Platform [원글]

Michelangelo pipeline

  1. 데이터 관리
    1. 파이프라인 요구 사항:
      1. 확장 가능
      2. 성능 우수
      3. 데이터 플로우와 품질 모니터링 지원
      4. 온라인, 오프라인 학습 및 예측을 지원
    2. 오프라인 : 
      1. 데이터 레이크는 : HDFS
      2. 데이터 접근 및 전처리는 : Spark, Hive SQL
    3. 온라인 : 
      1. 오프라인과 같이 HDFS 에서 읽어오는 것이 불가능
      2. 필요한 feature들을 Cassandra 에 올려서 낮은 latency로 읽어오게 한다.
    4. feature store : 
      1. Centralized : 모델을 만들 때, 하나의 feature store가 관리하는 (ex.versioning) 저장소에 접근해야 함
      2. daily-updated (time-series) : 매일매일 정해진 feature 가 업데이트된다.
  2. 모델 학습 
    1. 오프라인 분산 교육 시스템 지원
      1. YARN, MESOS : 분산 시스템을 관리해주는 툴
    2. 모델 아키텍처 + 파라미터 + 하이퍼파라미터 + 성능 지표가 모델 저장소로 옮겨져 관리된다.
      1. Mlflow 의 Model registry  와 같은 지원
  3. 모델 평가
    1. feature contribution
    2. metric visualization
      example of feature visualization
  4. 모델 배포
    1. 오프라인 : 컨테이너에 배포하고, Spark 에서 실행하여, 배치단위로 예측해 Hive나 Cassandra에 저장
    2. 온라인 : 예측 서비스 클러스터에 배포하여 분산 처리로 실시간 예측 지원

 

Conclusion

Uber 사내의 machine learning platform의 전반적인 플로우와 사용하는 프레임워크들을 살펴봤는데, 블로그 초반에서 사용하는 오픈 소스로, HDFS , Spark , Samza , Cassandra , MLLib , XGBoost TensorFlow 를 언급하였는데, 많은 부분들이 Apache 재단에서 나온 프레임워크들인 걸 알 수 있었다.

 

사용할 라이브러리를 선택할 때마다, 엔지니어들이 많은 고민을 했을텐데, 이 글을 읽는 것만으로는 그런 것을 느끼기에는 (당연하지만,) 한계가 있는 것 같다... 언급된 라이브러리들을 써보면서 미켈란젤로 플랫폼의 플로우를 모방하여 만들어보면, 각 라이브러리에 대한 특징을 파악할 수 있는, 좋은 연습이 될 것 같다.

'[MlOps] > [IndustryCheck]' 카테고리의 다른 글

[MlOps] Data Engineering in Uber (2)  (0) 2021.09.11