728x90
AI 가능한 패턴 검색 복제하기
오늘은 벡터 데이터베이스 알아보자.
오늘의 배움 |
|
1. 벡터 데이터베이스
- 정의: 벡터 데이터베이스는 벡터 형식으로 저장된 데이터(고차원 임베딩 데이터)를 관리하고, 유사도 기반 검색 및 작업을 최적화하는 데이터베이스이다.
- 한 줄 요약: 고차원 임베딩 데이터를 효율적으로 관리하고 검색하는 시스템이다.
- 특징:
- 벡터 임베딩 저장: 데이터를 벡터로 변환해 저장
- 유사도 검색 최적화: 입력 벡터와 가장 유사한 벡터를 빠르게 검색
- 확장성: 대규모 벡터 데이터를 처리할 수 있는 구조 제공
- 필요성: AI/ML, 자연어 처리(NLP), 이미지 검색 등에서 데이터 효율적 관리를 위해 필요하다.
- 장점/단점:
- 장점: 고차원 데이터 관리 용이, 비정형 데이터 처리 적합, 빠른 유사도 계산
- 단점: 특정 용도에 최적화되어 있어 범용성이 떨어질 수 있음
- 예시: 추천 시스템, 이미지 검색, 자연어 검색 등
- 종류:
이름 | 특징 |
Pinecone | 클라우드 기반 서비스로 사용이 간편하며, 대규모 벡터 데이터 처리 가능 |
Weaviate | 오픈 소스 벡터 DB로, 데이터 검색과 AI 통합 기능 제공 |
FAISS | Facebook에서 개발한 라이브러리로, 고속 유사도 검색 지원 |
Milvus | 대규모 데이터 처리를 지원하는 오픈 소스 벡터 DB |
Qdrant | 벡터 검색과 필터링 기능에 강점이 있는 오픈 소스 DB |
Chroma | Python 기반의 간단한 API 제공, LangChain과 통합 가능 |
Vespa | 벡터 + 키워드 검색을 지원하며, 추천 시스템에서 많이 활용됨 |
Redis | 빠른 검색 속도와 캐시 기능을 제공하며, 기존 Redis와 통합 가능 |
Elasticsearch | 기존 검색 엔진과 결합 가능하며, KNN 검색 기능 지원 |
MongoDB | Atlas Vector Search 기능을 제공하며, 기존 MongoDB 환경에서 사용 가능 |
[참고] Vector DB vs RDB
더보기
항목 | 관계형 DB (RDB) | 벡터 DB |
데이터 저장 방식 | 테이블(행-열) 기반 구조 | 고차원 벡터 형태로 저장 |
검색 방식 | SQL 기반의 정렬 및 필터링 | 유사도 기반 검색 (Cosine Similarity, Euclidean Distance 등) |
데이터 유형 | 구조화된 데이터 (정형 데이터) | 텍스트, 이미지, 오디오 등의 비정형 데이터 |
사용 사례 | 전통적인 기업 데이터 (고객 정보, 트랜잭션 등) | 추천 시스템, 이미지/문서 검색, AI 모델 연동 |
→ 관계형 DB는 정확한 데이터 매칭이 강점이고, 벡터 DB는 유사도 기반 검색이 강점이다.
2. 유사도 계산 방식
- Cosine Similarity:
- 두 벡터의 코사인 각도를 기반으로 유사도를 측정한다.
- 값 범위: [-1, 1]
- 유클리드 거리: 두 벡터 간의 거리를 측정하여 유사도를 평가한다.
- 두 벡터 간의 거리로 유사도를 측정
- 값이 작을수록 유사
- 예시: 추천 시스템에서 두 사용자 간의 유사도를 계산할 때 사용.
728x90
'Develop > AI' 카테고리의 다른 글
RAG (검색 증강 생성) 알아보자. (0) | 2025.03.15 |
---|---|
LangChain을 알아보자. (0) | 2025.03.15 |
ollama 사용 설정 (0) | 2025.03.15 |
LLM 주요 파라미터 및 적용에 대해 알아보자. (0) | 2025.03.15 |
LLM 사용에 대해 알아보자. (0) | 2025.03.15 |