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..
"UnicodeEncodeError: 'utf-8' codec can't encode characters in position : surrogates not allowed" 기존의 데이터 파일을 전처리한 후 저장하려는 코드에서 에러가 발생했다. 구글링해보니 다양한 방법들이 나오는데, 나의 경우는 기존 데이터 파일에 존재하는 유니코드 문자가 원인이었다. 따라서, 저장하기 전에 전체 텍스트에 대해 다음 코드로 유니코드 문자를 제거함으로써 에러를 해결했다. if not text.isascii(): text = ''.join([char for char in text if char.isascii()]).strip()