본문 바로가기

전체 글

회사에 인턴으로 와서 AWS 과금으로 $8,000 날린 썰 (AWS-P 인스턴스 과금, 포스트모템(Postmortem)) 한 번 상상해보라. 당신은 여름방학을 맞아 회사에서 인턴십을 시작했다. 설레는 마음으로 시작한 첫 회사 인턴십 생활 중 실수로 8000달러 (약 950만원)을 날리게 되었다면? 상상만해도 아찔한 순간의 주인공들을 모시고 직접 이야기를 들어보았다. Q: 간단한 자기소개를 부탁드린다. 수민: SIA에서 딥러닝 시스템 엔지니어로 인턴십을 진행하고 있는 손수민이다. 수학과 컴퓨터 공학을 전공했다. 홍준: 저도 딥러닝 시스템 엔지니어로 인턴십을 하고 있는 양홍준이다. Q: 회사에서 어떤 일을 하는가? 홍준: 현재 딥러닝 시스템은 로컬 서버에서 작동하고 있는데, 이 시스템이 AWS에서 동작할 수 있도록 환경 설정 같은 작업을 하고 있다. 수민님과 같이 작업한다. Q: 오늘은 무슨 일을 하고 있었는가? 수민: 인퍼런.. 더보기
Pytorch와 TensorRT를 이용한 딥 러닝 추론 최적화 이 글은 이전 글에서 계속되는 글입니다. 1. Pytorch Model 먼저 추론하기 위한 모델을 Pytorch를 이용하여 구성합니다. 앞 글에서 설명하였듯이 Bert를 이용합니다. Bert를 밑바닥부터 구성하긴 어려우니 transformers모듈에서 제공하는 모델을 사용합니다. 모델의 입력은 input_ids, attention_mask, token_type_ids 세 개를 받고, 출력은 Bert의 층 중 하나를 선택했습니다. 모델의 입력과 출력의 형태는 코드를 통해 확인할 수 있습니다. import transformers import torch class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.model = t.. 더보기
Pytorch를 TensorRT로 변환하기 위한 환경 설정 1. Introduction TensorRT는 학습된 딥러닝 모델을 최적화하여 NVIDIA GPU 상에서 추론하는 속도를 수십 ~ 수십배까지 향상시켜주는 모델 최적화 엔진입니다. 지원하는 프레임워크는 pytorch, tensorflow, keras, onnx 등이 있습니다. 여러 프레임워크에서 직접적인 TensorRT 변환을 지원하고 있지만 다소 제약이 있으며, 대신 onnx로의 변환은 대부분의 프레임워크에서 더 나은 지원을 해주고 있으며 onnx로 변환한 모델은 다시 TensorRT로 변환이 가능합니다. 저희는 대부분의 연구/개발을 pytorch로 하기 때문에 pytorch을 onnx로 변환하고 이를 TensorRT로 추론하는 방법을 선택하였습니다. 이번 글에서는 TensorRT로 변환했을 때 속도가 .. 더보기
Horovod 모듈 사용하여 Pytorch Multi GPU 학습 효율적으로 하기 1. Introduction 기본적으로 Pytorch를 이용하여 학습을 가속하기 위해서는 다수의 GPU를 활용해야 합니다. 이전 글에서 기술한 것처럼 다수의 GPU를 사용할 수 있는 방법을 Pytorch 자체에서 DistributedDataParallel이라는 모듈로 제공하고 있습니다. 하지만 해당 글에서 볼 수 있듯이 고려해야 할 사항들이 많습니다. 예를 들어 multiprocessing의 프로세스를 관리하는 것과 DataLoader에서 pin memory, shuffle 등을 고려해야 합니다. 하지만 Horovod라는 모듈을 이용하면 굉장히 간단한 코드 추가로 Multi GPU 학습이 가능합니다. 이 글에서는 Pytorch와 Horovod를 이용하여 다수의 GPU를 이용한 학습 방법을 소개합니다. 2.. 더보기
라벨 스무딩(Label smoothing), When Does Label Smoothing Help? $ \newcommand{\infdiv}{D\infdivx} \newcommand{\comz}{\mathcal{Z}} \newcommand{\vec}{\boldsymbol} $ 딥 러닝의 신뢰도를 개선하기 위한 모델 보정(calibration) 기법 소개 최근 다양한 분야에서 각광 받는 딥 러닝은 성능 면에서 매우 우수한 결과를 보여주고 있지만, 실제 애플리케이션에서 사용하기에는 신뢰성 측면에서 부족한 면이 있습니다. 대표적인 예로, 의료 영상에서 딥 러닝 모델을 사용해 질병 여부를 판단할 때 신뢰성에 대한 고려가 없다면 모델의 출력 결과인 예측 확률과 실제로 정답을 맞힐 확률이 일치하지 않는 문제가 있습니다. 다른 말로, 일반적인 딥 러닝 모델은 실제로 정답을 맞출 확률보다 자신이 예측한 결과를 과잉 .. 더보기
Real-world Super-resolution via Kernel Estimation and Noise Injection [paper], [code] *테스트 코드만 공개됨 Real-world 및 Blind Super-resolution (SR)에 관련된 논문으로 CVPR 2020 workshop (NTIRE 2020) 페이퍼입니다. 더불어 NTIRE 2020 real-world SR 챌린지에서 1위를 차지한 방법이기도 합니다. 여기서는 Real-world SR과 Blind SR에 대해서 간략히 알아보고 논문에서 제안한 방식을 알아보겠습니다. Introduction 일반적으로 기존의 SR 방법들은 low-resolution (LR), $I_{LR}$, 영상을 다음과 같이 high-resolution (HR), $I_{HR}$ 영상들로부터 구했습니다. $$ I_{LR} = I_{HR} \downarrow_s $$ 이를 통해 .. 더보기
Anomaly detection using one class neural networks (Raghavendra Chalapath, 2018) 이상 탐지(Anomaly Detection)는 정상 데이터들과 큰 차이를 갖는 이상치(Anomaly)를 탐지하는 문제로 최근 딥 러닝을 이용해 해결하려는 연구가 많이 진행되고 있습니다. 이상치는 정상적인 패턴에서 벗어나 예상되는 패턴을 따르지 않는 개체를 의미하며, 오류로 인해 야기되기도 하지만 알려지지 않은 새로운 발견을 찾아내는 근거가 되기도 합니다. 따라서 이상 탐지는 사이버 보안, 의학, 금융, 행동패턴, 자연과학 및 제조업 등 다양한 산업 분야에서 활용될 수 있으며 최근 놀라운 성능 향상을 이끈 딥 러닝과 결합해 탁월한 성과를 낼 것으로 기대되고 있습니다. 본 논문에서는 딥 러닝 모델을 통해 추출한 특징(deep learning features)과 전통적인 이상 탐기 기법인 One-Class S.. 더보기
CVPR 2020 동향 분석 **************** 목차 **************** 1. CVPR2020 Wordcloud 분석 2. CVPR2019 vs. CVPR2020 3. ICCV2019 vs. CVPR2020 4. 의견 *************************************** 1. Word cloud 분석 특정 산업과 기술의 트렌드를 파악하기 위한 방법 중 하나로 중요 저널/컨퍼런스에 발표된 논문의 제목들을 이용해 통계를 내는 방법이 있습니다. 이번 글에서는 CVPR 2020에 발표된 논문들을 통해 컴퓨터 비전 연구 관련 트렌드가 어떤지 살펴보도록 하겠습니다. 보다 직관적인 시각화를 위해 CVPR 2020 메인 섹션의 논문 제목을 이용해 Word cloud와 각 단어별 그래프를 만들어보았습니다. W.. 더보기