해당 글은 2022년 카카오에서 진행한 기술세션을 보고 알게된 정보나 개인적으로 느꼈던 점들을 정리한 글입니다.
카카오페이 MLOps 적용기 (feat. AWS)
나 또한 회사에서 MLOps 플랫폼 개발 프로젝트에 참여할 예정이라서 집중해서 들었다. 나중에 참고해야 할 수 있으니 여기에 세션 링크를 남겨두자.
1 2 3 4 5 6 7 8 9 10
- 카카오페이에는 개인신용평가, 이상거래탐지, 유저프로파일 등을 위한 모델이 운영되고 있다. - `Feature 데이터` -> `ML 모델` -> `모델 서빙` 구조는 모델 업데이트가 필요할 때마다 파이프라인을 다시 구축해야 하며 생산성이 저하된다. - 표준화된 MLOps 컴포넌트 정의(모델 학습 파이프라인, Feature Store, 모델 서빙) 후 인프라 구축을 진행하였다. - AWS Step Function은 SageMaker와 연동하여 모델학습 파이프라인을 쉽게 구축할 수 있다. - 모델 관리 서비스는 MLflow와 SageMaker Model Registry 중 비교 후 운영난이도가 낮은 Model Registry 선택하였다. - 학습 파이프라인: 개발 -> S3 -> Lambda -> Step Function -> Model Registry -> 승인 후 모델 배포 - Feature Store: 오프라인 스토어(훈련할 Feature 데이터 보관)와 온라인 스토어(실제 예측모델에서 사용하는 Feature 보관) - Feature Store 후보군: Feast, SageMaker Feature Store -> PoC 후 Feast 선택 - 메타 관리나 트러블 슈팅 등의 편의성을 비교한 결과 Feast를 선택하였으며, 물리 스토리지로는 오프라인 스토어로 S3 + Athena, 온라인 스토어로 redis를 선택하였다. - 모델 서빙 아키텍처: 모델 프록시(Spring MVC) + 모델 인터페이스(ONNX, FastAPI)
카카오 하둡 플랫폼의 아키텍처와 개발/운영에 대한 이야기
1 2 3 4 5 6 7 8 9
- 하둡 클러스터 140개 이상 / 노드는 약 1만대 정도 운영 중이다. - 2019년까지만 해도 외부 솔루션을 사용하여 클러스터 운영 -> 서버비용 증가 및 새로운 기능 도입 어려움의 문제점 존재 - 차세대 카카오 하둡 플랫폼(KHP)을 개발하기로 결정하였다. - KHP 구성요소: 배포판, 배포툴, 관리에이전트, 관리서버, 로그서비스 - 에이전트는 kafka와 druid를 사용하여 매트릭을 가져왔으며, druid SQL를 통해 Grafana로 대시보드를 생성하였다. - 로그서비스는 filebeat으로 수집하고 kafka와 logstash를 통해 가져온 후 es에 색인 및 저장, kibana로 시각화하였다. - 외부 솔루션을 사용하다가 자체 개발 솔루션을 도입한 결과 유지보수나 비용적인 측면에서 많이 개선되었다. - 오픈소스를 사용하다보니 소스 코드 자체에 대한 버그도 다수 존재했으며, 이를 하나씩 수정하고 컨트리뷰트도 진행하였다. - ranger를 도입했는데 소스 코드에 많은 버그들이 있었고 문서도 별로 없어서 고생했다.
Sequential Recommendation System 카카오 서비스 적용기
1 2 3 4 5
- 시퀀스 추천 모델은 웹툰과 같이 아이템 업데이트와 소비가 시간/요일에 dependency를 가지는 경우 적합하다. - 세션에서 소개된 모델은 BERT4Rec과 SMLP(Sequence-Aware MLP)이며, BERT4Rec에 비해 SMLP가 가볍다. - 추천 모델은 AB 테스트를 통해 CTR(클릭률, Click-Through Rate)과 CVR(전환율, Conversion Rate) 지표를 확인하여 실험하였다. - 개인화 추천은 Diversity와 Cold start 이슈가 존재한다. - Diversity는 이미 소비한 아이템을 다시 추천하게 되는 경우이며, Cold start는 새로 진입한 아이템의 경우 추천에서 제외되는 경우를 의미한다.
AI로 난치병을 치료할 수 있을까요?
흥미로운 주제라서 지나칠 수 없었다. 신약 개발할 때 전임상이나 임상 시 동물실험 대신 AI 시뮬레이터로 시험을 하는 시대가 왔으면 좋겠다고 생각했던 적이 있었기 때문이다. 세션에서 얻은 정보를 몇가지 적어두자.
1 2 3 4 5 6
- PubChem은 저분자화합물 데이터베이스이며 대략 1억개 데이터를 보관하고 있고, Protein Data Bank는 20만개의 단백질 구조 정보를 가지고 있다. - 인실리코는 계산화학 또는 계산생물학 방법론을 바탕으로 분석하는 도구이며 이를 통해 많은 신약 개발이 이루어지고 있다. - 알파폴드2 모델이 등장하여 정확도 평균 92%를 달성하였다. 이는 사람 정확도 90%보다 높다. - 구글과 딥마인드가 알파폴드2를 바탕으로 Isomorphic Labs라는 회사를 만들었다. - 딥마인드는 알파폴드2를 통해 얻은 2억개의 단백질 구조 데이터를 공개하였다. - 신약 개발 업계에서도 Large-scale AI가 많이 사용되고 있으며, 매우 강력한 도구 중 하나이다.