최근 Large Language Model (LLM)이 다양한 태스크에서 뛰어난 성능을 보임에 따라, LLM을 원하는 태스크에 맞게 fine-tuning하여 사용하려는 니즈가 많다.그런데 LLM은 이름에 나와 있듯이 굉장히 많은 파라미터 (10B은 기본..)를 가지고 있기 때문에, full fine-tuning을 하려면 많은 메모리와 시간이 든다.그래서 사전학습된 LLM의 모든 파라미터를 튜닝하지 않고, 수행하고자 하는 특정 태스크를 위한 소량의 파라미터만을 추가적으로 학습하여 adaptation하는 lightweight fine-tuning이 주목받고 있다.그 중에서 최근 가장 많이 사용되는 LoRA (Low-Rank Adaptation)에 대해 알아보려고 한다. 글 작성에 도움을 받은 참고 링크들이다..
SQL 실행되는 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY CREATE 절 사용자 생성 CREATE USER 사용자명 IDENTIFIED BY 비밀번호; 테이블 생성 CREATE TABLE 테이블명( 컬럼명 타입 제약조건, # 제약조건(생략 가능): NOT NULL / NULL / UNIQUE(=중복X) PRIMARY KEY (컬럼명), # 생략 가능, NOT NULL & UNIQUE 조건을 포함함 FOREIGN KEY (컬럼명) REFERENCES 관계테이블명(관계테이블 컬럼명), # 관계테이블 컬럼은 관계테이블의 PRIMARY KEY여야함 ); ALTER 절 테이블 수정 ALTER TABLE 테이블명 RENAME 새테이블명; ALTER TA..
Meta에서 23년 7월 19일에 공개한 이후, 수많은 LLM들의 foundation model로 사용되고 있는 LLaMA 2에 대해 정리하려고 한다. LLaMA 2 논문 과 daewoo kim님의 블로그 를 참조하여 작성하였음을 밝힌다. 해당 블로그에 정리가 잘 되어 있어 도움을 많이 받았다. (노션에 가볍게 정리하다가 꽤 길어져서 블로그에 옮기는 중. 티스토리에서 그림이 자꾸 깨진다ㅠ) LLaMA 2 (23년 7월 공개)는 LLaMA 1 (23년 2월 공개)를 발전시킨 모델 self-supervised learning으로 학습 사전학습 데이터 40% 증가 (1.4T tokens → 2T tokens) Context length 2배 증가 (2K → 4K) Grouped-query attention 사..
KL-Divergence (KLD)는 쉽게 말해, 정답(ground-truth) 분포와 예측(prediction) 분포가 얼마나 유사한지/다른지를 측정하는 방법이다. KLD의 값이 낮을수록 두 분포가 유사함을 의미한다. $P(x)$를 실제 분포, $Q(x)$를 예측 분포라고 할 때, KLD loss는 다음 수식으로 나타낼 수 있다. $$ KLD = \displaystyle\sum_{x} P(x) \log \frac{P(x)}{Q(x)} = \displaystyle\sum_{x} P(x) \log P(x) - \displaystyle\sum_{x} P(x) \log Q(x) $$ 추가적으로, 우항에서 $\displaystyle\sum_{x} P(x) \log P(x)$는 $-Entropy$ 이고, $- \..
나의 상황은 다음과 같다. Docker 환경에서 $ docker run -it {IMAGE_NAME} 명령어를 통해 container를 만들어 실행했다. 그리고 해당 서버의 GPU 2대를 활용해 모델 추론을 하려고 했는데 이 에러가 발생했다. 에러 메시지를 보면 GPU가 인식되지 않고 있는 상황인데, 추론 코드에는 문제가 없었다. 문제의 원인은 container를 만들 때부터였다. 단순하게 $ docker run -it {IMAGE_NAME} 명령어로 container를 만들었었는데, 이렇게 되면 서버에 있는 gpu가 할당되지 않는다. 그래서 container 내에서 gpu를 인식하지 못한 것이다. 이 문제를 해결하려면, container를 만들 때 할당할 GPU 번호를 명시해줘야 한다. --gpus 파..
1. 사용할 docker image 선택 dockerhub로부터 사용할 docker image를 검색한다. 2. docker container 생성 및 실행하기 생성과 실행을 각각 따로 하는 명령어도 있지만, 한번에 하려면 docker run 명령어를 사용하면 된다. 아래 명령어들 중 원하는 것을 사용한다. container 이름을 랜덤하게 지정해 만들기 $ docker run -it {IMAGE_NAME} container 이름을 지정해서 만들기 $ docker run -it --name {CONTAINER_NAME} {IMAGE_NAME} --name 파라미터를 통해서 생성할 container의 이름을 지정할 수 있다. container 이름 지정 & GPU 할당해서 만들기 $ docker run -..
MS office의 Word에서 문서를 작성 후 파일 - 다른 이름으로 저장 - pdf 로 저장하니, 폰트가 변경되고 글의 배치가 바뀌는 등 내가 작성한 파일의 양식 그대로 저장되지가 않았다. 기본 폰트가 아니라 새로 다운로드한 폰트를 사용중이어서 이런 문제가 발생한 것 같다. 구글링 해서 찾은 방법대로 jpeg 파일로 저장 후 pdf로 열어보기도 하고, 다른 pdf reader 프로그램을 설치도 해봤지만 해결이 안됐다. 마침내 찾은 해결 방법은, 파일 - 인쇄 - 프린터를 'Microsoft Print to PDF'로 설정 - 인쇄 버튼을 클릭하는 것이다. 다만, 나의 경우 폰트나 줄 간격 등은 모두 유지되었으나 페이지의 윗단 여백이 기존보다 넓어졌다. 그래서 word 파일에서 여백을 줄인 후 다시 p..