전체 글

Machine Learning

[머신러닝 시스템 설계] 모델 배포와 예측 서비스

본 포스팅은 한빛미디어의 [머신러닝 시스템 설계] Chapter 7을 읽으면서 모델 배포 관련 내용을 정리한 글입니다. 머신러닝 모델을 배포하는 것은 ‘어려운 부분을 모두 무시하면’ 매우 간단하다. Flask나 FastAPI를 통해 POST 요청 엔드포인트로 예측 함수를 래핑하고, 예측 함수가 컨테이너에서 실행하는 데 필요한 종속성 패키지들을 배치한다. 그리고 모델 및 관련 컨테이너를 AWS나 GCP 같은 클라우드 서비스에 푸시해 엔드포인트를 노출하면 된다. 엔드포인트란? 사용자가 요청(입력 데이터)을 보내고 ML 모델의 추론 결과값을 수신하는 인터페이스(ex. HTTPS)를 제공하는 엔트리포인트 URL # FastAPI를 사용해 예측함수를 POST 엔드포인트로 변환하는 방법 예시 @app.route('..

Paper Review

[논문 리뷰] HOTR: End-to-End Human-Object Interaction Detection with Transformers

conference : CVPR 2021 (Oral) 논문 링크 : https://arxiv.org/pdf/2104.13682.pdf Introduction Human-Object Interaction (HOI) detection은 이미지 내에서 set을 예측하는 task이다. 이전 work들은 object detection을 먼저 수행하고, 각각 pair를 만든 후 post-processing step을 거쳐 interaction을 파악하는 간접적인 방식을 사용했다. 특히, sequential HOI detector와 같은 초기 work들은 후처리 과정에서 neural network를 사용했기 때문에, 시간과 계산 비용이 많이 들었다. 이러한 sequential HOI detector의 문제점을 극복하..

Paper Review

[논문 리뷰] (CERTIFIED!!) ADVERSARIAL ROBUSTNESS FOR FREE!

Conference : ICLR 2023 논문 링크 : https://arxiv.org/pdf/2206.10550.pdf Abastract 본 논문에서는 off-the-shelf pre-trained model만을 활용해서 $l_2$-norm bounded perturbation에 대한 certified adversarial robustness SOTA를 달성했다. 이를 위해 pretrained DDPM(denoising diffusion probabilistic model)과 high-accuracy classifier를 결합하여 기존의 denoised smoothing approach를 인스턴스화했다. 이러한 방식은 모델의 파라미터를 fine tuning 하거나 retraining 할 필요 없다는 장..

Paper Review

[논문 리뷰] Diffusion Models for Adversarial Purification

Conference : ICML 2022 논문 링크 : https://arxiv.org/pdf/2205.07460.pdf Abstract Adversarial purification은 생성 모델을 사용하여 adversarial purturbation을 제거하는 defense 방법이다. 이러한 방법은 attack 형태와 classification model의 형태를 가정하지 않으므로, 보이지 않는 위협으로부터 기존의 classifier를 robust 하게 만들 수 있다. 그러나 현재 이러한 방법의 성능은 adversarial training 방법에 비해 뒤떨어진다. 이 논문에서는 adversarial purification을 위해 diffusion model을 사용하는 DiffPure 모델을 제안한다. a..

Deep Learning

Deep Learning Model Inference time 정확히 측정하는 방법

Deep learning model inference time을 정확히 측정하는 법 요즘 ChatGPT, DALL-E 등 딥러닝 모델들이 많은 주목을 받고, 이에 따라 사용량 또한 급증하면서 모델을 사용할 때의 적은 inference time이 더욱 중요해지고 있다. 사용자 경험을 조금이라도 향상시키기 위해서는 밀리초 단위를 줄이는 것도 매우 중요할 것이다. 그렇기 때문에 model의 inference time을 잘 측정해야 하는데, 이를 측정하기 위해서는 비동기 처리에 대한 이해가 필요하다. 동기 처리(Synchronous execution) vs 비동기 처리(Asynchronous execution) 동기와 비동기의 차이점을 간단히 설명하면 동기는 직렬적으로 작동하는 방식이고, 비동기는 병렬적으로 작..

Deep Learning

nn.CrossEntropyLoss() 파헤치기

손실 함수(loss function)는 데이터를 토대로 산출한 모델의 예측 값과 실제 값의 차이를 표현하는 지표이다. 다시 말하면, 손실 함수는 모델 성능의 '나쁨'을 나타내는 지표인 것이다. (하지만, loss가 낮다고 해서 무조건적으로 더 '좋은' 모델인 것은 아니다.) 머신러닝 모델은 일반적으로 크게 회귀(regression)와 분류(classification)로 나누어볼 수 있다. 손실 함수도 이에 따라 두 가지로 나뉜다. 회귀에서 사용하는 대표적인 loss function은 MAE, MSE, RMSE 가 있다. 분류에서 사용하는 대표적인 loss function은 BCE(Binary Cross-Entropy), CE(Cross-Entropy)가 있다. 본 포스팅에서는 분류에서 사용하는 대표적인 ..

Algorithm/BaekJoon

[BaekJoon] 1931 회의실 배정 - Python 풀이

문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 난이도 Silver 1 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시..

Deep Learning

트랜스포머(Transformer)의 토큰 임베딩(Token Embedding) 파헤치기(feat. Tensor)

GPT-1 논문 리뷰를 하던 중 문득 "multi-layer transformer decoder를 사용할 때 input으로 사용할 $h_0$는 어떻게 만들어질까?"라는 궁금증이 들었다. GPT에서 multi-layer transformer decoder를 사용해서 Maksed self-attention을 하기 전에 token들의 context vector(U)와 token embedding matrix($W_e$)를 곱한 후 positional embedding matrix($W_p$)를 더해서 input으로 사용할 $h_0$를 만든다. 이때 각 matrix들의 차원은 어떤 식으로 구성될까? 이를 알기 위해서는 텐서(Tensor)의 개념을 짚고 넘어가야 한다. 딥 러닝을 하게 되면 다루게 되는 가장 기본..

seungseop
꾸준한 성장일기