티스토리 뷰
✅ 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
링크
TAG
- n8n
- MSA
- Qdrant
- MCP
- Oracle
- RangChain
- 코로나19
- open ai
- chunking
- KoSimCSE
- embedding
- Chroma
- AWS
- faiss
- RAG
- 오라클
- K8s
- Weaviate
- Ai
- 버쳐박스
- 테라폼
- llama
- CVE 취약점 점검
- kiwipiepy
- poetry
- 5.4.0.1072
- llm
- VectorStore
- 쿠버네티스
- 임베딩
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
