Study/기타

RAG에 대하여, 벡터 데이터베이스

코딩 잘 할거얌:) 2025. 2. 1. 20:14
반응형

🚀 벡터 데이터베이스(Vector Database) 쉽게 이해하기

🧐 벡터? 스칼라? 벡터 데이터베이스?

처음 "벡터"라는 단어를 들으면 물리에서 배운 크기와 방향을 가진 물리량이 떠오를 수도 있다. 그렇다면 우리가 다루는 "벡터 데이터베이스"도 그런 개념일까? 처음엔 나도 그렇게 생각했다. 벡터와 스칼라를 떠올리며, 데이터에도 방향성이 존재하는 건가? 라는 생각을 했지만, 여기서 말하는 벡터는 그런 의미가 아니다.

개인적으론 이런건줄 알았다.

벡터 데이터베이스(Vector Database)는 데이터를 벡터(숫자의 집합)로 변환하여 저장하고 검색하는 새로운 방식의 데이터베이스다. 기존의 관계형 데이터베이스(RDB)나 NoSQL과는 다르게, 키워드가 아닌 의미 기반 검색(Semantic Search)을 가능하게 한다.

하지만 이렇게 말하면 여전히 와닿지 않을 수도 있다. 그래서 기존 데이터베이스와 비교해 보면 훨씬 쉽게 이해보도록 하자.


🔍 1. 기존 데이터베이스 vs 벡터 데이터베이스 비교

💾 기존 데이터베이스 (RDB, NoSQL)

  • 정보를 문자나 숫자로 저장 → 예: "사과", "가격: 1000원"
  • SQL 같은 명령어로 정확하게 일치하는 값을 찾아야 함 → 예: "사과"를 검색하면 사과만 나옴
  • 키워드 기반 검색 → "사과"라고 검색하면 '사과'가 포함된 결과만 반환

🧠 벡터 데이터베이스 (Vector DB)

  • 정보를 **벡터(숫자의 집합)**로 변환하여 저장 → 예: "사과 → (0.8, 1.2, 0.6, ...)"
  • 의미 기반 검색 가능 → 예: "사과"를 검색하면 배, 귤, 포도도 추천!
  • 키워드가 아니라 문맥과 의미를 기반으로 검색 (Semantic Search)

즉, 벡터DB는 정확한 키워드를 몰라도 관련된 정보를 찾아준다! 📌 일반 검색 엔진(네이버, 구글)과 추천 시스템(넷플릭스, 유튜브)의 차이와 비슷함
      → 기존 검색 엔진: "아이언맨"을 검색하면 영화 아이언맨만 나옴
      → 추천 시스템 (벡터DB 기반): "아이언맨"을 검색하면 마블 영화 추천

벡터 데이터베이스에서 '이념', '정당' 에 대해 검색하면 이렇게 나오지 않을까..?


🎯 2. 벡터 데이터베이스 활용 예시

🕵️‍♂️ 예제 1: 네이버/구글 검색 vs AI 검색 차이

질문: "한국에서 가장 높은 산은?"

  • 일반 DB → "한라산", "백두산" 키워드가 들어간 웹페이지 목록
  • 벡터 DB → "한국에서 제일 높은 산은 백두산이며, 남한에서 제일 높은 산은 한라산입니다."
  • 📌 AI가 문맥을 이해하고 최적의 답변을 제공!

🎬 예제 2: 넷플릭스/유튜브 추천 시스템

검색어: "액션 영화"

  • 일반 DB → "액션 영화" 키워드가 포함된 동영상 목록
  • 벡터 DB → "빠른 전개", "격투 장면이 많은 영화" 등 비슷한 특징의 영상 추천
  • 📌 AI가 영상의 특징을 분석해서 맞춤 추천

🛒 예제 3: 온라인 쇼핑몰 상품 추천

검색어: "흰색 운동화"

  • 일반 DB → "흰색 운동화"만 검색됨
  • 벡터 DB → "흰색 스니커즈", "흰색 런닝화", "비슷한 스타일의 신발"까지 추천
  • 📌 AI가 제품 디자인, 색상, 브랜드까지 고려해서 추천

🤖 예제 4: AI 챗봇 (RAG)에서 활용

질문: "챗봇 만들려면 어떻게 해야 돼?"

  • 일반 DB → "챗봇" 키워드가 포함된 문서 검색
  • 벡터 DB → "FastAPI + GPT-4o + LangChain을 활용한 챗봇 구축법"과 관련된 문서 추천
  • 📌 AI가 맥락을 이해하고 최적의 문서 검색

❓ 3. 왜 벡터DB가 필요할까?

기존 데이터베이스는 정확한 키워드가 없으면 검색이 어렵다!

벡터DB는 의미를 이해하고 연관된 정보를 제공한다!

LLM과 결합하면 질문에 맞는 데이터를 찾아 AI가 더 정확한 답변을 제공할 수 있다!


🏆 4. 대표적인 벡터 데이터베이스

이름 특징

FAISS (Meta) GPU 가속 지원, 빠른 검색 속도
ChromaDB LangChain과 호환, Python 친화적
Pinecone 클라우드 기반, 대규모 검색 최적화

ChromaDB는 FastAPI와 함께 RAG 시스템 구축에 많이 사용됨
FAISS는 GPU 지원이 가능해서 대량 데이터 검색에 유리함
Pinecone은 AWS, GCP와 잘 연동되어 클라우드 기반 벡터 검색에 최적화됨


🚀 5. 결론

  • 벡터 데이터베이스는 데이터를 벡터(숫자 좌표)로 변환하여 저장하는 DB
  • 기존 키워드 검색과 달리 의미를 기반으로 유사한 데이터를 찾아준다
  • AI 챗봇, 검색 엔진, 추천 시스템, 문서 검색 등에 활용
  • RAG 시스템에서 벡터DB를 사용하면 더 정확한 검색과 응답이 가능하다

🔥 쉽게 말하면, 벡터DB는 "검색을 유연하게 만들어 주는 AI" 역할이라고 생각하면 좋다.

728x90