Embedding — 텍스트를 벡터 공간으로 변환하기

beginner4 min read
선행 개념

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은 두 곳에서 사용된다:

  1. 인덱싱 단계: 문서를 청크로 나누고 각 청크를 벡터로 변환하여 Vector DB에 저장
  2. 검색 단계: 사용자 쿼리를 동일한 모델로 벡터화하여 유사 벡터 검색

동일한 Embedding 모델을 인덱싱과 검색에 사용해야 한다는 점이 중요하다.

Practical Insight

  • Embedding 모델 선택이 검색 품질의 80%를 결정한다
  • 도메인 특화 데이터가 있다면 파인튜닝된 Embedding 모델이 범용 모델보다 성능이 좋다
  • 차원 수가 높다고 항상 좋은 것은 아니다 — 저장 비용과 검색 속도의 트레이드오프
  • 다국어 검색이 필요하면 다국어 Embedding 모델을 선택해야 한다

Common Misunderstandings

  • Embedding은 LLM과 같은 모델이 아니다 — 생성이 아닌 표현 변환이 목적이다
  • 같은 단어라도 Embedding 모델에 따라 완전히 다른 벡터를 생성한다
  • 벡터의 각 차원이 특정 의미를 갖는 것은 아니다 — 해석 불가능한 잠재 공간이다

Connected Topics

  • 이전: Transformer
  • 다음: Similarity
  • 관련 실험: Embedding Space Explorer Lab

다음 학습 주제

관련 실험실