▶️25분
[영상] Semantic Chunking과 한국어 RAG 실습
Day 3: 벡터 DB (Chroma, Pinecone)
[영상] Semantic Chunking과 한국어 RAG 실습
RAG 기초 > Day 3: 벡터 DB (Chroma, Pinecone)
학습 목표
Chroma, Pinecone, Qdrant 세 벡터 DB의 아키텍처와 사용 목적 차이를 설명할 수 있다 한국어 제조 문서를 Chroma에 적재하고 쿼리하는 기본 코드를 작성할 수 있다 벡터 DB 선택 시 고려해야 할 4가지 기준(규모·속도·운영·비용)을 적용할 수 있다 프로토타입과 프로덕션에서 적합한 벡터 DB를 선택할 수 있다
영상 핵심 정리 — 벡터 DB 3종 비교
벡터 DB가 필요한 이유
RAG에서 '유사한 문서를 ms 안에 찾기'를 일반 RDBMS는 못 한다. 1M 벡터 전수 코사인은 수 초 걸린다. HNSW로 ms 수준으로 단축.
3종 비교표
| 항목 | Chroma | Pinecone | Qdrant |
|---|---|---|---|
| 설치 | pip install chromadb | 클라우드 | Docker/클라우드 |
| 언어 | Python | 관리형 | Rust |
| 최대 규모 | ~수백만 | 수십억+ | 수십억 |
| 월 비용(1M) | 무료 | $100~500 | $30~50 |
| 메타데이터 필터 | 기본 | 기본 | 강력 |
| 추천 단계 | 프로토타입 | 소규모 | 중·대규모 |
Chroma 3줄 시작
import chromadb
client = chromadb.Client()
collection = client.create_collection('kosha_manuals')
collection.add(
documents=['베어링 교체 주기는 3000시간입니다'],
ids=['doc_001'],
metadatas=[{'week': 'W3', 'source': '설비매뉴얼'}]
)
results = collection.query(query_texts=['베어링 언제 바꿔야 해?'], n_results=3)
HNSW 직관
레이어 3 (희소): A ─── E ← 원거리 고속 이동
레이어 2 (중간): A─B─C─E
레이어 1 (밀집): A─B─C─D─E─F─G ← 정밀 탐색
함정 주의: Chroma는 디스크 영속성 모드(PersistentClient) 설정 안 하면 프로세스 종료 시 데이터 사라짐. path= 인자 반드시 지정.
다음 task와의 연결
'벡터DB 3종 비교'에서 동일 쿼리셋으로 응답 시간, Precision@5 벤치마크를 실행한다.
AI로 학습하기 — 꿀팁
🤖벡터DB 3종 비교 선택 코드 생성AI 학습 팁
AI 에이전트에게 Chroma·Pinecone·Qdrant 세 벡터DB를 제조 RAG 프로토타이핑과 프로덕션 배포 시나리오에 맞게 설정하는 코드를 작성하게 하고, 선택 기준을 검토하세요.
제조 설비 매뉴얼 한국어 RAG 시스템을 위한 벡터DB 3종(Chroma·Pinecone·Qdrant) 설정 코드를 작성해줘. Chroma는 Python 3줄 프로토타이핑, Pinecone은 완전 관리형 프로덕션, Qdrant는 Rust 기반 자체 호스팅 시나리오로 각각 임베딩 저장·유사도 검색 코드를 보여줘. 설비 ID·라인·위험등급으로 페이로드 필터링하는 Qdrant 예시도 포함해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • Chroma: 로컬 임베디드, Python 3줄로 시작 — 프로토타이핑 최적
- • Pinecone: 완전 관리형, 인프라 0 관리 — 비용 높지만 단순
- • Qdrant: Rust 기반, 페이로드 필터링 강력 — 자체 호스팅 가성비 최강
- • HNSW 알고리즘이 세 DB 모두의 근사 최근접 탐색 핵심
