Summary
Embedding은 텍스트(단어, 문장, 문서)를 고차원 벡터 공간의 수치 표현으로 변환하는 과정이다. 의미적으로 유사한 텍스트는 벡터 공간에서 가까이 위치한다.
Why It Matters
컴퓨터는 텍스트를 직접 이해하지 못한다. Embedding은 텍스트의 의미를 수학적으로 표현함으로써 검색, 비교, 분류 등 모든 NLP 작업의 기초가 된다. RAG 시스템에서 문서 검색이 가능한 것도 Embedding 덕분이다.
Core Diagram
"LLM은 시스템이다"
↓
Embedding Model
↓
[0.12, -0.45, 0.78, ..., 0.33] (768차원 벡터)
Concept Explanation
Token Embedding vs Sentence Embedding
| 유형 | 설명 | 차원 | 용도 |
|---|---|---|---|
| Token Embedding | 개별 토큰의 벡터 표현 | 모델 내부 | Transformer 입력 |
| Sentence Embedding | 문장 전체의 벡터 표현 | 768~1536 | 검색, 비교 |
| Document Embedding | 문서 전체의 벡터 표현 | 768~1536 | 문서 분류 |
Embedding 모델의 학습
Embedding 모델은 대규모 텍스트 데이터에서 "비슷한 문맥에 등장하는 단어는 비슷한 의미를 가진다"는 분포 가설을 기반으로 학습한다.
대표적인 Embedding 모델
- OpenAI text-embedding-3: 범용, 1536/3072차원
- BGE-M3: 다국어 지원, Dense+Sparse 하이브리드
- E5: 효율적인 범용 임베딩
- Cohere embed-v3: 검색 특화
System Perspective
RAG 시스템에서 Embedding은 두 곳에서 사용된다:
- 인덱싱 단계: 문서를 청크로 나누고 각 청크를 벡터로 변환하여 Vector DB에 저장
- 검색 단계: 사용자 쿼리를 동일한 모델로 벡터화하여 유사 벡터 검색
동일한 Embedding 모델을 인덱싱과 검색에 사용해야 한다는 점이 중요하다.
Practical Insight
- Embedding 모델 선택이 검색 품질의 80%를 결정한다
- 도메인 특화 데이터가 있다면 파인튜닝된 Embedding 모델이 범용 모델보다 성능이 좋다
- 차원 수가 높다고 항상 좋은 것은 아니다 — 저장 비용과 검색 속도의 트레이드오프
- 다국어 검색이 필요하면 다국어 Embedding 모델을 선택해야 한다
Common Misunderstandings
- Embedding은 LLM과 같은 모델이 아니다 — 생성이 아닌 표현 변환이 목적이다
- 같은 단어라도 Embedding 모델에 따라 완전히 다른 벡터를 생성한다
- 벡터의 각 차원이 특정 의미를 갖는 것은 아니다 — 해석 불가능한 잠재 공간이다
Connected Topics
- 이전: Transformer
- 다음: Similarity
- 관련 실험: Embedding Space Explorer Lab