๐ Day 2 ์ ๋ฆฌ: Embeddings์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ๋ณต
Kaggle x Google Cloud x DeepMind - Generative AI ์ง์ค ๊ณผ์ (Day 2)
Embeddings์ ๊ฐ๋ ๋ถํฐ ์ค๋ฌด ์ ์ฉ๊น์ง, ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ RAG ์์คํ ์ค๊ณ๊น์ง ์ด์ ๋ฆฌ
๐๏ธ ์ค๋์ ์์ ๋คโ
- Embeddings๋?
- ๋ค์ํ ํํ์ Embedding
- ๋ฒกํฐ ์ธ๋ฑ์ฑ๊ณผ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
- ๋ฒกํฐ DB์ ์ํคํ ์ฒ์ ๊ณ ๋ ค์ฌํญ
- Retrieval-Augmented Generation(RAG) ์์คํ ์์์ ์ ์ฉ
- ์ต์ ์ฐ๊ตฌ ๋ฐ ์ค์ Google ์ ํ ํ์ฉ ์ฌ๋ก
- ์ฝ๋๋ฉ ์๊ฐ ๋ฐ ์ค์ต
๐ง Embedding์ด๋?โ
๋ฐ์ดํฐ๋ฅผ ๊ณ ์ฐจ์์ ์๋ฏธ ๊ณต๊ฐ(semantic space) ์์์ ์์น ๋ฒกํฐ๋ก ํํํ ๊ฒ.
- ์ฃผ๋ก ํ ์คํธ, ์ด๋ฏธ์ง, ๊ตฌ์กฐํ ๋ฐ์ดํฐ ๋ฑ ๋ค์ํ ํ์์ ๊ณตํต๋ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ๋ณํ
- ๊ฑฐ๋ฆฌ ๊ณ์ฐ์ ํตํด ์๋ฏธ ์ ์ฌ์ฑ์ ๋น๊ต
- LLM ๋ฑ ๋ค์ํ ๋ค์ด์คํธ๋ฆผ AI ๋ชจ๋ธ์์ ์ ๋ ฅ ํน์ง์ผ๋ก ํ์ฉ
์ฃผ์ ํน์งโ
- ์ ์ฌํ ์๋ฏธ์ ๋ฐ์ดํฐ๋ ๊ฐ๊น์ด ๋ฒกํฐ๋ก ํํ๋จ
- RAG, ์ถ์ฒ ์์คํ , ์ด์ ํ์ง ๋ฑ์ ํ์ฉ ๊ฐ๋ฅ
โ๏ธ Embedding์ ๋ค์ํ ์ ํโ
- ํ
์คํธ Embedding
- Word2Vec โ BERT โ Gemini ๊ธฐ๋ฐ ์ต์ ๋ชจ๋ธ
- ์ด๋ฏธ์ง ๋ฐ ๋ฉํฐ๋ชจ๋ฌ Embedding
- ์ด๋ฏธ์ง+ํ ์คํธ ์กฐํฉ ํํ
- DeepMind์ TIFA ๋ชจ๋ธ(Tips: Text-Image Fine-grained Awareness) ์๊ฐ๋จ
- ๊ตฌ์กฐํ/๊ทธ๋ํ ๋ฐ์ดํฐ Embedding
- ๋น์ ํ ์ธ ๋ค์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ์ฑ ํ์ฅ
๐ ๏ธ Embedding ํ๋ จ ๋ฐฉ์โ
- Dual Encoders + Contrastive Loss
- ์ ์ฌํ ์์ ๊ฐ๊น๊ฒ, ๋น์ ์ฌํ ์์ ๋ฉ์ด์ง๊ฒ ํ์ต
- LLM์ ํ์ฉํ ์ฌ์ ํ์ต / ๋ฐ์ดํฐ ์์ฑ
- ๋ฐ์ดํฐ ํ์ง ๊ฐ์ + ๋ค๊ตญ์ด/๋ฉํฐ๋ชจ๋ฌ ํ์ต ๊ฐ์ํ
๐ ๋ฒกํฐ ๊ฒ์ (Vector Search)โ
์์ญ์ต ๊ฐ์ ๋ฒกํฐ์์ ๋น ๋ฅด๊ฒ ์ ์ฌ ํญ๋ชฉ์ ์ฐพ๋ ๊ธฐ์
ํต์ฌ ์๊ณ ๋ฆฌ์ฆโ
- HNSW (Hierarchical Navigable Small World)
- SCAN (Google ๋ด๋ถ ์ฌ์ฉ, AlloyDB์ ํ์ฌ)
- Approximate Nearest Neighbor(ANN) ๊ธฐ๋ฐ
- ์ฝ๊ฐ์ ์ ํ๋ ์์ค โ ํฐ ์๋ ํฅ์
๐ข ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒโ
์ผ๋ฐ DB vs ๋ฒกํฐ DBโ
ํญ๋ชฉ | ํตํฉํ DB (์: AlloyDB) | ์ ์ฉ ๋ฒกํฐ DB (์: Vertex AI Vector Search) |
---|---|---|
๊ตฌ์กฐํ ๋ฐ์ดํฐ ํ์ฉ | ๋ฐ์ด๋จ | ๋ณ๋ ์ฐ๊ฒฐ ํ์ |
์ฑ๋ฅ | SCAN ๋ด์ฅ์ผ๋ก ์ฐ์ | ANN ์ต์ ํ, ๊ณ ์ฑ๋ฅ |
์ผ๊ด์ฑ, ํธ๋์ญ์ | ๊ฐ๋ ฅํจ | ์ ํ์ ์ผ ์ ์์ |
๋น์ฉ | ์๋์ ์ผ๋ก ์ ๊ฐ ๊ฐ๋ฅ | ๊ณ ๋น์ฉ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ |
ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ ๊ณ ๋ ค์ฌํญโ
- ํํฐ ์กฐ๊ฑด ๊ฒ์ (๊ฐ๊ฒฉ, ์์ ๋ฑ) vs ๋น์ ํ ์ ์ฌ๋ ๊ฒ์
- SQL ๊ธฐ๋ฐ ์กฐ์ธ, ํํฐ, ์ ๋ ฌ ๋ฑ์ ํ๋์ ์ง์๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์์คํ ๊ฐ ๋ฐ์ดํฐ ์ ํฉ์ฑ, ETL ๋น์ฉ ๊ณ ๋ ค
๐ ์ต์ Embedding ์ ํ๊ณผ ๊ด๋ฆฌ ์ ๋ตโ
- Embedding ๋ชจ๋ธ ์
๊ทธ๋ ์ด๋ ์ ์ ์ฒด ์ฌ์์ฑ ํ์
- ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ ๊ฐ ํธํ ๋ถ๊ฐ
- ์ฐ๊ตฌ ์ค: ๊ธฐ์กด ๋ฒกํฐ๋ฅผ ์ ์๋ฒ ๋ฉ์ผ๋ก ํจ์จ์ ๋ณํํ๋ ๊ธฐ์
- ๋์ผ ๋ชจ๋ธ๋ก ์ฟผ๋ฆฌ/๋ฌธ์ Embedding ์ ์ง ํ์
- ํ๊ฐ ์งํ: precision, recall + latency, throughput
๐งฉ RAG(Retrieval-Augmented Generation) ์์คํ ํโ
- ๊ฒ์/์์ฑ ์ผ๊ด์ฑ ์ํด ๋์ผ Embedding ๋ชจ๋ธ ์ฌ์ฉ
- ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ์ถ์ฒ:
- ํค์๋ ๋งค์นญ (sparse) + ์๋ฏธ ๊ฒ์ (dense) ๊ฒฐํฉ
- Reranking, Metadata Filtering, BM25 ๊ฒฐํฉ ์ฌ์ฉ
- ์ค์๊ฐ์ฑ ์๊ตฌ ์: No-index RAG, ์ต์ API ํ์ฉ ๊ฐ๋ฅ
๐ผ ์ํฐํ๋ผ์ด์ฆ ์ ์ฉ ์ ๋ต (CTO ์ธ์ฌ์ดํธ)โ
์๋ฒ ๋ฉ ๋์ ์ ๊ธฐ๋ ํจ๊ณผโ
- ๋ค์ํ ํํ์ ๋ฐ์ดํฐ(ํ ์คํธ, ์ด๋ฏธ์ง ๋ฑ) ๊ฒ์ ๊ฐ๋ฅ
- ์ ๋ฐํ ์ถ์ฒ, ์๋ฏธ ๊ธฐ๋ฐ ๋ถ๋ฅ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ์ํคํ ์ฒ์ ํจ๋ฌ๋ค์ ๋ณํ
๋์ ์ ๋์ ๊ณผ์ โ
- ๋น์ฉ, ํ์คํ ๋ถ์ฌ, ์ธ์ฌ ํ๋ณด
- ๊ธฐ์กด ์์คํ ๊ณผ์ ํตํฉ ์ด๋ ค์
- ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค, ๋ณด์ ์ด์
๐งช ์ฝ๋๋ฉ ์์ฝโ
1. RAG ํ์ดํ๋ผ์ธ ๋ง๋ค๊ธฐโ
- Chroma DB + Gemini API๋ก ๊ฐ๋จํ RAG ๊ตฌํ
2. Embedding ์ ์ฌ๋ ์๊ฐํโ
- Heatmap์ผ๋ก ๋ฌธ์ฅ ๊ฐ ์๋ฏธ ์ ์ฌ๋ ์๊ฐ ํ์ธ
3. Embedding์ ๋ถ๋ฅ ๋ชจ๋ธ ํน์ง์ผ๋ก ํ์ฉโ
- ์ฌ์ ํ์ต๋ ์๋ฒ ๋ฉ โ ๋ถ๋ฅ๊ธฐ ์์ ์ถ๊ฐ ์ธต ํ์ต
๐ฏ ํด์ฆ ์์ฝ (๋ณต์ต ์ฒดํฌ)โ
- โ Rule-based ์์คํ ์ ์๋ฒ ๋ฉ ๋ถ์ ํฉ
- โ SCAN์ ๊ณ ์ฐจ์์์ ์๋/์ ํ๋ ์ฐ์
- โ Bag-of-Words๋ ์์/์๋ฏธ ๋ฌด์
- โ RAG์์ ์๋ฒ ๋ฉ + ํค์๋ ํผํฉ ์ถ์ฒ
- โ LSH๋ ์ ์ฌ ์์ดํ ์ hash bucket์ ๊ทธ๋ฃนํ
๐ ๋ง๋ฌด๋ฆฌโ
Day 2๋ ์๋ฒ ๋ฉ๊ณผ ๋ฒกํฐ DB์ ์ด๋ก ๋ถํฐ ์ค์ ์์ฉ๊น์ง ์์ฐ๋ฅด๋ ๊ฐ์์์ต๋๋ค. RAG ์์คํ ๊ตฌ์ถ, ์ฑ๋ฅ ํ๊ฐ, ์ต์ ๋ชจ๋ธ ์ ์ฉ ์ ๋ต๊น์ง ๋ค๋ฃฌ ๋งํผ, ์ค๋์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฌ๋ถ์ AI ์์คํ ์ ๊ฐ๋ ฅํ ๊ฒ์ ๋ฐ ๋ฌธ๋งฅ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ์ถ๊ฐํด ๋ณด์ธ์!