목록분류 전체보기 (61)
TechY
calibration 1편에서는 calibration 이란 무엇인지와 주로 사용되는 metric 에 대해 다루었고, calibration 2편에서는 고전적인 calibration 방식이자 sklearn.calibration module 이 지원하는 방법론인 sigmoid 와 isotonic method 에 대해 알아봤다. 이번에는 딥러닝에서 사용되는 calibration method 에 대해 알아보려 한다. 참고한 논문은 아래와 같다. On Calibration of Modern Neural Networks [링크] Calibrating Deep Neural Networks using Focal Loss [링크] On Mixup Training: Improved Calibration and Predict..
지난 1편에 이어, 이번에는 model calibration 에 대한 기법들을 알아보려 한다. model calibration 기법은 크게 두 개로 나뉘어질 수 있다. 1. 모델을 학습한 후 (train-set), calibration post-processing 진행 (validate-set) 2. 모델을 학습할 때, calibration method 동시에 학습 (train-set), calibration method 에 대한 hyper-parameter tuning (validate-set) 이번에 다뤄보려고 하는 것은, 위의 1번에 해당하는 post-processing 기법이며 특히 sklearn.calibration.CalibratedClassifierCV 모듈에 있는 기법인 'sigmoid' ..
model distilation 논문을 보면, teacher model이 주어진 input 에 대한 예측값, 더 정확히는 특정 class labels 에 할당된 predicted probability 을 사용해 student model 을 학습시킨다. 이는, 모델이 주는 probability 는 모델의 knowledge 라고 할 수 있음을 시사한다. calibration 이란 예측된 probability 가 옳음의 우도 (likelihood of correctness) 를 나타내게 하는 task 를 의미한다. 한 논문의 예시를 가지고 와보면, 100개의 예측값이 있다고 하고 모델이 특정 class label 에 대한 예측 probability/confidence (probability 는 불확실성을 내포..
이번엔 도커 네트워크에 대해 정리해보려 한다. 도커 공식 docs와 블로그를 참고하였다. 도커 컨테이너는 서로 격리된 프로세스이기 때문에, 컨테이너 간 통신을 위해서는 docker network 옵션을 고려해야 한다. 도커 네트워크 드라이버는 아래와 같이 5가지가 존재한다. bridge : 하나의 호스트에서 여러 컨테이너가 통신 host : 컨테이너가 호스트의 네트워크 내에서 실행 (격리 x) overlay : 여러 호스트에서 분산되어 돌아가는 컨테이너 간 통신 macvlan : 컨테이너에 MAC 주소를 할당하여, 물리적 장치로 인식하게 함 none : 네트워크 완전 격리 이 중에서 default값이자 가장 많이 사용된다는 bridge driver 만 다뤄보도록 하겠다. 제일 처음으로 docker 의 d..
참고 자료 : https://forecasters.org/wp-content/uploads/gravity_forms/7-c6dd08fee7f0065037affb5b74fec20a/2017/07/Laptev_Nikolay_ISF2017.pdf https://eng.uber.com/monitoring-data-quality-at-scale/ https://eng.uber.com/neural-networks/ http://www.cs.columbia.edu/~lierranli/publications/TSW2017_paper.pdf 이번 포스팅에서는 파이프라인을 구축하기 위한 엔지니어링 요소보다는, 모델링에 대한 것을 다루려 한다. 두 가지 목적에 따른, 두 가지 모델에 대해서 이야기할 것이고 각각의 테스크는 ..
MlOps 에 관심을 가지게 된지 얼마 안된터라, 이분야가 대체 어떤 것이고 뭐부터 공부해야 할지 막막했던 차에, 구세주를 찾았으니 바로 Uber Engineering Blog 이다. 서비스를 제공하면서 그 과정에서 가졌던 이슈들과 프레임워크들을 공유해주는데, 실무에서 사용되는 다양한 기술들과 주요 이슈들을 체크하기에 너무 좋은 자료들이라 정리하려 한다. 정리는 한 source posting 당 또는 source posting의 주제를 나름대로 묶어서, 하나의 포스트로 짧게 정리해 가볍게 진행한다. Meet Michelangelo: Uber’s Machine Learning Platform [원글] 데이터 관리 파이프라인 요구 사항: 확장 가능 성능 우수 데이터 플로우와 품질 모니터링 지원 온라인, 오프..
첫 번째 정리에 이어서 두 번째 정리로 도커가 데이터를 관리하는 방법에 대해서 정리해보려 한다. 참고한 소스는 도커 공식 홈페이지의 docs를 보고 정리하였다. 기본적으로, 도커는 데이터를 writable layer 에 저장하기 때문에, container가 사라지면, 그 안에 있는 데이터도 함께 없어진다. 따라서, container 에서 저장한 데이터를 도커 호스트에 가져오기 위해서는, 마운트 옵션을 사용해야 하며, 이에 대한 유형은 아래와 같다. volume bind mount tmpfs mount 1. Volume 권장되는 마운트 유형으로, 위의 그림에서 보는 것과 같이, 호스트 파일 시스템에 도커 볼륨을 위한 경로가 따로 존재한다. 리눅스의 경우에는 "/var/lib/docker/volumes/" ..
mlops 를 키워드로 검색하면 가장 처음에 그리고 공통적으로 등장하는 친구가 있는데, 바로 도커이다. 도커가 뭘까 해서 설치해서 이것저것 해보다가, 좀 제대로 정리해야겠다 싶어서, 유튜브 freeCodeCamp.org 채널에 있는 도커 2시간 강의를 듣고 이해한 내용을 정리해본다. 추가적으로 글로 잘 정리된 블로그를 참고하였다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 프로그램 별 독립된 환경을 제공해주고 이를 이미지화하여 어디든 옮기고 실행할 수 있게 하면서, 동일한 실행 환경을 보장한다. 비교 대상인 VM(virtual machine)과 비교하면서 좀 더 이해해보도록 하자. Share the underlying OS Kernel 운영 체제 OS 는 OS kernel (ex. Linux) ..