LLM Embedding Spaces
단어(토큰)를 고차원 실수 벡터로 매핑하여 의미적 관계를 수치적 거리로 표현하는 공간. 벡터 공간에서 단어 관계가 방향과 크기로 인코딩됨. 문장 전체를 단일 벡터로 압축(Sentence Transformers 등). 이 벡터를 벡터 DB에 저장하여 시맨틱 검색 가...
목차 보기22
1. Overview
LLM 임베딩 공간(LLM Embedding Spaces)은 토큰이나 문장을 고차원 실수 벡터로 매핑하여, 의미적 관계를 벡터 사이의 거리와 방향으로 다루는 표현 방식입니다. 언어 모델의 첫 단계가 토큰 ID를 벡터로 조회하는 일이며, 이후의 모든 계산은 이 벡터 위에서 이루어집니다.
원-핫 표현에서는 서로 다른 단어가 모두 같은 거리만큼 떨어져 있어 "비슷함"을 표현할 수 없습니다. 임베딩은 단어를 밀집 벡터로 바꿔 비슷한 문맥에서 쓰이는 단어가 가까이 놓이도록 학습합니다. 이 글은 임베딩 행렬이 모델 안에서 하는 일, 벡터 산술과 코사인 유사도의 의미와 한계, 문장 단위 임베딩이 RAG의 검색 단계로 이어지는 흐름을 정리합니다.
2. Scope & Boundaries
In-Scope
- 임베딩 행렬 (Embedding Matrix): 크기 의 조회 테이블과 그 학습.
- 의미 산술과 유사도 (Semantic Arithmetic & Similarity): 벡터 연산, 코사인 유사도의 의미와 한계.
- 문장·문단 임베딩 (Sentence Embeddings): 문장 전체를 단일 벡터로 압축하는 모델과 시맨틱 검색.
Out-of-Scope
- 토큰 ID를 만드는 토큰화 → LLM Tokenization & BPE 영역.
- 벡터 DB의 ANN 인덱스 구조(HNSW 등) → Vector Database & Embedding Physics 영역.
- 임베딩 모델 자체의 학습 인프라: 대규모 대조 학습의 분산 설정은 다루지 않습니다.
Boundaries
- 정적 임베딩 vs. 문맥 임베딩: word2vec 계열은 단어마다 하나의 벡터를 갖는 정적 임베딩이고, Transformer 내부의 은닉 상태는 문맥에 따라 같은 토큰도 다른 벡터가 됩니다. 이 글에서 "임베딩 행렬"은 앞쪽의 입력 조회 테이블을 가리킵니다.
- 토큰 임베딩 vs. 문장 임베딩: 전자는 모델 입력을 위한 조회 테이블이고, 후자는 문장 전체를 검색·비교하기 위해 별도 모델이 만드는 벡터입니다.
3. Counterexample
- "왕 - 남자 + 여자 = 여왕"을 보편 법칙으로 믿는 경우: 이 예시는 word2vec 논문에서 알려진 유추(analogy) 결과이지만, 모든 관계가 이렇게 정확한 벡터 연산으로 표현되지는 않습니다. 또한 이 유추 평가에서 입력 단어를 후보에서 제외하면 결과가 좋아지는 면이 있다는 비판이 있어, 시연용 예시로 이해하는 것이 안전합니다.
- 코사인 유사도 = 의미적 동치라는 가정: 코사인 유사도가 높다는 것은 벡터 방향이 비슷하다는 뜻이며, 반의어처럼 같은 문맥에 자주 등장하는 단어도 높게 나올 수 있습니다. 검색 결과는 항상 사람의 판단으로 검증해야 합니다.
- 서로 다른 임베딩 모델의 벡터를 섞어 비교: 모델마다 학습된 공간이 달라 서로의 벡터를 직접 비교할 수 없습니다. 인덱싱할 때와 질의할 때 같은 모델과 같은 정규화를 써야 합니다.
4. Prerequisites
- 선형대수 (Basic): 벡터의 내적, 노름, 각도를 이해해야 코사인 유사도를 해석할 수 있습니다.
- 토큰화 (Basic): 임베딩 조회의 입력이 토큰 ID이므로 → LLM Tokenization & BPE를 먼저 확인합니다.
- 신경망의 기초 (Recommended): 임베딩이 역전파로 학습되는 파라미터임을 이해하는 데 필요합니다.
5. Learning Map
연결 노트
- LLM Tokenization & BPE — 토큰 ID가 임베딩 조회의 입력
- Next-Token Prediction — 임베딩을 입력받아 다음 토큰 확률을 계산
- RAG Architecture — 문서 임베딩을 인덱싱하여 관련 청크를 검색하는 기반 기술
- ReAct Pattern in LLMs — 에이전트가 관련 메모리를 임베딩 유사도로 검색
6. Learning Topics
Basic
Core Topic 01: 임베딩 행렬과 조회 (Embedding Matrix)
- Why to Learn: 모델의 입력층이자 파라미터의 상당 부분을 차지하는 구조이므로, 어휘집 크기와 모델 차원이 메모리와 어떻게 연결되는지 알아야 합니다.
- What to Learn:
- Concepts: 임베딩 행렬은 크기가 (어휘집 크기 × 모델 차원수)이며, 각 토큰 ID가 차원 벡터로 조회됩니다.
- Skills: 원-핫 벡터와 행렬 곱이 곧 한 행의 선택(lookup)임을 보이고, 행렬이 다른 파라미터와 함께 역전파로 학습된다는 점을 확인.
- Tools: PyTorch
nn.Embedding. - Trade-offs: 이 크면 표현 용량이 커지지만 메모리와 연산이 늘어납니다.
- How to Learn:
- 1단계: , 일 때 임베딩 행렬의 원소 수를 계산합니다.
- 2단계:
nn.Embedding의 출력이 가중치 행렬의 해당 행과 같음을 확인합니다.
- Implement: 토큰 ID 배열을 받아 임베딩 행렬에서 벡터를 조회하는 최소 모듈.
Recommended
Core Topic 02: 의미 산술과 코사인 유사도 (Semantic Arithmetic & Cosine Similarity)
- Why to Learn: 임베딩 공간의 가치는 거리와 방향이 의미를 담는다는 점에 있으므로, 이를 정량화하는 도구와 그 한계를 이해해야 합니다.
- What to Learn:
- Concepts: 벡터 공간에서 단어 관계가 방향과 크기로 인코딩됩니다. Cosine Similarity는 두 벡터의 각도로 의미 유사도를 측정합니다.
- Skills: 코사인 유사도 계산, 크기가 아닌 방향만 비교하므로 벡터 노름(길이)에 불변이라는 성질. 문장 길이에 불변이라는 말은 이 노름 불변성을 가리키며, 입력이 길어지면 표현 자체는 달라질 수 있습니다.
- Tools: scikit-learn
cosine_similarity, NumPy. - Trade-offs: 정규화된 벡터에서는 내적과 코사인 유사도가 같아 계산이 단순해지지만, 노름에 담긴 정보는 버려집니다.
벡터 유추의 대표 예시는 다음과 같습니다.
- How to Learn:
- 1단계: 사전 학습된 word2vec 벡터로 위 유추가 실제로 얼마나 자주 성립하는지 여러 사례로 시험합니다.
- 2단계: 벡터를 정규화하기 전후에 내적과 코사인 유사도가 어떻게 달라지는지 비교합니다.
- Implement: 단어 목록과 임베딩을 받아 가장 유사한 상위 개를 코사인 유사도로 찾는
nearest_neighbors함수.
Practical
Core Topic 03: 문장·문단 임베딩과 시맨틱 검색 (Sentence Embeddings & Semantic Search)
- Why to Learn: RAG를 비롯한 검색 응용은 문장·문단 단위 벡터에 기반하므로, 토큰 임베딩과 문장 임베딩의 차이와 연결 방식을 알아야 합니다.
- What to Learn:
- Concepts: Sentence Transformers 같은 모델은 문장 한 개를 벡터 하나로 요약합니다. 이 벡터를 벡터 DB에 저장하여 시맨틱 검색이 가능해지며, RAG의 Retrieval 단계의 기반이 됩니다.
- Skills: 문서 청크를 임베딩해 질의 벡터와 유사도를 계산하고 상위 결과를 반환하는 흐름.
- Tools: Sentence-Transformers, 벡터 DB.
- Trade-offs: 청크가 길면 문맥은 담기지만 한 벡터에 여러 주제가 섞여 검색 정밀도가 떨어질 수 있습니다.
- How to Learn:
- 1단계: 같은 질의를 서로 다른 임베딩 모델로 검색해 결과 순위가 어떻게 달라지는지 비교합니다.
- 2단계: 인덱싱과 질의에 서로 다른 모델을 썼을 때 검색이 왜 무너지는지 확인합니다.
- Implement: 문서 20~30개를 임베딩해 메모리에서 코사인 검색을 수행하는 미니 시맨틱 검색기.
7. Terminology
8. References
Primary References
- [Mikolov et al., 2013. "Efficient Estimation of Word Representations in Vector Space." arXiv:1301.3781] — word2vec의 단어 임베딩 학습과 벡터 유추 평가.
- [Mikolov et al., 2013. "Distributed Representations of Words and Phrases and their Compositionality." arXiv:1310.4546] — Skip-gram 학습 개선과 단어 벡터의 덧셈적 합성.
- [Vaswani et al., 2017. "Attention Is All You Need." arXiv:1706.03762] — 입력 토큰을 차원 벡터로 임베딩하는 구조.
- [Reimers & Gurevych, 2019. "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks." arXiv:1908.10084] — 문장 임베딩과 코사인 유사도 기반 비교.
Secondary References
- [Linzen, 2016. "Issues in evaluating semantic spaces using word analogies." arXiv:1606.07736] — 단어 유추 평가의 한계에 대한 분석.
- [Devlin et al., 2018. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." arXiv:1810.04805] — 문맥에 따라 달라지는 표현.
Industry References
- [Sentence-Transformers Documentation] — 문장 임베딩 모델 사용과 시맨틱 검색 예제.
- [Lewis et al., 2020. "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks." arXiv:2005.11401] — 임베딩 기반 검색을 생성 모델과 결합하는 RAG.
9. Final Checklist
Primary Checklist
- 토큰 ID가 행렬의 한 행으로 조회되는 과정을 설명할 수 있는가?
- 코사인 유사도의 수식과 크기에 불변인 이유를 설명할 수 있는가?
Secondary Checklist
- "왕 - 남자 + 여자 ≈ 여왕" 예시가 보여 주는 것과 보여 주지 못하는 것을 구분할 수 있는가?
- 정적 임베딩과 문맥 임베딩의 차이를 예를 들어 설명할 수 있는가?
Industry Checklist
- 인덱싱과 질의에 동일한 임베딩 모델과 정규화를 사용하도록 구성했는가?
- 문장 임베딩으로 만든 검색 결과를 실제 질의로 평가해 청크 크기와 모델을 조정했는가?
태그
llmembeddingvector-spacesemanticscosine-similarityllm-embedding-spacesmachine-learningopenai-embeddinghuggingfacespacesmachinelearningairag-engineeringllm-foundationstoken-physics