본문 바로가기

분류 전체보기

Amazon SageMaker Amazon SageMaker는 머신러닝 모델을 구축, 훈련 및 배포할 수 있는 완전 관리형 서비스이다. 본 글은 4/21에 AWS에서 진행한 TdML Gameday 사전교육 내용을 바탕으로 작성한 것으로, 본격적으로 SageMaker를 사용하기에 앞서 정리해두면 좋은 내용이다. 나중에 조금이라도 덜 헤매기 위하여! 1. ML Workflow 단계별 필요한 SageMaker 서비스 머신러닝 모델을 상용화하기까지의 과정은 크게 4단계(Prepare(준비), Build(모델 개발), Train & Tune(훈련), Deploy & Manage(배포 & 관리))로 나눌 수 있다. 각 단계별로 SageMaker가 어떠한 서비스들을 지원해주는지 알아보자. 1-1. Prepare(준비) 머신러닝 모델을 개발하는데 .. 더보기
Multi-Armed Bandit with Seldon Core A/B Testing with Seldon Core에서 라우터는 두 모델에 보낼 트래픽을 나누는 역할을 하였다. 보통 A/B Testing의 궁극적 목표는 여러 모델 중에서 가장 좋은 모델을 찾는 것이다. 다행히도 라우터에 각 모델 inference에 대한 피드백을 받아서 모델 성능을 기록하고 라우팅에 반영하는 기능을 추가할 수 있다. 셀던 코어에서는 라우터에서 선택된 모델의 inference에 대한 피드백을 reward라는 숫자로 받을 수 있다. 추천시스템을 예로 들자면, 모델에게 추천받은 컨텐츠를 유저가 클릭하거나 구매했을 경우 1, 그렇지 않았을 경우 0의 reward를 줄 수 있고, 또는 유저가 부여한 평점을 reward로 줄 수도 있다. 우리의 문제에서는 reward가 무조건 1 또는 0의 값을.. 더보기
Ensemble with Seldon Core 머신러닝에서 앙상블(ensemble)은 여러 모델의 예측을 결합하여 최종 결과를 내는 기법을 의미한다. 예를 들면 분류(classification) 문제에서 가장 많은 모델이 선택한 클래스(class)를 최종 답으로 채택하거나 회귀(regression) 문제에서 여러 모델의 예측값을 가중치 평균내는 것이다. 그 외에도 여러 앙상블 기법들이 있다. 이번 포스트에서는 셀던 코어의 combiner라는 기능을 이용하여 앙상블 파이프라인을 쿠버네티스에 배포해보고자 한다. Ensemble Pipeline 설계 모델 A와 모델 B의 결과를 앙상블하는 파이프라인이다. 두 모델은 전처리된 데이터를 받은 다음 예측값을 combiner 컴포넌트에게 보낸다. Combiner는 두 모델의 예측값을 결합하여 최종 결과를 도출한다.. 더보기
셀던 코어와 텐서플로우 서빙 텐서플로우 서빙 공식 문서 : https://www.tensorflow.org/tfx/guide/serving?hl=ko 모델 적용하기 | TFX | TensorFlow 도움말 Kaggle에 TensorFlow과 그레이트 배리어 리프 (Great Barrier Reef)를 보호하기 도전에 참여 모델 적용하기 소개 TensorFlow Serving은 운영 환경을 위해 설계되었으며 머신러닝 모델을 고성능으로 적용 www.tensorflow.org A/B Testing with Seldon Core에서 inference 컴포넌트를 커스텀 컨테이너로 제작하였다. 구체적으로 모델 로드와 predict 함수를 파이썬 코드로 직접 구현하고 도커파일로 이미지를 만들었다. 이렇게 하면 말 그대로 커스텀이니까 자유도가 높.. 더보기
A/B Testing with Seldon Core 셀던 코어 공식 문서 : https://docs.seldon.io/projects/seldon-core/en/latest/index.html 이번 포스트에서는 셀던 코어라는 머신러닝(ML) 모델 서빙 프레임워크를 소개하고자 한다. 셀던 코어는 ML 파이프라인의 각 컴포넌트를 gRPC/REST 마이크로서비스로 변환해준다. 요청이 들어왔을 때 각 컴포넌트가 순서대로 실행되도록 해주며 컴포넌트 간의 통신은 개발자가 별도로 손볼 필요가 없다. 그리고 Kubeflow를 이용하여 파이프라인을 Kubernetes에 손쉽게 배포할 수 있다. 셀던 코어로 ML 파이프라인을 Kubernetes에 배포하는 과정은 다음과 같이 5 단계로 나누어진다. 학습된 모델과 전처리기를 원격 저장소(ex. metakage, s3, Goo.. 더보기
포트폴리오 이론 3편 - 여러 위험 자산으로의 확장 2편에서는 위험 자산이 두 개인 경우만 다루었다. 이제 평균-분산 최적화 기법을 위험 자산이 여러 개인 상황으로 확장해보자. 그 전에 최적화 프로그램으로 주어진 조건에서 최적의 위험 포트폴리오를 찾는 방법에 대하여 알아보자. 주어진 조건에서 최적의 포트폴리오 찾기 주어진 위험 수준에서 기대수익률 극대화 수익률이 각각 $r_1, r_2, ..., r_n$인 $n$개의 위험자산으로 위험 포트폴리오를 구축하고 싶다고 하자. 그리고 이들의 공분산 행렬을 $\sum$이라고 가정하자. 포트폴리오의 표준편차가 $\sigma$로 주어졌을 때 기대수익률을 최대화하는 각 자산의 구성 비율 $w_1, w_2, ..., w_n$을 찾아야한다. $w = [w_1, w_2, ..., w_n]^T$, $E(r) = [E(r_1),.. 더보기
포트폴리오 이론 2편 - 평균-분산 최적화 이번 포스트에서는 위험 포트폴리오의 구성을 결정하는 방법에 대하여 알아보자. 간단하게 채권 펀드와 주식 펀드, 이 두 개의 위험 자산만으로 위험 포트폴리오를 구축한다고 가정하자. 용어 정리 금융 상품의 스펙을 구하기 위해서는 우선 미래 시나리오(ex. 불황, 호황, 정상 성장, etc.)를 여러 개 가정하고 각 시나리오에서 예상되는 금융 상품의 수익률을 구한다. 총 \(n\)개의 시나리오가 있다고 가정하고 각 시나리오의 인덱스를 \(i\)로 표기하자. \(r_B(i)\) : 채권 펀드의 시나리오 \(i\)에서의 수익률 \(r_S(i)\) : 주식 펀드의 시나리오 \(i\)에서의 수익률 \(E(r_B)\) : 채권 펀드의 기대 수익률 \(E(r_S)\) : 주식 펀드의 기대 수익률 \(\sigma_B\) .. 더보기
포트폴리오 이론 1편 - 위험 자산과 무위험 자산 용어 정리 기대수익률/평균수익률 : 포트폴리오의 가능한 수익률의 평균 위험 자산 : 리스크가 있는, 수익률의 분산이 0보다 큰 자산 (ex. 주식, 펀드, 채권) 무위험 자산 : 리스크가 없는, 수익률의 분산이 0인 자산 (ex. 미국의 재정증권, 국고채) 무위험수익률 : 무위험 자산의 수익률 위험프리미엄 : (기대수익률) - (무위험수익률) 위험회피도/위험의 가격(price of risk) : (위험프리미엄) / (수익률의 분산) 샤프비율 : (위험프리미엄) / (수익률의 표준편차) 투자기회집합 : 실현 가능한 모든 포트폴리오의 위험(수익률의 표준편차)와 기대수익률의 조합 포트폴리오의 위험을 측정하기 위해서 보통 포트폴리오의 가능한 수익률의 분산 혹은 표준편차를 많이 사용한다. 위험회피도 또는 샤프비율.. 더보기