-
[LLM 기초 다지기] Word EmbeddingsDeep-Learning/[NLP] 이론 2023. 10. 30. 22:44
진작 알았다면 좋았을 NLP 및 LLM에 대한 기초 지식 1. Word Embeddings
Contents
🔹 Word Embeddings: https://kuklife.tistory.com/144
🔹 Attention Mechanism: https://kuklife.tistory.com/145
🔹 Self-Attention: https://kuklife.tistory.com/148
🔹 Overview of LLMs:
🔹 LLM benchmark and Metrics:
🔹 GPT:
🔹 LLaMA2:
🔹 RAG:
🔹 Chain of Thought (CoT, Zero-shot CoT, AutoCoT, ReACT):
🔹 Fine-tuning for LLM (LoRA, P-tuning): https://kuklife.tistory.com/147Overview
- LLM 임베딩은 고차원 공간에 존재하는 연속적인 실수 값 벡터이다. 임베딩은 단어 간의 연결로 구성된 다차원 "semantic space"에서 대략적인 위치로 정보를 저장한다. 따라서, (학습한 데이터에 따라 다르겠지만) 동일한 의미를 가진 다른 단어 파악에 용이하게 활용될 수 있다.
- 하지만, 답을 완전히 신뢰할 수는 없다. 환각과 창의성은 "동전의 양면"이다.
- NLP 에서 단어의 의미를 표현하는 것은 정말 중요하다.
- 이에 본 페이지에서는 단어 벡터 학습에 널리 사용되는 알고리즘인 "Word2Vec"에 중점을 두고, word semantics를 만들어내는 기술과 기본 메커니즘에 대해 설명한다.
- 결론: word embeddings는 단어의 의미를 완벽하게 저장할 수 없지만, 실수 벡터로 어느 정도 잘 표현 가능하다. 그렇다는건 용이하게 사용될 수 있는 곳들이 많다는 것.
다양한 임베딩 방법
1) Bag-of-Words based Embeddings (단어 순서 무시)
- One-hot Encoding: 각 단어를 동일한 크기의 이진 벡터로 표현
- Bag-of-words: 단어가 문서에 나타는 빈도수를 나타내는 백터로 표시
- TF/IDF: 코퍼스의 다른 모든 문서와 비교하여 문서에서 중복되는 단어를 카운팅
- Word2Vec: 단어를 고차원 벡터로 표현하는 예측 모델, skip-gram과 CBOW의 모델로 구성
- GloVe: 각 단어 쌍이 코퍼스에 함께 나타나는 빈도를 계산한 다음, 개수 행렬에 대해 행렬 분해하며 학습하는 모델
- FastText: 문자의 n-gram에 대한 벡터를 학습하고, 이러한 n-gram의 합으로 단어를 나타내는 모델 (word2vec의 확장)
2) Contextual Embeddings (단어 순서 고려)
- ELMo: Bi-LSTM을 기반으로단어 임베딩 생성
- BERT: 'Transformer'라는 구조를 사용하여 단어가 문장에서 어떻게 사용되는지에 따라 단어의 의미를 동적으로 이해
3) Sentence/Document Embeddings
- Sentence-BERT: BERT 모델에 siamese 및 triplet network 구조를 추가하여 문장 간의 의미론적 유사성을 직접 비교
4) Positional Embeddings
- Absolute Positional Embeddings: Transformer 모델에 사용되는 임베딩 기법으로싸, 문장 내 각 단어의 절대 위치를 인코딩하여 순서 정보를 보존하는 것이 특징
- Relative Positinal Embeddings: Absolute Position 대신 당어 쌍 사이의 상대적 위치, 즉 두 단어 사이의 거리를 인코딩, T5 모델링에 사용됨
- Rotary Positional Embeddings: Relative Position을 인코딩 하기 위해 rotary 작업을 사용하는 인코딩 유형, Routing Transformer 및 Roformer 모델링에 사용됨
5) Relative Embeddings
- 시퀀스의 단어 쌍 사이의 상대 위치 또는 거리를 인코딩, T5와 Transformer-XL 모델링에 사용됨
Word Embeddings
- Word Embeddings or Word Vector (이하 단어 임베딩) 는 의미론적 및 구문론적 속성을 유지하면서 단어의 조밀하고 연속적인 저차원 표현을 제공한다. 본질적으로 이는 벡터 공간에서의 공간적 근접성이 단어 간의 관계를 포착하는 실수 값 벡터이다.
- 단어 임베딩 의 개념은 분포 가설이다. 즉, 비슷한 맥락에서 나타나는 단어는 비슷한 의미를 갖는 경향이 있다. 예를 들면, 고차원 벡터 공간에서 "사과"는 "개"보다 "오렌지"에 더 가깝다. (둘 다 과일이기 때문에)
- 단어 임베딩 은 유사한 문맥에 나타나는 단어 벡터와 유사하도록 선택된 각 단어에 대해 밀집된 벡터를 구축한다.
- 위 사진을 보고 단어 임베딩이라고 불리는 이유를 살펴보자. 예를 들어, [왕 - 남자 + 여자 = 여왕]과 같이 단어를 많은 의미론적 정보를 포착하기 위해 단어를 벡터로 표현하며, 변환하는 알고리즘이 단어 임베딩 알고리즘 (대표적인 예시가 word2vec) 이다.
- 일반적으로 단어 임베딩은 문맥을 기반으로 단어를 예측하는 것과 같이 레이블이 지정되지 않은 대규모 코퍼스에서 목표를 최적화하여 사전 학습(Pre-training)한다. 여기서 학습된 단어 벡터는 일반적인 구문 및 의미를 캡처할 수 있다.
- 따라서, 이러한 임베딩은 컨텍스트의 유사성을 잡아내는데 효율적으로 사용되며, 차원이 작기때문에 NLP 작업을 계산하는데 빠르고 효율적으로 사용된다. (보통 Cosine Similarity 와 같은 유사도 측정 방식을 사용하여 검색 등과 같은 task에 활용한다.)
Word2Vec
- Word2Vec은 주어진 단어의 맥락을 예측하기 위해 대규모 텍스트 모음집(이하 코퍼스)에서 얕은 신경망을 사용한다. 훈련된 모델의 가중치는 단어를 나타내는 벡터로 사용된다.
- Word2Vec은 문장 내 각 단어가 벡터로 표현되며, 목표는 이러한 벡터를 최적화하여 주변 단어를 정확하게 예측하는 것이다.
- 예측 단어와 실제 문맥 단어 간의 불일치를 나타내는 손실함수를 최소화하기 위해 stochastic gradient descent 사용
- Word2Vec은 2개의 모델로 구성
1) CBOW(Continous Bag-of-words): 이 모델은 context words를 기반으로 center words를 예측.
2) Skip-gram: Center words가 주어지면, context words를 예측
Word Embeddings의 한계점, 그리고 LLM의 등장
Word2Vec는 여러 한계가 있다.
1) 구문이나 다의어의 의미를 포착하지 못함
2) 큰 어휘에 대해서 상당한 계산 자원과 시간이 필요
3) 알려지지 않은 단어나 코퍼스에 없는 단어(out-of-vocabulary, OOV) 문제 발생
이러한 문제를 해결하기 위해 FastText나 ELMo, BERT, GPT-3와 같은 새로운 모델들이 도입되었습니다. 이 모델들은 보다 섬세한 의미를 포착할 수 있으며, 부분 단어 단위로 학습함으로써 OOV 단어를 처리할 수 있습니다. 이는 NLP에서 더 견고하고 문맥을 인식하는 단어 표현으로 나아가는 흥미로운 발전을 의미합니다.
'Deep-Learning > [NLP] 이론' 카테고리의 다른 글
금융권에서 경험한 NLP 일기장 - 1. DAPT (0) 2023.11.10 [LLM 기초 다지기] LoRA for LLM Fine-tuning (0) 2023.11.09 [LLM 기초 다지기 ] Self Attention and Transformer (0) 2023.11.05 [LLM 기초 다지기] Attention Mechanism (0) 2023.11.03