요즘 프로젝트를 하면서 FastAPI Router를 개발하면서 생긴 Trouble Shooting에 데하여 한번 적어보려고 합니다.FastAPI와 Swagger를 사용하여 VLM 영상 처리 서버를 개발하고, 이를 AWS EC2에 배포하여 Docker 이미지로 빌드하고 컨테이너를 실행했습니다. 서버 자체는 정상적으로 작동했지만, 프론트엔드와 연동했을 때 예상치 못한 CORS(Cross-Origin Resource Sharing) 에러를 마주하게 되었습니다. 이 글에서는 CORS 에러가 발생한 원인과 이를 어떻게 해결했는지, 그리고 운영 환경에서의 보안 고려 사항에 대해 자세히 다뤄보겠습니다.브라우저에서의 CORS 에러프론트엔드 애플리케이션을 연결하면서, http://localhost:5173에서 FastA..
이번에는 "LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS" 논문을 한번 리뷰해 보겠습니다.논문 링크 LoRA: Low-Rank Adaptation of Large Language ModelsAn important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes learxiv.orgAb..
이번에는 "Parameter-Efficient Transfer Learning for NLP" 논문을 한번 리뷰해보겠습니다.논문 링크 Parameter-Efficient Transfer Learning for NLPFine-tuning large pre-trained models is an effective transfer mechanism in NLP. However, in the presence of many downstream tasks, fine-tuning is parameter inefficient: an entire new model is required for every task. As an alternative, we propose transferarxiv.orgAbstract대규모 사전..
도커는 유니언 파일 시스템을 사용합니다. 이는 하나의 이미지로부터 여러 컨테이너를 만들 수 있는 방법을 제공하고, 이미지에 변경된 내용을 저장할 수 있도록 해줍니다. 데이터베이스, 웹 프로그램 등 업무에서 사용하는 애플리케이션에서 발생하는 데이터에 접근하고 이것을 공유하기 위해서 도커 볼륨 기능을 사용할 수 있습니다. 또한, 제공하는 서비스의 데이터와 로직은 반드시 분리되어야 한다는 특징이 있습니다. 애플리케이션에서 발생하는 여러 가지 상황이 데이터에 영향을 주지 않고 언제든 다른 컨테이너로 이전할 수 있다면 운영자는 데이터를 안전하게 관리하고 운영할 수 있다는 점이 있습니다. 도커 볼륨은 컨테이너에서 생성, 재사용할 수 있고 호스트 운영체제에서 직접 접근이 가능합니다. 또한 보존되어야 하는 데이터를 유..
이번에는 Python Programming 환경을 Container로 제공해 보기 위한 실습을 한번 해보겠습니다.Docker 컨테이너에 Python 이미지 설치 및 실행 # 샘플 소스 코드 작성(로또 프로그램)$ vi py_lotto.pyfrom random import shufflefrom time import sleepgamenum = input('로또 게임 횟수를 입력하세요: ')for i in range(int(gamenum)): balls = [x+1 for x in range(45)] ret = [] for j in range(6): shuffle(balls) # balls를 무작위로 섞고, number = balls.pop() ..
이번에는 Docker Container 명령어들에 데하여 한번 알아보겠습니다.이미지는 읽기 전용의 불변 값으로 만들어집니다. 이러한 이미지를 바탕으로 도커 엔진은 컨테이너를 생성할 수 있습니다. 이때 이미지와 함께 읽고 쓰기가 가능한 레이어를 추가해서 만들어지는 것이 컨테이너 입니다. 이번에는 컨테이너 구동, 접근, 로그, 운영 등의 명령을 다뤄보겠습니다. 이미지와 마찬가지로 컨테이너 명령도 dockerd 데몬이 제공하는 docker CLI API를 통해 제공됩니다.도커 이미지는 컨테이너 동작과 관련된 콘텐츠를 제공하고 이를 바탕으로 컨테이너의 동작이 이루어 집니다. 따라서 컨테이너 명령 대부분이 서비스 실행 및 운영과 관련되어 있습니다.Container는 Process다도커 컨테이너는 앞서 배운 도커 ..
도커 이미지 태그 설정과 도커 로그인 및 로그아웃Docker Login & Logout 부분부터 이어서 해보겠습니다.도커 태그(tag)는 원본 이미지에 참조 이미지 이름을 붙이는 명령입니다. 사용법은 다음과 같습니다.docker tag 원본 이미지[:태그] 참조 이미지[:태그]태그 설정은 새로운 참조명을 붙이는 작업이므로 이미지 ID는 변경되지 않습니다.Example이미지 ID에 세부 정보(OS, 버전 등)를 붙여 태그 지정:toby@tobykakao:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdebian latest d36fff645336 13 days ago 139MBnginx ..
Docker Container Service를 활용하기 위한 Docker 명령어(CLI)에 데하여 알아보겠습니다.모든 Docker 명령은 키워드로 docker를 앞에 사용하고 기본적인 명령어 사용법은 help 명령을 통해 확인하거나 docker에서 제공하는 문서를 참고합니다.docker COMMAND -helpDocker image 명령어도커 image는 docker의 핵심기술이며 코드로 개발된 컨테이너 내부 환경 정보(Binary, Library, 각종 Tool등)을 고스란히 복제해서 사용할 수 있습니다. Docker Container로 사용할 Docker image는 docker search를 통해 조회하면 Docker Hub 및 개인 사용자들이 공개한 관련 이미지를 살펴볼 수 있습니다. Local ..
스터디 준비를 하다가 정리한 내용을 한번 Review를 해보겠습니다.Training language models to follow instructions with human feedbackAbstract언어 모델의 크기를 키우는 것만으로는 사용자 의도에 더 잘 부합하도록 만드는 것이 아닙니다. 예를 들어, 대규모 언어 모델은 진실하지 않거나, 유해하거나, 사용자에게 도움이 되지 않는 출력을 생성할 수 있습니다. 즉, 이러한 모델은 사용자의 의도에 맞춰져 있지 않습니다. 여기서는 인간의 피드백으로 미세 조정하여 다양한 작업에서 사용자 의도와 일치하는 언어 모델을 개발하는 방법을 제시합니다.OpenAI API를 통해 수집된 레이블러가 작성한 프롬프트와 데모 데이터를 사용하여 모델이 원하는 동작을 시연하는 데..
이번엔 GPT-1 Model에 데하여 논문을 읽고 공부한 내용을 리뷰해 보겠습니다.이 논문에서는 Transformer 모델에 데한 설명이 포함되어 있습니다. 그래서, 어느정도 Transformer Model에 데한 지식이 잇어야 이해하실수 있습니다. 한번 읽고 와주세요! [NLP] Transformer Model - 트랜스포머 모델 알아보기이번 글에서는 Transformer 모델의 전반적인 Architecture 및 구성에 데하여 알아보겠습니다. Transformer: Attention is All You Need Transformer 모델은 2017년에 "Attention is All You Need"라는 논문을 통해서 소개되었습daehyun-bigbread.tistory.comAbstract자연어 이..