티스토리 뷰

카테고리 없음

별첨 #8. Embedding)이란?

미니대왕님 2025. 12. 21. 21:57

별첨 #1 KoSimCSE란?

별첨 #2. Chunking 청킹이란...

별첨 #3. n8n 완전 정복 가이드

별첨 #4. Chroma DB 완전 가이드

별첨 #4-1. Milvus란? 

별첨 #5. RAG란? 

별첨 #6. LangChain이란?

별첨 #7. MCP 서버 탑재

별첨 #8. Embedding)이란?

별첨 #9. LLaMA란

별첨 #10. kiwipiepy(키위파이파이)

별첨 #11. Poetry란?

✅ 1. Embedding 이란

:텍스트(문장, 문서, 단어)를 수치 벡터로 바꾸는 것

목적예시
유사 문장 검색 “안녕하세요” ≒ “반갑습니다”
의미 기반 검색 “삼성 본사는 어디?” → “삼성의 위치 정보”와 연결
RAG 시스템 질문을 벡터로 변환 → 관련 문서를 찾음

✅ 2. 임베딩 벡터 예시

문장: "서울은 한국의 수도입니다."

[0.124, -0.098, 0.332, ...] (384차원 또는 768차원 벡터)
 
 

✅ 3. 임베딩 생성 도구 비교

모델                                                                             특징                                   무료/유료              사용처 
OpenAI Embedding API (text-embedding-3-small) 정확도 높음 유료 ($0.02/1K) GPT 기반 RAG
HuggingFace / SentenceTransformers 로컬 실행, 무료 무료 한국어 포함 다양한 데이터
InstructorEmbedding 프롬프트 기반 정확도 향상 무료 고정밀 검색
KoSimCSE / KoBERT 한국어 특화 무료 한국어 질문 응답
FastText / Word2Vec 구버전, 빠름 무료 단어 수준 분석

✅ 4. 설치 방법

✅ 1) 기본 설치 (HuggingFace 기반)

 
$ pip install sentence-transformers

✅ 2) OpenAI Embedding 사용 시

 
$  pip install openai

✅ 3) InstructorEmbedding

 
$  pip install instructor-embedding

✅ 5. 사용법 (Python 실전 코드)

📌 HuggingFace 임베딩 예시

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-MiniLM-L6-v2")

texts = ["서울은 한국의 수도입니다.", "대한민국의 수도는 어디인가요?"]
embeddings = model.encode(texts)

print(embeddings.shape)  # (2, 384)
 

📌 OpenAI 임베딩 예시

import openai

openai.api_key = "sk-xxx"

res = openai.Embedding.create(
    model="text-embedding-3-small",
    input=["한국의 수도는 어디인가요?"]
)

embedding = res["data"][0]["embedding"]
print(len(embedding))  # 1536 차원
 

📌 Instructor Embedding 예시

from InstructorEmbedding import INSTRUCTOR

model = INSTRUCTOR("hkunlp/instructor-xl")

sentence = "서울은 한국의 수도입니다."
instruction = "문장의 의미를 담은 벡터를 생성하세요."

embedding = model.encode([[instruction, sentence]])
print(embedding.shape)  # (1, 768)
 
 

✅ 6. LLM 기반 활용 방법 (RAG, 검색 등)

📘 A. RAG 시스템

     🔁 전체 흐름

       
[문서 청킹] → [임베딩 생성] → [벡터DB 저장]
[질문 → 임베딩] → [유사 문서 검색] → [GPT에게 전달]
 

   📘 B. 유사 문장 검색

from sklearn.metrics.pairwise import cosine_similarity

sim = cosine_similarity([embedding1], [embedding2])
 

   📘 C. 벡터DB 저장

   임베딩을 아래와 같은 벡터DB에 저장해서 검색 가능:

벡터DB                                           특징    
FAISS 로컬용, 빠르고 가벼움
Chroma 설치 쉬움, RAG에 적합
Milvus 대규모 처리, GPU 지원
Qdrant 빠르고 Rust 기반
Weaviate GraphQL 지원, 클라우드 최적화

✅ 7. 함께 쓰기 좋은 오픈소스

오픈소스                                           설명                                                                                                               연결 가능 
LangChain LLM + 임베딩 + 검색 파이프라인
LlamaIndex 문서 → 임베딩 + 검색 + 응답
RAGatouille FAISS 기반 RAG 검색 서버
ChromaDB 문서 임베딩 저장 + 검색 API
Supabase 메타데이터 저장 + 인증 시스템
Streamlit 챗봇 UI

 

✅ 8. 추천 임베딩 모델 Top 5 (2025 기준)

모델명                                                    설명                                                         장점
all-MiniLM-L6-v2 영어, 속도 빠름 ✅ HuggingFace 대표 모델
text-embedding-3-small OpenAI 최신 모델 정확도 최상급
bge-base-en-v1.5 M3E 기반 검색 정확도 인기 상승 중
instructor-xl instruction 기반 성능 향상 고정밀
KoSimCSE 한국어 질문 응답 최적 한국어 특화

✅ 9. 정리 요약

항목                                                        설명        
✅ 임베딩이란? 텍스트를 의미 벡터로 바꾸는 것
✅ 사용처 검색, 추천, RAG, 유사도 비교
✅ 도구 OpenAI, HuggingFace, Instructor 등
✅ 저장 FAISS, Chroma, Milvus 등 벡터DB
✅ 함께 쓸 도구 LangChain, LlamaIndex, Streamlit 등
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함