흔히 파이썬을 사용해서 개발을 하다보면 pip install을 사용해서 다양한 라이브러리들을 설치하게 된다. 그리고 이렇게 설치한 라이브러리들에서 취약점이 발견되고, 이에 대해서 신규 패치가 나왔을 때, 이를 자동으로 탐지하고 취약점이 있는 라이브러리가 현재 프로젝트
Python에서 Set과 List List는 순서가 있고 mutable한 객체 집합이며, Set은 순서가 없고 mutable한 고유한 객체 집합이다. 두 자료구조 사이의 가장 큰 차이는 1) 객체의 중복 허용 여부와 2) 순서를 가지고 있는가 이다. 순서가 중요할
2022년 2/1 ~ 5/3까지 진행되었던 대회로, 자연어 처리 기반의 대회였다.해당 대회는 기본적으로 의료 진단 노트에 대한 피드백의 자동화를 위한 AI 모델의 학습이 주요 목적이었다.기본적으로, 의사를 방문할 때 의사가 증상을 어떻게 해석하는지에 따라 진단이 정확한
일반적으로 파일 업로드를 할 때에는 multipart/form-data 형식으로 업로드를 진행하도록 API를 디자인하게 된다. 이때, 일반적인 파일들은 파일 크기가 그렇게 크지 않겠지만, 영상 파일과 같이 용량이 GB 단위가 되는 경우에는 단순히 한번의 요청으로 전체
딕셔너리는 파이썬 프로그래밍에서 자주 사용되는 자료구조로, key-value pair 구조로 이루어져 있다.그 구조는 마치 자바의 HashMap이나 Javascript의 JSON과 비슷한데, 그렇다면 저레벨 수준에서 구현은 어떠할까?기본적으로 dict 타입은 저레벨 구
일반적으로 Flask는 wsgi와 연동되도록 synchronous하게 동작하는 것을 기대하고 구현되었기 때문에 async 함수 없이 구현하는 것이 일반적인 패턴이다.그러나 경우에 따라 필요에 의해 Flask 서버에 비동기 non-blocking I/O 기반 기능을 추가
ORM에서 성능 이슈가 발생하면 가장 흔한 원인으로 N+1 Problem이 언급된다. N+1 Problem은 쿼리 1번으로 N건의 데이터를 가져왔는데 원하는 데이터를 얻기 위해 이 N건의 데이터를 데이터 수 만큼 반복해서 2차적으로 쿼리를 수행하는 문제이다.이러한 문제
ORM(Object Relational Model)은 사물을 추상화시켜 이해하려는 OOP적 사고방식과 DataModel을 정형화하여 관리하려는 RDB 사이를 연결할 계층의 역할로 제시된 패러다임으로 RDB의 모델을 OOP에 Entity 형태로 투영시키는 방식을 사용한다
TL;DR CPU 성능에 종속적이라면 workers의 수를 늘리고, I/O 종속적이라면 pseudo-thread를 사용하라gunicorn은 유닉스 pre-fork 웹서버의 구현체이다.gunicorn은 시작 시 마스터 프로세스로 시작을 하고, workers 수 만큼 fo
tl;dr: 이 에러는 플라스크에서 request body의 데이터에 대해 미리 정의한 key로 접근하는데에 실패하면서 발생하는 에러이다.Flask를 사용해서 파일 업로드 및 data form을 받는 웹 서버를 구현할 때에 가끔씩 다음과 같은 메세지를 리턴 받는 경우가
Docker로 처음 작업을 하다보면 불필요한 이미지들을 다운받거나 도커 이미지를 잘못 굽는 등의 이슈가 자주 발생하게 된다. 이러한 이미지들이 쌓이다보면 어느 순간 이미지 리스트가 사용하지 않는 이미지들로 가득차게 된다. 이러한 경우에 쉽게 불필요한 도커 이미지들을 지
WSGI(Web Server Gateway Interface)란 CGI(Common Gateway Interface)의 일종으로, 프레임워크의 웹 서버이다. 비슷한 개념으로 ASGI(Asynchronous Server Gateway Interface)가 있는데, 대표적
Ubuntu 도커 이미지 상에서 혹은 EC2 ubuntu나 ECS 등에서 opencv-python를 설치한 뒤 cv2를 import하려고 할 때 다음과 같은 에러 메세지를 마주할 수 있다.이러한 에러가 나는 가장 큰 이유는 cv2의 dependency 라이브러리 파일들
attach는 실행되고 있는 컨테이너에 접속하는 명령어이다. 사용법은 다음과 같다.간단하게 말하자면, attach를 사용하게 되면 로컬 머신의 stdin, stdout, stderr 스트림들이 해당 컨테이너와 연결되게 된다. 즉, 표준 입출력을 연결시켜서 컨테이너 내부
자신이 어떤 기술을 개발하였다. 예를 들어 이미지에서 사람을 자동으로 찾아주는 영상 인식 기술이라고 하자. 이 때, 사람들에게 "이 기술의 검출율은 99.99%입니다"라고 말하면 사람들은 "오우...!!!" 하면서 감탄할 것이다. 반면에 "이 기술의 검출율은 50%입니
Knowledge Distillation = 지식(Knowledge) + 증류(Distillation) 지식 : 어떤 대상에 대하여 배우거나 실천을 통하여 알게 된 명확한 인식이나 이해 증류 : 액체를 가열하여 생긴 기체를 냉각하여 다시 액체로 만드는 일. 여러 성분
tl;drGreedy: Select the best probable token at a timeBeam Search: Select the best probable responseRandom Sampling: Random based on probabilityTempera
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
최근, 딥러닝 연구가 과한 전기를 사용하고, 이것이 지구온난화를 악화시키고 있다는 연구들이 많이 나오고 있다. 이 논문은 그러한 사회 분위기를 이해하고 거대 모델을 학습시킴에 있어서 더 적은 계산량만으로 충분히 좋은 성능을 내게 만드는데 초점을 맞추었다이 논문은 Int