허깅페이스 모델 로컬 다운로드
·
LLM
LLM 모델 추론이나 학습에 필요한 허깅페이스 모델을 로컬로 다운받는 방법입니다.  1. huggingface-cli 로그인pip install huggingface_hub huggingface cli를 위한 패키지를 설치하고 https://huggingface.co/settings/tokens 에서 토큰을 발급받아 로그인합니다.huggingface-cli login  2. 허깅페이스 모델 접근 권한 획득 3. 로컬 다운로드git clone https://huggingface.co/{모델 주소}  4. .git 파일 삭제rm -rf .gitrm -rf .gitattributes  5. 파일 압축 (tar 또는 tar.gz)tar -cvf {파일명}.tar {폴더명}tar -zcvf {파일명}.tar.gz..
RRADistill
·
LLM
지난 11월 11~12일 팀 네이버에서 DAN24 컨퍼런스를 개최했습니다. 여러 세션 중 첫째날 진행한 [네이버 검색이 이렇게 좋아졌어? LLM의 Re-Ranking Ability 검색에 이식하기] 트랙에 대한 내용을 정리해보고자 합니다.  검색에서의 LLM검색에서 LLM은 문서의 순위를 정렬하는 Ranker로 사용됩니다. 문서를 검색해서 사용자의 query와 유사한 문서인지 순위를 매깁니다. 순위를 매기는 방법으로는 크게 두가지가 있습니다. List-wise 방법과 Point-wise 방법입니다. List-wise는 문서 전체를 고려하여 query와의 유사도를 ranking합니다. Point-wise는 각 문서에 대해 개별적으로 query와의 유사도를 판단합니다. 이런 방법은 실시간으로 검색 결과를 제..
G-Eval Prompt
·
LLM
G-Eval: NLG Evaluation using GPT-4 with Better Human AlignmentThe quality of texts generated by natural language generation (NLG) systems is hard to measure automatically. Conventional reference-based metrics, such as BLEU and ROUGE, have been shown to have relatively low correlation with human judgments, especiallyarxiv.org G-Eval은 사람이 아닌 GPT4를 사용해서 평가하는 방법론입니다. 해당 방법론을 활용해서 LLM을 평가하고자 논문에서 예시로..
HAE-RAE Bench
·
LLM
HAE-RAE Bench는 언어 모델의 한국어 능력을 평가하기 위해 제작된 벤치마크 데이터셋입니다. 여러 언어 모델이 공개되면서 한국어만 하는 언어 모델이 필요한가에 대한 논의가 활발해지고 있는데, HAE-RAE Bench는 이에 대한 가이드를 주고자 합니다. 이는 한국어의 고유한 특성과 지식을 반영한 Instruction 데이터셋입니다. 한국어 어휘, 독해, 문법과 지식, 총 4가지 영역에 걸쳐 언어 모델의 능력을 평가하는 벤치마크입니다.    평가 메트릭으로는 log-likelihood를 사용했습니다. 각 답변에 대해 log-likelihood를 계산하여 가장 높은 likelihood를 선택하는 방식입니다.    출처https://arxiv.org/abs/2309.02706https://github..
Positional Embedding
·
LLM
Positional Embedding은 BERT에서 토큰의 상대적인 위치를 나타내기 위해 사용하는 방법입니다. Positional Embedding에서는 Sine과 Cosine 함수를 사용합니다. 그 이유는 아래와 같습니다. 입력값에 따라 달라지는 함수값규칙적으로 증가하거나 감소입력값의 범위에 대한 제한이 없음 Sine과 Cosine 함수는 항상 -1과 1 사이의 값을 가집니다. 절대적인 위치를 사용할 경우 학습 데이터보다 긴 데이터는 입력할 수 없습니다. Positional Embedding에서는 상대적인 위치를 사용하여 학습데이터보다 긴 데이터도 입력할 수 있습니다. * 출처: https://arxiv.org/abs/1810.04805
Tuning
·
LLM
* 이 글은 패스트캠퍼스 [The RED : 프롬프트 엔지니어링, LLM(ChatGPT) 기반의 AI 서비스 개발] 강의를 듣고 작성되었습니다. PEFT모델의 전체 파라미터를 다 학습시키지 않고 매우 적은 양의 파라미터만 학습하여 빠른 시간 내에 새로운 문제를 거의 비슷한 성능으로 학습시키는 방법 LoRA(Low-Rank Adaptation of Large Language Models)고정된 weight를 갖는 pretrained model에 학습이 가능한 rank decomposition 행렬을 삽입한 것행렬의 차원을 r만큼 줄이는 행렬과 다시 원래 크기로 키워주는 행렬의 곱을 이용하여 줄인 행렬의 파라미터만 학습시키는 방법 QLoRA(Efficient Finetuning of Quantized LLM..
Vector Search
·
LLM
* 이 글은 패스트캠퍼스 [The RED : 프롬프트 엔지니어링, LLM(ChatGPT) 기반의 AI 서비스 개발] 강의를 듣고 작성되었습니다. 프롬프트 엔지니어링에서 답변을 위해서 적절한 컨텍스트를 제공하는 것이 가장 중요합니다. 적절한 컨텍스트를 제공하는 방법이 벡터 서치입니다. 벡터 서치에 사용되는 개념은 아래와 같습니다. Embedding 텍스트를 실수의 집합인 벡터로 만드는 것 단어가 어느 차원에 위치하는지 표현 단어가 유사한 의미를 가지면 근처에 위치하도록 함 Vector Search 임베딩 스페이스에서 서로 유사한 것들끼리 찾도록 함 각 요소간의 거리를 distance 혹은 similarity라고 함 Semantic Search는 의미 기반 서치를 의미 ANN 차원이 커지면서 고차원의 벡터를..
프롬프트 엔지니어링
·
LLM
* 이 글은 패스트캠퍼스 [The RED : 프롬프트 엔지니어링, LLM(ChatGPT) 기반의 AI 서비스 개발] 강의를 듣고 작성되었습니다. 모델링 혹은 파인튜닝 필요한 경우 숫자를 예측하는 선형 회귀 문제 대량의 로그성 데이터의 실시간 처리 특수 목적의 매우 높은 정밀도를 요구하는 문제 데이터의 최신성이 중요하지 않은 경우 데이터 보안이 매우 중요한 경우 프롬프트 엔지니어링이란? : 인공지능 모델이 이해하여 원하는 결과물을 제공할 수 있도록 프롬프트 입력값을 최적화하는 과정 프롬프트 엔지니어링 종류 Zero-shot: 앞의 정보 없이 명령 One-shot: 하나의 예시를 주면서 명령 Few-shot: 여러 예시를 주면서 명령 Chain of Thought: 생각하는 방식의 가이드를 제공 Zero S..
Attention
·
LLM
Attention: 문맥에 따라 집중할 단어를 결정하는 방식 Encoder: input 를 압축 데이터(context vector)로 변환 및 출력 Decoder: 압축 데이터(context vector)를 입력받아 output data로 출력
Word Embedding
·
LLM
단어 임베딩이란 단어를 벡터로 표현하는 방법입니다. 희소 표현(Sparse Representation): 표현하고자 하는 단어의 인덱스 값만 1, 나머지는 0 (Ex. 창문 = [1, 0, 0]) 밀집 표현(Dense Representation): 사용자가 설정한 값으로 단어의 벡터 차원 설정 (Ex. 창문 = [0.2, -1.1, 0.9]) 단어 임베딩은 단어를 밀집 표현 형태로 표현합니다. Word2Vec 분산표현(Distributed Representation) 비슷한 문맥에서 등장하는 단어는 비슷한 표현을 갖는다는 가정 단어의 의미를 여러 차원에 분산하여 표현 단어 벡터 간 유의미한 유사도 계산 가능 CBOW(Continuous Bag of Words): 주변에 있는 단어들을 입력으로 중간에 있는..