profile
AI Research Engineer

pip-audit과 GitHub Actions를 활용한 취약 라이브러리 탐지 파이프라인 구축하기

흔히 파이썬을 사용해서 개발을 하다보면 pip install을 사용해서 다양한 라이브러리들을 설치하게 된다. 그리고 이렇게 설치한 라이브러리들에서 취약점이 발견되고, 이에 대해서 신규 패치가 나왔을 때, 이를 자동으로 탐지하고 취약점이 있는 라이브러리가 현재 프로젝트

2023년 5월 14일
·
0개의 댓글
·

소스코드 레벨에서 비교하는 Python List와 Set의 차이

Python에서 Set과 List List는 순서가 있고 mutable한 객체 집합이며, Set은 순서가 없고 mutable한 고유한 객체 집합이다. 두 자료구조 사이의 가장 큰 차이는 1) 객체의 중복 허용 여부와 2) 순서를 가지고 있는가 이다. 순서가 중요할

2023년 5월 6일
·
0개의 댓글
·

Kaggle Writeup: NBME - Score Clinical Patient Notes

2022년 2/1 ~ 5/3까지 진행되었던 대회로, 자연어 처리 기반의 대회였다.해당 대회는 기본적으로 의료 진단 노트에 대한 피드백의 자동화를 위한 AI 모델의 학습이 주요 목적이었다.기본적으로, 의사를 방문할 때 의사가 증상을 어떻게 해석하는지에 따라 진단이 정확한

2023년 4월 30일
·
0개의 댓글
·

Dropzone.js를 사용해 대용량 파일 업로드 API 성능 개선

일반적으로 파일 업로드를 할 때에는 multipart/form-data 형식으로 업로드를 진행하도록 API를 디자인하게 된다. 이때, 일반적인 파일들은 파일 크기가 그렇게 크지 않겠지만, 영상 파일과 같이 용량이 GB 단위가 되는 경우에는 단순히 한번의 요청으로 전체

2023년 4월 21일
·
0개의 댓글
·
post-thumbnail

Python Dictionary 구조 CPython 소스 코드 레벨부터 파악하기

딕셔너리는 파이썬 프로그래밍에서 자주 사용되는 자료구조로, key-value pair 구조로 이루어져 있다.그 구조는 마치 자바의 HashMap이나 Javascript의 JSON과 비슷한데, 그렇다면 저레벨 수준에서 구현은 어떠할까?기본적으로 dict 타입은 저레벨 구

2023년 2월 14일
·
0개의 댓글
·

Flask에서 async 기반 API 구현하기

일반적으로 Flask는 wsgi와 연동되도록 synchronous하게 동작하는 것을 기대하고 구현되었기 때문에 async 함수 없이 구현하는 것이 일반적인 패턴이다.그러나 경우에 따라 필요에 의해 Flask 서버에 비동기 non-blocking I/O 기반 기능을 추가

2023년 2월 8일
·
0개의 댓글
·

FastAPI + SQLAlchemy 로 N+1 쿼리 해결하기

ORM에서 성능 이슈가 발생하면 가장 흔한 원인으로 N+1 Problem이 언급된다. N+1 Problem은 쿼리 1번으로 N건의 데이터를 가져왔는데 원하는 데이터를 얻기 위해 이 N건의 데이터를 데이터 수 만큼 반복해서 2차적으로 쿼리를 수행하는 문제이다.이러한 문제

2023년 2월 8일
·
0개의 댓글
·

FastAPI와 SQLAlchemy로 ORM 사용하기

ORM(Object Relational Model)은 사물을 추상화시켜 이해하려는 OOP적 사고방식과 DataModel을 정형화하여 관리하려는 RDB 사이를 연결할 계층의 역할로 제시된 패러다임으로 RDB의 모델을 OOP에 Entity 형태로 투영시키는 방식을 사용한다

2023년 2월 8일
·
0개의 댓글
·

Gunicorn config 설정을 통한 성능 튜닝

TL;DR CPU 성능에 종속적이라면 workers의 수를 늘리고, I/O 종속적이라면 pseudo-thread를 사용하라gunicorn은 유닉스 pre-fork 웹서버의 구현체이다.gunicorn은 시작 시 마스터 프로세스로 시작을 하고, workers 수 만큼 fo

2023년 2월 4일
·
2개의 댓글
·

Flask - "The browser (or proxy) sent a request that this server could not understand."

tl;dr: 이 에러는 플라스크에서 request body의 데이터에 대해 미리 정의한 key로 접근하는데에 실패하면서 발생하는 에러이다.Flask를 사용해서 파일 업로드 및 data form을 받는 웹 서버를 구현할 때에 가끔씩 다음과 같은 메세지를 리턴 받는 경우가

2023년 2월 2일
·
0개의 댓글
·

모든 도커 이미지 지우기

Docker로 처음 작업을 하다보면 불필요한 이미지들을 다운받거나 도커 이미지를 잘못 굽는 등의 이슈가 자주 발생하게 된다. 이러한 이미지들이 쌓이다보면 어느 순간 이미지 리스트가 사용하지 않는 이미지들로 가득차게 된다. 이러한 경우에 쉽게 불필요한 도커 이미지들을 지

2023년 2월 1일
·
0개의 댓글
·

gunicorn과 nginx를 사용해서 Flask 앱 배포하기

WSGI(Web Server Gateway Interface)란 CGI(Common Gateway Interface)의 일종으로, 프레임워크의 웹 서버이다. 비슷한 개념으로 ASGI(Asynchronous Server Gateway Interface)가 있는데, 대표적

2023년 1월 27일
·
3개의 댓글
·

에러 해결법: ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Ubuntu 도커 이미지 상에서 혹은 EC2 ubuntu나 ECS 등에서 opencv-python를 설치한 뒤 cv2를 import하려고 할 때 다음과 같은 에러 메세지를 마주할 수 있다.이러한 에러가 나는 가장 큰 이유는 cv2의 dependency 라이브러리 파일들

2023년 1월 25일
·
2개의 댓글
·

Docker attach와 exec의 차이

attach는 실행되고 있는 컨테이너에 접속하는 명령어이다. 사용법은 다음과 같다.간단하게 말하자면, attach를 사용하게 되면 로컬 머신의 stdin, stdout, stderr 스트림들이 해당 컨테이너와 연결되게 된다. 즉, 표준 입출력을 연결시켜서 컨테이너 내부

2022년 12월 10일
·
0개의 댓글
·
post-thumbnail

Precision과 Recall

자신이 어떤 기술을 개발하였다. 예를 들어 이미지에서 사람을 자동으로 찾아주는 영상 인식 기술이라고 하자. 이 때, 사람들에게 "이 기술의 검출율은 99.99%입니다"라고 말하면 사람들은 "오우...!!!" 하면서 감탄할 것이다. 반면에 "이 기술의 검출율은 50%입니

2022년 7월 17일
·
0개의 댓글
·
post-thumbnail

Knowledge Distillation

Knowledge Distillation = 지식(Knowledge) + 증류(Distillation) 지식 : 어떤 대상에 대하여 배우거나 실천을 통하여 알게 된 명확한 인식이나 이해 증류 : 액체를 가열하여 생긴 기체를 냉각하여 다시 액체로 만드는 일. 여러 성분

2022년 7월 4일
·
0개의 댓글
·
post-thumbnail

자연어 생성 (NLG)에서 자주 사용되는 디코딩 알고리즘 들

tl;drGreedy: Select the best probable token at a timeBeam Search: Select the best probable responseRandom Sampling: Random based on probabilityTempera

2022년 6월 6일
·
0개의 댓글
·

PyTorch에서 이미지 데이터에 대해 normalize를 할 때, mean=[0.485, 0.456, 0.406]과 std=[0.229, 0.224, 0.225]를 쓰는 이유는?

PyTorch vision 모델 페이지에 가보면, "All pre-trained models expect input images normalized in the same way, i.e. mini-batches of 3-channel RGB images of shape

2022년 4월 27일
·
0개의 댓글
·
post-thumbnail

GLaM: Efficient Scaling of Language Models with Mixture of Experts

최근, 딥러닝 연구가 과한 전기를 사용하고, 이것이 지구온난화를 악화시키고 있다는 연구들이 많이 나오고 있다. 이 논문은 그러한 사회 분위기를 이해하고 거대 모델을 학습시킴에 있어서 더 적은 계산량만으로 충분히 좋은 성능을 내게 만드는데 초점을 맞추었다이 논문은 Int

2022년 4월 8일
·
0개의 댓글
·