Files
2nd/10_Wiki/Topics/AI_and_ML/Vector Database.md
T
Antigravity Agent 0441f6e2a2 feat(wiki): implement P-Reinforce v3.0 standard & integrate 26+ new knowledge artifacts
- Formalized automatic record migration protocol in System Manual.
- Integrated high-density knowledge for RAG, AI, Business Strategy, and Leadership.
- Enhanced graph connectivity across core strategic hubs.
- Archived raw data and updated timeline records.
2026-05-04 22:40:32 +09:00

4.1 KiB


id: P-Reinforce-AUTO-VEC-001 category: AI_and_ML confidence_score: 1.00 tags: [auto-reinforced, vector-db, rag, vector-search, storage] last_reinforced: 2026-05-04

Vector Database

📌 한 줄 통찰 (The Karpathy Summary)

"비정형 데이터의 거대한 좌표계: 텍스트나 이미지를 단순 저장하는 것을 넘어, 고차원의 숫자 배열(Vector)로 인덱싱하여 '의미적 유사성'을 기반으로 초고속 검색을 가능하게 하는 AI 시대의 핵심 저장소."

📖 구조화된 지식 (Synthesized Content)

벡터 데이터베이스는 데이터를 고차원 벡터 공간의 점으로 표현하고 저장하며, 이를 효율적으로 검색하기 위해 설계된 특수 목적의 데이터베이스 시스템입니다.

  1. 핵심 기능 (Core Capabilities):

    • 벡터 저장 및 색인 (Storage & Indexing): 고차원 벡터 임베딩을 확장성 있게 저장하고, Vector Search를 위한 특화된 인덱스(HNSW, IVF 등)를 생성합니다.
    • 유사도 검색 (Similarity Search): 사용자의 질의 벡터와 가장 '가까운' 데이터를 수학적 거리(코사인 유사도 등)를 기반으로 찾아냅니다.
    • 속성 필터링 (Metadata Filtering): 벡터 검색과 함께 전통적인 메타데이터(날짜, 카테고리 등) 필터링을 결합하여 정교한 결과 도출이 가능합니다.
  2. 주요 인덱싱 알고리즘 (ANN - Approximate Nearest Neighbor):

  3. 대표적인 솔루션:

    • Open Source: Milvus, Weaviate, Qdrant, Chroma, FAISS(Library)
    • Managed/Cloud: Pinecone, Zilliz

⚖️ Trade-offs & Caveats

  • 컴퓨팅 리소스: 유사도 계산 및 고차원 인덱스 유지를 위해 높은 CPU/메모리 사양과 리소스 비용이 발생합니다.
  • 정확도 vs 속도: 성능을 위해 ANN 기법을 사용하면 100% 정확한 결과가 아닌 '근사치'를 반환하므로, 정밀도가 극도로 중요한 도메인에서는 인덱스 설정 튜닝이 필요합니다.
  • 해석 가능성 부족: 시스템이 왜 특정 결과를 추천했는지 수학적 거리 외에 논리적인 이유를 설명하기 어렵습니다.

💻 실전 구현 코드 (Boilerplate)

Python 환경에서 ChromaDB를 활용한 벡터 데이터베이스 구축 예시입니다.

import chromadb
from chromadb.utils import embedding_functions

# 1. 클라이언트 생성 및 컬렉션 초기화
client = chromadb.Client()
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")

collection = client.create_collection(
    name="antigravity_wiki",
    embedding_function=sentence_transformer_ef
)

# 2. 데이터 추가 (텍스트 + 메타데이터)
collection.add(
    documents=["RAG는 검색 증강 생성의 약자입니다.", "벡터 DB는 고차원 데이터를 저장합니다."],
    metadatas=[{"category": "AI"}, {"category": "Infrastructure"}],
    ids=["id1", "id2"]
)

# 3. 유사도 검색 실행
results = collection.query(
    query_texts=["RAG가 뭐야?"],
    n_results=1
)

print(f"Top Result: {results['documents'][0][0]}")
print(f"Confidence (Distance): {results['distances'][0][0]}")

🔗 지식 연결 (Graph)


Last updated: 2026-05-04