728x90
1. 벡터 DB (Vector Database)
- 정의: 고차원(예: 512, 1536차원 등) 벡터를 저장하고 빠르게 유사도 검색(Nearest Neighbor Search) 할 수 있게 특화된 DB.
- 왜 쓰나?
- 문서, 이미지, 음성 같은 비정형 데이터를 임베딩(embedding) 모델로 숫자 벡터로 변환 → 저장
- 사용자가 질문하면 그 질문을 임베딩해서 코사인 유사도, dot product 등으로 가장 비슷한 데이터 검색
- 대표 사례: Pinecone, Qdrant, Weaviate, Milvus
- 챗봇에서 역할:
- 업로드한 매뉴얼 문서 → 벡터화 후 저장
- 사용자가 질문 → 임베딩 후 벡터 DB 검색 → 관련 문서 chunk 찾아서 LLM에 전달
👉 즉, “비슷한 것 찾아주는” 검색 전문 DB.
2. 그래프 DB (Graph Database)
- 정의: 데이터를 노드(Node) 와 엣지(Edge) 로 표현해서, 연결 관계(relationship) 를 탐색하는 데 최적화된 DB.
- 왜 쓰나?
- “누가 누구랑 연결되어 있나?”, “어떤 경로를 통해 관계가 이어지나?” 같은 질의에 강함
- 예: 소셜 네트워크(사람-친구 관계), 지식 그래프(개념-관련 개념 연결), 추천시스템(유저-아이템 관계)
- 대표 사례: Neo4j, TigerGraph, ArangoDB
- 챗봇에서 역할:
- 문서의 개념, 엔티티 간 관계를 노드로 연결해둠
- 단순히 “비슷한 문서 찾기”가 아니라,
- 예: A 기술 → B 부품 → C 문제점 같이 관계를 따라 추론
- 질의응답을 “연결 기반 지식”으로 처리
👉 즉, “연결과 관계 추적”에 강한 DB.
3. 두 가지 차이
| 구분 | 벡터 DB | 그래프 DB |
| 데이터 구조 | 수치 벡터 (임베딩) | 노드(객체) + 엣지(관계) |
| 주력 기능 | 유사도 검색 | 관계 탐색 / 경로 질의 |
| AI 챗봇 활용 | 문서/질문 매칭, RAG | 지식 그래프, 추론, 관계 기반 QA |
| 속도/성능 | 고차원 검색에 최적화 | 연결 탐색에 최적화 |
| 예시 | “비슷한 문서 찾아줘” | “A와 B가 어떻게 연결돼 있어?” |
4. 챗봇 관점에서 결론
- 문서 기반 Q&A (RAG 챗봇): 벡터 DB가 맞음 ✅
- 지식 그래프 기반 추론 챗봇 (개념 간 관계 추적, 의학 지식 그래프, 인물 관계 질의 등): 그래프 DB가 맞음 ✅
- 실무에서는: 두 개를 하이브리드로 쓰는 경우도 많아요.
- Qdrant(벡터 검색) + Neo4j(관계 저장) 같이 붙여서 →
- 먼저 벡터 DB에서 후보 문서 찾기 → 그래프 DB에서 관계 추론 → LLM에 전달
- Qdrant(벡터 검색) + Neo4j(관계 저장) 같이 붙여서 →
👉 정리하면, 지금 만드시는 “문서 기반 챗봇”은 벡터 DB로 시작하는 게 정석이고, “개념 간 관계 추론”이 필요해지면 그래프 DB까지 확장하는 게 베스트입니다.
추가 게시글 더보기
728x90
'기타 > 관심(●'◡'●)' 카테고리의 다른 글
| [n8n] Webhook에서 Path Param 사용하기 (0) | 2025.09.02 |
|---|---|
| RAG 챗봇 아키텍처: 벡터 단독 vs 그래프+벡터 하이브리드 (3) | 2025.08.19 |
| Qdrant Payload 필터로 원하는 문서만 제거하기 (2) | 2025.08.18 |
| TTS와 STT: 음성 기술의 혁신 (4) | 2025.08.14 |
| 크롬(Chrome) 최신 신기능 요약 (2025년 기준) (4) | 2025.08.13 |