728x90
반응형
SMALL

■ Vector DB의 개념

1. AI가 데이터를 이해하는 방식(숫자 좌표)대로 저장하고 검색해 주는 DB다.

  - 사람은 문자와 의미로 이해하지만, AI는 숫자 벡터(Vector)로 이해한다.

  - Vector DB는 텍스트, 이미지, 음성, 코드 등을 AI가 이해하는 수치 공간(고차원 벡터 공간)으로 변환하여 저장한다.

  - 일반 DB가 "값 저장" 중심이라면, Vector DB는 "의미 기반 검색"에 최적화된 DB다.

  - 보통 벡터 차원은 384, 768, 1024, 1536, 3072 등 수백~수천 차원이다.

  - 즉, 단순 저장소가 아니라 AI 검색을 위한 수학적 공간 관리 시스템이라고 보면 된다.

 

2. 기존 DB는 정확한 글자 찾기라면, Vector DB는 의미 찾기라고 생각하면 된다.

기존DB (정확 매칭 기반) Vector DB (의미 기반 검색)
WHERE name = '사과' 과일 중에서 빨갛고 달콤한 것
키워드 검색 문장이 달라도 의미가 비슷하면 검색 가능
LIKE 검색 오타가 있어도 검색 가능
Full-text index 번역된 문장도 의미 기반 검색 가능
조건 필터링 중심 이미지 ↔ 텍스트 교차 검색 가능 (멀티모달)

예) 아이폰 배터리 오래가는 법
      아이폰 전력 절약 팀

→ 단어는 다르지만 의미가 비슷 → Vector 유사 판단 가능

 

3. 작동원리

    3.1. 임베딩(Embedding) 과정

          - 텍스트/이미지를 AI 모델(Embedding Model)에 넣는다.

          - 예: Sentence Transformer, OpenAI Embedding Model 등

          - 출력 결과는 고차원 숫자 배열(Vector)

          예) 사과: [0.1, 0.5, 0.9]

                배: [0.1, 0.6, 0.8] (사과와 숫자가 비슷함 → 거리가 가까움)

                자동차: [0.9, -0.2, 0.1] (사과와 숫자가 완전 다름 → 거리가 멂)

          ※ 실제 환경에서는 3차원이 아니라 1000차원 이상임

    3.2. 벡터 저장

        3.2.1. Vector DB는 다음을 함께 저장한다

                - Vector (숫자 배열)

                - 원본 텍스트/이미지

                - 메타데이터 (작성자, 날짜, 카테고리 등)

        3.2.2. Vector + Metadata + Raw Data를 함께 저장하는 구조

    3.3. 유사도 검색 (Similarity Search)

        3.3.1. 사용자 질문 → 임베딩 → 벡터 생성 → DB 안에 있는 벡터들과 거리 계산 → 가장 가까운 Top-K 개를 반환

        3.3.2. 이때 사용하는 거리 계산 방식

                - 코사인 유사도 (Cosine Similarity)

                - 유클리드 거리 (Euclidean Distance)

                - 내적(Dot Product)

                - Manhattan Distance 등

    3.4. 인덱싱 (속도의 핵심)

        3.4.1. 데이터가 수백만~수억 개가 되면 모든 벡터와 거리 계산은 불가능

        3.4.2. 그래서 사용하는 기술

                - ANN (Approximate Nearest Neighbor, 근사 최근접 탐색)

                - HNSW (그래프 기반 탐색)

                - IVF (Inverted File Index)

                - PQ (Product Quantization)

        3.4.3. Vector DB의 핵심 기술은 사실상 이 고속 근사 탐색 알고리즘이다.

 

4. 결론

  - 데이터는 다차원 공간에 점으로 찍혀 있다.

  - 질문도 점으로 변환된다.

  - 내 질문 점이랑 가장 가까운 점은 무엇인가?

  - 이를 계산해서 가장 의미가 유사한 데이터를 가져온다.

  - 이것이 Vector DB의 핵심 기술인 유사도 검색(Similarity Search)이다.

  - 즉, Vector DB는 의미 공간에서의 거리 계산 엔진이다.

 

■ Vector DB 종류

1. 무료 오픈소스 설치형

    1.1. 종류

          - Milvus(밀버스)

          - ChromaDB(크로마)

          - Weaviate

          - Qdrant

    1.2. 특징

          - 대규모 데이터 처리에 강함

          - 자체 서버 구축 필요

          - ANN 알고리즘 다양

          - 커스터마이징 가능

 

2. 기존 DB의 확장 기능 사용

    2.1. Oracle

          - Oracle Database 23ai

          - 벡터 타입(Vector Data Type) 공식 지원

          - SQL 기반 벡터 검색 가능

          - 기존 Oracle 환경과 통합 용이

    2.2. PostgreSQL

          - pgvector 플러그인 설치

          - SQL로 벡터 검색 가능

          - 기존 RDB와 결합이 쉬움

 

3. 클라우드형 Vector DB (관리형 서비스)

    3.1. 종류

          - Pinecone

          - Amazon (OpenSearch 벡터 검색 지원)

          - Microsoft (Azure AI Search 벡터 검색 지원)

          - Google (Vertex AI Vector Search 지원)

    3.2. 특징

          - 서버 관리 불필요

          - 빠른 도입 가능

          - 비용은 사용량 기반 과금

 

■ Vector DB의 핵심 메커니즘

1. RAG (Retrieval-Augmented Generation, 검색 증강 생성)의 엔진

  - AI(LLM)는 기본적으로 학습 데이터 기반 모델

  - 최신 정보, 사내 문서, 정책 문서 등은 모름

  - 이를 Vector DB에 저장해 두고 필요할 때 꺼내 씀

    1.1. RAG 흐름

          - 문서 → 임베딩 → Vector DB 저장

          - 사용자 질문 → 임베딩

          - 유사 문서 Top-K 검색

          - 검색 결과를 LLM에게 콘텍스트로 전달

          - LLM이 근거 기반 답변 생성

    1.2. Vector DB는 AI의 외부 메모리 (External Memory) 역할

 

2. 유사도 계산 방식

    2.1. 코사인 유사도 (Cosine Similarity)

          - 벡터의 방향 유사도 측정

          - 길이보다 "방향" 중심

          - 문장 의미 비교에 가장 많이 사용

    2.2. 유클리드 거리 (Euclidean Distance)

          - 두 점 사이 직선거리

          - 실제 거리 기반 계산

    2.3. 내적 (Dot Product)

          - 추천 시스템에서 많이 사용

          - 벡터 크기 영향 포함

          - 실제 서비스에서는 대부분 Cosine + HNSW 조합이 많이 사용됨

 

3. Vector DB의 추가 핵심 요소

    3.1. Hybrid Search (하이브리드 검색)

          - 키워드 검색 + 벡터 검색 결합

          - 예: "2024년 작성된 보안 정책 문서"

          - 날짜 필터링 (메타데이터 검색)

          - 의미 검색 (벡터 검색)

    3.2. Chunking (문서 분할 전략)

          - 긴 문서를 통째로 임베딩하면 정확도 저하

          - 보통 500~1000 토큰 단위로 분할

          - Overlap 전략 사용 (겹치게 자르기)

          - RAG 성능은 Chunk 설계에 크게 좌우됨

    3.3. Embedding 모델 선택이 성능을 좌우

          - Vector DB 자체보다 어떤 Embedding 모델을 쓰느냐가 더 중요함

          - 도메인 특화 모델 사용 시 정확도 급상승

    3.4. 한계점

          - 숫자 기반이므로 완벽한 의미 이해는 아님

          - 거리가 가깝다고 항상 정답은 아님

          - 데이터가 많아질수록 품질 관리 필요

          - 임베딩 모델 변경 시 전체 재임베딩 필요

728x90
반응형
LIST

'인공지능(AI)' 카테고리의 다른 글

LLM은 무엇인가?  (1) 2026.01.11

+ Recent posts