306. 임베딩 모델
핵심 인사이트 (3줄 요약)
- 본질: 임베딩 모델(Embedding Model)은 텍스트, 이미지 등 비정형 데이터를 고차원 벡터 공간의 점(벡터)로 변환하는模型으로,向量相互间的距离が類似度を表す。
- 가치: 비정형 데이터를数值ベクトルに変換하여、DBでの高速類似検索、LLM의 컨텍스트 제공, 머신러닝 모델의 입력으로 활용可能하게 한다.
- 융합: 벡터 DB, Transformer, BERT, GPT, Word2Vec, LLM, RAG, 유사도 검색과 밀접하게 연관된다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
개념 정의
임베딩 모델(Embedding Model)은 텍스트, 이미지, 오디오, 비디오 등 비정형 데이터를固定长度的数値ベクトル(埋め込み向量)로 변환하는 모델이다. 変換结果是高次元 공간의 점이며、类似した 데이터は空間적으로 가까이 위치한다. 예를 들어, "강아지"와 "개"는 의미적으로 비슷하므로 벡터 공간에서 가깝게, "고양이"는 상대적으로 멀리 위치한다. 이러한 벡터 표현을利用하면、類似検索、분류、클러스터링、LLMへのコンテキスト提供등이 가능해진다.
필요성
머신러닝 모델(특히 Neural Network 기반)은数値入力を必要とする。Therefore、テキストや画像などの非構造化データを直接处理する前に、首先 이를数值向量(임베딩)に変換해야 한다. 例えば、テキストの場合、Word2VecやBERTなどのモデルが 문장/단어를固定長のベクトルに変換する。이러한 임베딩은データの意味적 의미(semantic meaning)를포함하여、키워드 매칭만으로는 불가능한「의미적으로 비슷한」데이터 찾기가 가능해진다.
배경
임베딩 개념은 2003년 L. Bengio等人的神经网络语言模型(Neural Probabilistic Language Model)에서 처음으로 제안되었고, 2013년 Tomas Mikolov等人的Word2Vecで広く普及した。Word2Vec은 단어를低次元 벡터(通常 100~300次元)로 변환하며,「king - man + woman = queen」같은 산술运算이 가능한 것으로話題になった。2018年、Google의 BERT와 OpenAI의 GPT系列はTransformer架构를採用하여、より文脈を反映した(文脈対応) 임베딩을 생성할 수 있게 되었다. 2020년대 들어 LLM의 발전과 함께,テキスト全体を一つのベクトルに埋め込む 문장 임베딩(Sentence Embedding) 모델이 부상했고, 이미지와 오디오까지 확장되어 multimodal 임베딩模型도 등장했다.
비유
임베딩 모델은大型도서관의 Library 분류 시스템과 같다. 모든 책을하나의巨大的 3D 공간에 배치하여、類似한 주제의 책들이 가까이 위치하도록 한다. "소설" 분야는 한쪽에, "과학"은 다른 쪽에, "역사"는 또 다른 영역에 배치된다. 而且、「歴史 소설」처럼 여러 분야에 걸치는 책은対応하는 위치에 배치된다. 이 공간에서"이 책과类似的 书를 찾아줘"라는 요청을 받으면, 가까이 있는 책들을 빠르게 추천할 수 있다.
📢 섹션 요약: 임베딩 모델은 비정형 데이터를 의미적類似度を포함하는 고차원 벡터로 변환하여,高速類似検索と머신러닝入力を可能にする。
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
임베딩 모델 유형
┌─────────────────────────────────────────────────────────────────────────────┐
│ 임베딩 모델 유형 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [1] Word Embedding (단어 임베딩) │
│ ───────────────────────────────── │
│ • 단어를 고정 길이 벡터로 변환 │
│ • 문맥을考慮しない(静的)임베딩 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Word2Vec (Google, 2013) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • CBOW (Continuous Bag of Words): 주변 단어로 중심 단어 예측 │ │
│ │ • Skip-gram: 중심 단어로 주변 단어 예측 │ │
│ │ • 예: "king" - "man" + "woman" ≈ "queen" │ │
│ │ • 차원: 100~300차원 │ │
│ │ │ │
│ │ GloVe (Stanford, 2014) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • 단어 共起 행렬 기반 (Count-based + Prediction-based hybrid) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ [2] Contextualized Word Embedding (문맥 대응 임베딩) │
│ ───────────────────────────────────────────── │
│ •同一の単語でも文脈によって異なるベクトルを生成 │
│ • Dynamic 임베딩 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ BERT (Google, 2018) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • Transformer Encoder架构 (양방향) │ │
│ │ • Masked Language Model (MASK 예측)로 사전 훈련 │ │
│ │ • 例: "bank" in "river bank" vs "bank account" → 다른 벡터 │ │
│ │ │ │
│ │ GPT (OpenAI, 2018~) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • Transformer Decoder架构 (단방향/Autoregressive) │ │
│ │ • 다음 단어 예측으로 사전 훈련 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ [3] Sentence/Document Embedding (문장/문서 임베딩) │
│ ──────────────────────────────────────────── │
│ • 문장 또는 전체 문서를 하나의 벡터로 변환 │
│ • RAG에서 핵심적으로 활용 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Sentence-BERT (SBERT, 2019) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • BERT + Siammese Network 구조 │ │
│ │ • 문장 쌍의 유사도 훈련으로 개선 │ │
│ │ • 차원: 768~1536차원 │ │
│ │ │ │
│ │ OpenAI text-embedding-3 (2024) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • 대규모 텍스트 말뭉치로 훈련 │ │
│ │ • 차원 축소 기능 지원 (예: 1536 → 256차원으로 축소해도 유지) │ │
│ │ • 차원: 3072차원 (1536차원으로 줄일 수 있음) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ [4] Multimodal Embedding (다중 모드 임베딩) │
│ ───────────────────────────────────── │
│ • 텍스트, 이미지, 오디오 등 여러 유형의 데이터를同一 공간에 매핑 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ CLIP (OpenAI, 2021) │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • 이미지 + 텍스트를同一 벡터 공간에 매핑 │ │
│ │ • "이미지와 matching되는 텍스트를 찾아줘" 가능 │ │
│ │ • 예: 이미지 입력 → 관련 설명 텍스트 검색 │ │
│ │ │ │
│ │ AudioCLIP, LanguageBind 등 │ │
│ │ ──────────────────────────────────────────────────────────────── │ │
│ │ • 오디오 + 텍스트 + 이미지 멀티모달 임베딩 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
임베딩 벡터 공간
┌─────────────────────────────────────────────────────────────────────────────┐
│ 임베딩 벡터 공간 시각화 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [2D로 시각화된 예시] │
│ ───────────────────── │
│ │
│ ↑ gender (상-하) │
│ │ │
│ man ───────●────── woman │
│ │ │ │ │
│ │ │ │ │
│ │ PERSON │ │
│ │ │ │ │
│ │ │ │ │
│ king ●─────────┼────────● queen │
│ │ │ │ │
│ │ │ │ │
│ boy ─┴─────────┼─────────┴─── girl │
│ │ │
│ │ │
│ ◀──────────────┼──────────────▶ │
│ age │
│ (좌-우) │
│ │
│ ※ "king - man + woman ≈ queen" 벡터 산술运算의 원리 │
│ ※ gender과 age 두 축으로 구성됨 (실제는 수백~수천 차원) │
│ │
│ [고차원 벡터 공간의 특징] │
│ ──────────────────────────── │
│ • 차원이 높을수록(ultra-high dimensional) 공간의 밀도가 균일해짐 │
│ • "차원의 저주(curse of dimensionality)"问题 있지만, ANN 알고리즘으로 해결 │
│ • 의미적으로 비슷한 데이터가 공간적으로 가까이 위치하도록 훈련됨 │
│ │
│ [임베딩 품질 평가 방법] │
│ ────────────────────── │
│ • 유사도 평가: STS (Semantic Textual Similarity) 벤치마크 │
│ • Retrieval 평가: MTEB (Massive Text Embedding Benchmark) │
│ •下游 태스크 평가: 분류, 검색 등 실제タスクでの性能 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
임베딩과 벡터 DB의 관계
┌─────────────────────────────────────────────────────────────────────────────┐
│ 임베딩 모델 + 벡터 DB = 유사도 검색 파이프라인 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [전체 파이프라인] │
│ ───────────────── │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ [인덱싱 파이프라인] │ │
│ │ ───────────────────── │ │
│ │ 문서: "오늘 서울 날씨가 맑습니다" │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────┐ │ │
│ │ │ Embedding Model │ → [0.12, -0.45, 0.78, ...] (1536차원) │ │
│ │ │ (SBERT, etc.) │ │ │
│ │ └───────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────┐ │ │
│ │ │ Vector DB │ ← [(0.12, ...), metadata: {id: 1}] │ │
│ │ │ (Milvus, │ │ │
│ │ │ Pinecone) │ │ │
│ │ └───────────────┘ │ │
│ │ │ │
│ │ [검색 파이프라인] │ │
│ │ ─────────────── │ │
│ │ Query: "서울 날씨 어때?" │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────┐ │ │
│ │ │ Embedding Model │ → [0.15, -0.40, 0.80, ...] │ │
│ │ └───────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────┐ │ │
│ │ │ Vector Search │ → 유사한 벡터 Top-K 검색 │ │
│ │ │ (HNSW 등) │ → "오늘 서울 날씨가 맑습니다" 반환 │ │
│ │ └───────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ [벡터 DB 주요 기능] │
│ ────────────────── │
│ • ANN (Approximate Nearest Neighbor) 검색:高速近似検索 │
│ • 필터링: 메타데이터로 pre-filtering 후 벡터 검색 │
│ • CRUD: 벡터의 추가, 삭제, 업데이트 │
│ • 배칭:大批量 임베딩 적재 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
주요 임베딩 모델 비교
┌─────────────────────────────────────────────────────────────────────────────┐
│ 주요 임베딩 모델 비교 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────┬──────────┬──────────┬──────────┬──────────┐ │
│ │ 모델 │Word2Vec │ BERT │ SBERT │OpenAI │ │
│ │ │ │ │ │embedding│ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 대상 │ 단어 │ 토큰/문장│ 문장 │ 문장 │ │
│ │ │ (정적) │ (동적) │ │ │ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 차원 │ 100~300 │ 768~1024 │ 768~1536 │ 1536~ │ │
│ │ │ │ │ │ 3072 │ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 문맥 고려 │ ✗ │ ✓ │ ✓ │ ✓ │ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 속도 │ 매우 빠름 │ 중간 │ 중간 │ API 호출 │ │
│ │ │ │ │ │ (느림) │ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 비용 │ 무료 │ 무료 │ 무료 │ 유료 │ │
│ │ │ (자체훈련)│ (자체훈련)│ (자체훈련)│ (API) │ │
│ ├────────────────┼──────────┼──────────┼──────────┼──────────┤ │
│ │ 적합场景 │ 단순 유사 │ 문맥 이해 │ 문장 유사 │ 최고 품질 │ │
│ │ │ 도 기반 │ 필요한 │ 도 기반 │ 필요시 │ │
│ │ │ 어휘리소스 │ Tasks │ RAG 등 │ │ │
│ └────────────────┴──────────┴──────────┴──────────┴──────────┘ │
│ │
│ [임베딩 선택 가이드] │
│ ────────────────── │
│ ✅ 비용/속도 우선: Word2Vec, FastText, MiniLM │
│ ✅ 균형 (품질+속도): Sentence-BERT, Instructor │
│ ✅ 최고 품질: OpenAI embedding-3, Cohere, Mistral │
│ ✅ 문서가 매우 김: 일단 chunking 후 SBERT │
│ ✅ multimodal (이미지+텍스트): CLIP │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
[다이어그램 해설] 임베딩 모델은 비정형 데이터를 의미적 의미를포함하는 고차원 벡터로 변환한다. Word2Vec은 단어 레벨의 정적 임베딩이고, BERT와 SBERT는 문맥을考慮한 동적/문장 임베딩이다. OpenAI embedding-3는 현재 최고 수준의 문장 임베딩 중 하나이며, CLIP은 이미지와 텍스트를同一 공간에 매핑하는 멀티모달 임베딩이다. 벡터 DB는 이러한 임베딩을 저장하고高速検索するための 핵심 인프라이다.
📢 섹션 요약: 임베딩 모델은 데이터를 고차원 벡터로 변환하며, Word2Vec(단어), BERT(토큰), SBERT(문장), CLIP(멀티모달) 등 다양한 유형이 있다.
Ⅲ. 결론
임베딩 모델은 비정형 데이터를 의미적 의미를포함하는 고차원 벡터로 변환하는 핵심 AI 기술이다. Word2Vec, BERT, SBERT, OpenAI embedding-3, CLIP 등 다양한 모델이 있으며,用途에 따라 선택한다. 벡터 DB와 결합하여高速類似検索を实现하며、RAG 패턴에서 LLM의 컨텍스트를 제공하는 핵심 역할을 수행한다. 임베딩 모델의 발전은 AI 애플리케이션의可能性을 크게 확장했으며, 특히 2023년 이후 RAG 패턴의流行와 함께 중요성이 더 부각되고 있다.
📢 섹션 요약: 임베딩 모델은 데이터를 의미적 벡터로 변환하여高速類似検索とLLM 컨텍스트 제공을 가능하게 하며, 다양한 모델이 있으며 용도에 맞게 선택한다.
핵심 인사이트 ASCII 다이어그램 (Concept Map)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Embedding Model Concept Map │
│ │
│ ┌─────────────────────────────────┐ │
│ Embedding Model │ │
│ (임베딩 모델) │ │
└───────────────┬─────────────────┘ │
│ │ │
│ ┌────────────────────┼────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Word Embedding│ │Contextual │ │ Sentence │ │
│ │ (Word2Vec) │ │ (BERT) │ │ (SBERT) │ │
│ │ │ │ │ │ │ │
│ │ 정적/단어 │ │ 동적/토큰 │ │ 문장 레벨 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ └────────────────────┼────────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Multimodal │ │
│ │ (CLIP) │ │
│ │ 이미지+텍스트 통합 │ │
│ └─────────────────────┘ │
│ │
│ 활용: 벡터 DB | RAG | LLM Context | 분류 | 클러스터링 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
참고
- 임베딩 모델은 비정형 데이터를 고차원 벡터로 변환한다.
- Word2Vec(정적), BERT(동적 문맥), SBERT(문장), CLIP(멀티모달) 등이 있다.
- 벡터 DB와 결합하여高速類似検索을实现한다.
- RAG 패턴에서 LLM의 외부 지식 베이스를 제공한다.
- 임베딩 품질은 차원, 문맥 고려, 훈련 데이터 등에 따라 다르다.
- OpenAI, Cohere, HuggingFace 등 다양한提供자가 있다.
- 용도에 따라 비용, 속도, 품질을 고려하여 모델을 선택한다.