Skip to main content

๐Ÿง  Whitepaper Companion Podcast ์š”์•ฝ: Embeddings & Vector Stores


๐Ÿ“‘ ๋ชฉ์ฐจโ€‹

  1. ์†Œ๊ฐœ ๋ฐ ๊ฐœ์š”
  2. Embedding์ด๋ž€?
  3. Embedding์˜ ํ•ต์‹ฌ ์‘์šฉ ๋ถ„์•ผ
  4. Embedding์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•
  5. RAG(Retrieval-Augmented Generation)
  6. ํ…์ŠคํŠธ Embedding: ์›Œ๋“œ/๋ฌธ์„œ ์ž„๋ฒ ๋”ฉ
  7. ์ด๋ฏธ์ง€ ๋ฐ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ Embedding
  8. ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ & ๊ทธ๋ž˜ํ”„ Embedding
  9. Embedding ํ•™์Šต ๋ฐฉ์‹
  10. Vector Search & A&N ์•Œ๊ณ ๋ฆฌ์ฆ˜
  11. Vector Database ์‹œ์Šคํ…œ
  12. Embedding์˜ ์‹ค์ œ ์‘์šฉ ์‚ฌ๋ก€
  13. ์šด์˜ ์ƒ ๊ณ ๋ ค ์‚ฌํ•ญ & ๋งˆ๋ฌด๋ฆฌ

์†Œ๊ฐœ ๋ฐ ๊ฐœ์š”โ€‹

  • Embedding์€ ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค ๋“ฑ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • ์˜๋ฏธ(semantic)๋ฅผ ์ˆซ์ž ๊ณต๊ฐ„์— ๋งคํ•‘ํ•˜์—ฌ ์œ ์‚ฌ๋„, ๊ฒ€์ƒ‰, ์ถ”์ฒœ์— ํ™œ์šฉ.
  • ํŠนํžˆ Kaggle๊ณผ ๊ฐ™์€ ์‹ค๋ฌด ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํšจ์œจ๊ณผ ํ†ต์ฐฐ๋ ฅ ํ–ฅ์ƒ์— ํ•ต์‹ฌ์ .

Embedding์ด๋ž€?โ€‹

  • ๊ณ ์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ์ €์ฐจ์› ๊ณต๊ฐ„์— ์˜๋ฏธ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„๋กœ ํ‘œํ˜„.
  • ์˜ˆ: "king"๊ณผ "queen"์€ ์œ ์‚ฌํ•œ ์˜๋ฏธ โ†’ ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์—์„œ ๊ฐ€๊นŒ์›€.
  • ์•„๋‚ ๋กœ์ง€: ์œ„๋„/๊ฒฝ๋„๋กœ ์ง€๊ตฌ์ƒ์˜ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ๋ณต์žกํ•œ ๊ฐœ๋…์„ ์ขŒํ‘œ๋กœ ํ‘œํ˜„.

Embedding์˜ ํ•ต์‹ฌ ์‘์šฉ ๋ถ„์•ผโ€‹

  1. ์ •๋ณด ๊ฒ€์ƒ‰ (Retrieval)

    • ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์™€ ๋ฌธ์„œ ๋ชจ๋‘ ์ž„๋ฒ ๋”ฉ โ†’ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฒกํ„ฐ ์ฐพ๊ธฐ.
    • ์˜ˆ: Google ๊ฒ€์ƒ‰์€ ์›นํŽ˜์ด์ง€ ์ž„๋ฒ ๋”ฉ โ†’ ์ฟผ๋ฆฌ ์ž„๋ฒ ๋”ฉ๊ณผ ๋น„๊ต.
  2. ์ถ”์ฒœ ์‹œ์Šคํ…œ

    • ์‚ฌ์šฉ์ž ๋ฐ ์•„์ดํ…œ์„ ๋™์ผ ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์— ๋งตํ•‘ โ†’ ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ.
  3. Joint Embedding (๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ)

    • ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ)์„ ํ•˜๋‚˜์˜ ๊ณต๊ฐ„์— ์ž„๋ฒ ๋”ฉ.
    • ์˜ˆ: ํ…์ŠคํŠธ๋กœ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ.

Embedding์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•โ€‹

  • Precision / Recall: ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ณ  ์ถฉ๋ถ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๊ฐ€?
  • Precision@K / Recall@K: ์ƒ์œ„ K๊ฐœ ๊ฒฐ๊ณผ ๊ธฐ์ค€ ํ‰๊ฐ€.
  • NDCG (Normalized Discounted Cumulative Gain): ์ •๋‹ต ์ˆœ์„œ๋„ ๋ฐ˜์˜ํ•˜๋Š” ๋žญํ‚น ํ’ˆ์งˆ ์ง€ํ‘œ.
  • Benchmark ๋ฐ์ดํ„ฐ์…‹: BEIR, MTEB ๋“ฑ์œผ๋กœ ๋ชจ๋ธ ๊ฐ„ ์„ฑ๋Šฅ ๋น„๊ต ๊ฐ€๋Šฅ.
  • ํ‰๊ฐ€ ๋„๊ตฌ: Tevatron, Treccast, Pythia ๋“ฑ ์ถ”์ฒœ๋จ.

RAG(Retrieval-Augmented Generation)โ€‹

  • ๊ฒ€์ƒ‰ + ์ƒ์„ฑํ˜• AI๋ฅผ ๊ฒฐํ•ฉํ•œ ๊ตฌ์กฐ.
  • 2๋‹จ๊ณ„ ๊ณผ์ •:
    1. ๋ฌธ์„œ โ†’ chunk โ†’ embedding โ†’ vector store์— ์ €์žฅ (์ธ๋ฑ์Šค ์ƒ์„ฑ)
    2. ์ฟผ๋ฆฌ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ โ†’ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ chunk ๊ฒ€์ƒ‰ โ†’ LLM์— ์ถ”๊ฐ€ํ•ด ์‘๋‹ต ์ƒ์„ฑ
  • ๋น ๋ฅธ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์ด ํ•ต์‹ฌ ์š”์†Œ.

ํ…์ŠคํŠธ Embedding: ์›Œ๋“œ/๋ฌธ์„œ ์ž„๋ฒ ๋”ฉโ€‹

โ–ถ Word Embeddingsโ€‹

  • ์ดˆ๊ธฐ ๋ฐฉ์‹: Word2Vec, GloVe, Swivel, FastText
  • Word2Vec: ์ฃผ๋ณ€ ๋‹จ์–ด๋กœ ์ค‘์‹ฌ ๋‹จ์–ด ์˜ˆ์ธก (CBOW / Skip-gram)
  • GloVe: ์ „์ฒด ์ฝ”ํผ์Šค์˜ ๋‹จ์–ด ๊ณต๊ธฐ ํ–‰๋ ฌ(co-occurrence matrix) ๊ธฐ๋ฐ˜
  • ์‹œ๊ฐํ™” ์˜ˆ์ œ: Gensim + T-SNE ์‚ฌ์šฉ

โ–ถ Document Embeddingsโ€‹

  • ์ดˆ๊ธฐ: TF-IDF, BM25, LSA, LDA
  • Doc2Vec: ๋ฌธ๋‹จ ๋ฒกํ„ฐ ์ถ”๊ฐ€ โ†’ ๋ฌธ์„œ ํ‘œํ˜„
  • ์ตœ์‹  ๋ฐฉ์‹: BERT, Sentence-BERT, SimCSE, T5, Gemini
  • ๋ฌธ๋งฅ ๊ธฐ๋ฐ˜ ์ž„๋ฒ ๋”ฉ โ†’ ๊ฐ™์€ ๋‹จ์–ด๋ผ๋„ ๋‹ค๋ฅธ ๋ฌธ๋งฅ์ด๋ฉด ๋‹ค๋ฅธ ๋ฒกํ„ฐ ์ƒ์„ฑ
  • Vertex AI, TensorFlow Hub๋กœ ์‰ฝ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ด๋ฏธ์ง€ ๋ฐ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ Embeddingโ€‹

  • ์ด๋ฏธ์ง€: CNN ๋˜๋Š” Vision Transformer์—์„œ ์ถ”์ถœํ•œ ํ”ผ์ฒ˜๋ฅผ ์‚ฌ์šฉ
  • ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ: ํ…์ŠคํŠธ + ์ด๋ฏธ์ง€ ๊ฒฐํ•ฉ (์˜ˆ: KPaLI, CoLBERT-XR)
  • ์˜ˆ์‹œ: Vertex AI API๋ฅผ ์ด์šฉํ•œ ์ด๋ฏธ์ง€ ์ž„๋ฒ ๋”ฉ ๋ฐ ๊ฒ€์ƒ‰

๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ & ๊ทธ๋ž˜ํ”„ Embeddingโ€‹

โ–ถ Structured Dataโ€‹

  • ํ‘œ ํ˜•์‹ ๋ฐ์ดํ„ฐ โ†’ ์ฐจ์› ์ถ•์†Œ(PCA ๋“ฑ)๋กœ ํ–‰(row) ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ
  • ์‚ฌ์šฉ์ž-์•„์ดํ…œ ์ž„๋ฒ ๋”ฉ โ†’ ์ถ”์ฒœ ์‹œ์Šคํ…œ

โ–ถ Graph Embeddingโ€‹

  • ์˜ˆ: ์†Œ์…œ ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ๋žŒ ๋ฐ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜: DeepWalk, Node2Vec, LINE, GraphSAGE

Embedding ํ•™์Šต ๋ฐฉ์‹โ€‹

  • Dual Encoder ๊ตฌ์กฐ: ์ฟผ๋ฆฌ/๋ฌธ์„œ ๊ฐ๊ฐ ์ธ์ฝ”๋”๋กœ ์ž„๋ฒ ๋”ฉ
  • Contrastive Loss: ์œ ์‚ฌํ•œ ์Œ์€ ๊ฐ€๊น๊ฒŒ, ๋‹ค๋ฅธ ์Œ์€ ๋ฉ€๊ฒŒ ํ•™์Šต
  • Pretraining โ†’ Fine-tuning ๋ฐฉ์‹
    • Pretrain: ๋Œ€๊ทœ๋ชจ ์ฝ”ํผ์Šค, Foundation model ํ™œ์šฉ
    • Fine-tune: Task-specific ๋ฐ์ดํ„ฐ์…‹
  • ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐฉ์‹: ์ˆ˜์ž‘์—…, LLM ๊ธฐ๋ฐ˜ ํ•ฉ์„ฑ, Distillation, Hard negative mining

Vector Search & A&N ์•Œ๊ณ ๋ฆฌ์ฆ˜โ€‹

  • Vector Search: ์˜๋ฏธ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰. ์ฟผ๋ฆฌ ์ž„๋ฒ ๋”ฉ๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
  • A&N (Approximate Nearest Neighbor): ๋น ๋ฅธ ๊ทผ์‚ฌ ์œ ์‚ฌ๋„ ํƒ์ƒ‰
๊ธฐ๋ฒ•์„ค๋ช…
LSH์œ ์‚ฌ ๋ฒกํ„ฐ๋ฅผ ๊ฐ™์€ bucket์— ํ• ๋‹น (์˜ˆ: ์šฐํŽธ๋ฒˆํ˜ธ)
KD Tree / Ball Tree๊ณต๊ฐ„ ๋ถ„ํ•  ๊ธฐ๋ฐ˜ ํƒ์ƒ‰
HNSW๊ณ„์ธต์  ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ํƒ์ƒ‰. ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•จ
SCaNNGoogle์˜ ๋Œ€๊ทœ๋ชจ์šฉ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Vector Database ์‹œ์Šคํ…œโ€‹

  • ๋ฒกํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ์ „์šฉ DB
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๋„ ๊ฐ€๋Šฅ (๋ฒกํ„ฐ + ํ‚ค์›Œ๋“œ)
  • ์ฃผ์š” ์†”๋ฃจ์…˜:
    • Vertex AI Vector Search
    • Pinecone, Weaviate, Chromadb
    • PostgreSQL + pgvector, Milvus

Embedding์˜ ์‹ค์ œ ์‘์šฉ ์‚ฌ๋ก€โ€‹

  • ์ •๋ณด ๊ฒ€์ƒ‰
  • ์ถ”์ฒœ ์‹œ์Šคํ…œ
  • ์œ ์‚ฌ ํ…์ŠคํŠธ ํŒ๋‹จ
  • ํด๋Ÿฌ์Šคํ„ฐ๋ง, ๋ถ„๋ฅ˜
  • RAG
  • ์ด์ƒ ํƒ์ง€
  • ๋Œ€๊ทœ๋ชจ ๋žญํ‚น ์‹œ์Šคํ…œ
  • Few-shot ๋ถ„๋ฅ˜๊ธฐ

์šด์˜ ์ƒ ๊ณ ๋ ค ์‚ฌํ•ญ & ๋งˆ๋ฌด๋ฆฌโ€‹

  • ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์ด ์—…๋ฐ์ดํŠธ๋˜๋ฉด ๊ธฐ์กด ๋ฒกํ„ฐ๋„ ์žฌ๊ณ„์‚ฐ ํ•„์š”
  • ๋ณด์•ˆ, ๋ฐฑ์—…, ์Šค์ผ€์ผ๋ง ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•จ
  • ๋‹จ์ˆœ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•  ๋•Œ, Embedding์ด ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ ๋‹ค
  • Kaggle ์‚ฌ์šฉ์ž๋ผ๋ฉด, Embedding + Vector Store๋Š” ๋ฐ˜๋“œ์‹œ ์ตํ˜€์•ผ ํ•  ์Šคํ‚ฌ