Files
2nd/10_Wiki/Topics/AI_and_ML/Vector Embedding.md
T
Antigravity Agent 0441f6e2a2 feat(wiki): implement P-Reinforce v3.0 standard & integrate 26+ new knowledge artifacts
- Formalized automatic record migration protocol in System Manual.
- Integrated high-density knowledge for RAG, AI, Business Strategy, and Leadership.
- Enhanced graph connectivity across core strategic hubs.
- Archived raw data and updated timeline records.
2026-05-04 22:40:32 +09:00

3.8 KiB


id: P-Reinforce-AUTO-EMB-001 category: AI_and_ML confidence_score: 1.00 tags: [auto-reinforced, embedding, nlp, vector-space, transformer] last_reinforced: 2026-05-04

Vector Embedding

📌 한 줄 통찰 (The Karpathy Summary)

"데이터의 지문: 비정형 데이터(텍스트, 이미지 등)를 AI가 이해할 수 있는 고정된 길이의 숫자 배열로 변환하여, 컴퓨터가 정보의 '의미적 거리'를 계산할 수 있게 만드는 번역 과정."

📖 구조화된 지식 (Synthesized Content)

벡터 임베딩은 이산적인 데이터(예: 단어, 문장, 이미지)를 연속적인 다차원 벡터 공간의 점으로 변환하는 수치화된 표현 방식입니다.

  1. 핵심 개념 (Key Concepts):

    • 의미론적 보존 (Semantic Preservation): 의미가 유사한 데이터들은 벡터 공간상에서도 서로 가깝게 위치하도록 학습됩니다 (예: '왕'-'남자' ≈ '여왕'-'여자').
    • 고차원 표현 (High-dimensional Representation): 수백에서 수천 차원의 공간을 사용하여 데이터의 미세한 특징(Feature)들을 포착합니다.
    • 밀집 벡터 (Dense Vector): 대부분의 값이 0인 Sparse Vector(예: One-hot encoding)와 달리, 대부분의 차원이 의미 있는 실수값으로 채워져 정보 밀도가 높습니다.
  2. 임베딩 모델의 진화:

    • Static Embeddings: Word2Vec, GloVe (문맥에 관계없이 동일한 단어는 동일한 벡터로 변환).
    • Contextual Embeddings: BERT, GPT (문맥에 따라 단어의 의미와 벡터가 변화).
  3. 임베딩 생성 프로세스:

    • 입력 데이터 → 사전 학습된 모델(Encoder) → 고정 길이 벡터(Latent Space) → Vector Database 저장.

⚖️ Trade-offs & Caveats

  • 모델 의존성: 어떤 임베딩 모델(OpenAI text-embedding-3, all-MiniLM-L6-v2 등)을 사용하느냐에 따라 검색 성능과 비용이 천차만별입니다.
  • 의미적 간극 (Semantic Gap): 모델이 학습하지 못한 도메인 특화 단어나 약어는 잘못된 벡터로 변환되어 검색 실패를 유발할 수 있습니다.
  • 차원의 저주 (Curse of Dimensionality): 차원이 너무 높으면 계산 복잡도가 기하급수적으로 늘어나고 유사도 측정이 모호해질 수 있습니다.

💻 실전 구현 코드 (Boilerplate)

sentence-transformers를 활용하여 텍스트를 임베딩으로 변환하는 가장 기본적인 방법입니다.

from sentence_transformers import SentenceTransformer
import numpy as np

# 1. 모델 로드 (경량화된 다국어 지원 모델 추천)
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

# 2. 텍스트 데이터 준비
sentences = [
    "AI는 지식 수집의 효율성을 혁신합니다.",
    "인공지능은 데이터 분석을 고도화합니다.",
    "오늘 점심 메뉴는 무엇입니까?"
]

# 3. 임베딩 생성
embeddings = model.encode(sentences)

# 4. 코사인 유사도 계산 (첫 번째와 두 번째 문장 비교)
def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

sim = cosine_similarity(embeddings[0], embeddings[1])
print(f"Similarity (AI vs AI): {sim:.4f}")

diff = cosine_similarity(embeddings[0], embeddings[2])
print(f"Similarity (AI vs Lunch): {diff:.4f}")

🔗 지식 연결 (Graph)


Last updated: 2026-05-04