๐ง Whitepaper Companion Podcast ์์ฝ: Embeddings & Vector Stores
๐ ๋ชฉ์ฐจโ
- ์๊ฐ ๋ฐ ๊ฐ์
- Embedding์ด๋?
- Embedding์ ํต์ฌ ์์ฉ ๋ถ์ผ
- Embedding์ ์ฑ๋ฅ ํ๊ฐ ๋ฐฉ๋ฒ
- RAG(Retrieval-Augmented Generation)
- ํ ์คํธ Embedding: ์๋/๋ฌธ์ ์๋ฒ ๋ฉ
- ์ด๋ฏธ์ง ๋ฐ ๋ฉํฐ๋ชจ๋ฌ Embedding
- ๊ตฌ์กฐํ ๋ฐ์ดํฐ & ๊ทธ๋ํ Embedding
- Embedding ํ์ต ๋ฐฉ์
- Vector Search & A&N ์๊ณ ๋ฆฌ์ฆ
- Vector Database ์์คํ
- Embedding์ ์ค์ ์์ฉ ์ฌ๋ก
- ์ด์ ์ ๊ณ ๋ ค ์ฌํญ & ๋ง๋ฌด๋ฆฌ
์๊ฐ ๋ฐ ๊ฐ์โ
- Embedding์ ํ ์คํธ, ์ด๋ฏธ์ง, ์ค๋์ค ๋ฑ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฒกํฐ๋ก ํํํ๋ ๋ฐฉ๋ฒ.
- ์๋ฏธ(semantic)๋ฅผ ์ซ์ ๊ณต๊ฐ์ ๋งคํํ์ฌ ์ ์ฌ๋, ๊ฒ์, ์ถ์ฒ์ ํ์ฉ.
- ํนํ Kaggle๊ณผ ๊ฐ์ ์ค๋ฌด ํ๊ฒฝ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํจ์จ๊ณผ ํต์ฐฐ๋ ฅ ํฅ์์ ํต์ฌ์ .
Embedding์ด๋?โ
- ๊ณ ์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฐจ์ ๊ณต๊ฐ์ ์๋ฏธ๋ฅผ ์ ์งํ ์ฑ๋ก ํํ.
- ์: "king"๊ณผ "queen"์ ์ ์ฌํ ์๋ฏธ โ ์๋ฒ ๋ฉ ๊ณต๊ฐ์์ ๊ฐ๊น์.
- ์๋ ๋ก์ง: ์๋/๊ฒฝ๋๋ก ์ง๊ตฌ์์ ์์น๋ฅผ ํ์ํ๋ ๊ฒ์ฒ๋ผ, ๋ณต์กํ ๊ฐ๋ ์ ์ขํ๋ก ํํ.
Embedding์ ํต์ฌ ์์ฉ ๋ถ์ผโ
์ ๋ณด ๊ฒ์ (Retrieval)
- ๊ฒ์ ์ฟผ๋ฆฌ์ ๋ฌธ์ ๋ชจ๋ ์๋ฒ ๋ฉ โ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฒกํฐ ์ฐพ๊ธฐ.
- ์: Google ๊ฒ์์ ์นํ์ด์ง ์๋ฒ ๋ฉ โ ์ฟผ๋ฆฌ ์๋ฒ ๋ฉ๊ณผ ๋น๊ต.
์ถ์ฒ ์์คํ
- ์ฌ์ฉ์ ๋ฐ ์์ดํ ์ ๋์ผ ์๋ฒ ๋ฉ ๊ณต๊ฐ์ ๋งตํ โ ์ ์ฌ๋ ๊ธฐ๋ฐ ์ถ์ฒ.
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๋จ๊ณ ๊ณผ์ :
- ๋ฌธ์ โ chunk โ embedding โ vector store์ ์ ์ฅ (์ธ๋ฑ์ค ์์ฑ)
- ์ฟผ๋ฆฌ ์๋ฒ ๋ฉ ์์ฑ โ ๊ฐ์ฅ ์ ์ฌํ 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 | ๊ณ์ธต์ ๊ทธ๋ํ ๊ธฐ๋ฐ ํ์. ๋น ๋ฅด๊ณ ์ ํํจ |
SCaNN | Google์ ๋๊ท๋ชจ์ฉ ํ์ ์๊ณ ๋ฆฌ์ฆ |
Vector Database ์์คํ โ
- ๋ฒกํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ์ ์ฉ DB
- ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์๋ ๊ฐ๋ฅ (๋ฒกํฐ + ํค์๋)
- ์ฃผ์ ์๋ฃจ์
:
- Vertex AI Vector Search
- Pinecone, Weaviate, Chromadb
- PostgreSQL + pgvector, Milvus
Embedding์ ์ค์ ์์ฉ ์ฌ๋กโ
- ์ ๋ณด ๊ฒ์
- ์ถ์ฒ ์์คํ
- ์ ์ฌ ํ ์คํธ ํ๋จ
- ํด๋ฌ์คํฐ๋ง, ๋ถ๋ฅ
- RAG
- ์ด์ ํ์ง
- ๋๊ท๋ชจ ๋ญํน ์์คํ
- Few-shot ๋ถ๋ฅ๊ธฐ
์ด์ ์ ๊ณ ๋ ค ์ฌํญ & ๋ง๋ฌด๋ฆฌโ
- ์๋ฒ ๋ฉ ๋ชจ๋ธ์ด ์ ๋ฐ์ดํธ๋๋ฉด ๊ธฐ์กด ๋ฒกํฐ๋ ์ฌ๊ณ์ฐ ํ์
- ๋ณด์, ๋ฐฑ์ , ์ค์ผ์ผ๋ง ๋ชจ๋ ๊ณ ๋ คํด์ผ ํจ
- ๋จ์ ํค์๋ ๊ฒ์๋ง์ผ๋ก๋ ๋ถ์กฑํ ๋, Embedding์ด ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค
- Kaggle ์ฌ์ฉ์๋ผ๋ฉด, Embedding + Vector Store๋ ๋ฐ๋์ ์ตํ์ผ ํ ์คํฌ