DB 유형 - 벡터 DB

04.Database 2024. 1. 14. 01:25
728x90
반응형

벡터 데이터베이스란?

  • 벡터 데이터베이스는 방대한 양의 고차원 데이터를 벡터 형태로 최적화 하여 보관하고 쿼리하기 위해 특화된 DB
    • 벡터는 서로 다른 특성이나 품질을 기반으로 개체를 설명하는 수학적 데이터 표현입니다.
      • 각 벡터는 단어나 그림과 같은 단일 데이터 요소를 나타내며 여러 특성을 설명하는 값 모음으로 구성됩니다. 이러한 변수를 "기능" 또는 "치수"라고도 합니다.
      • 예를 들어, 그림은 픽셀 값의 벡터로 표현될 수 있지만 전체 문장은 단어 임베딩의 벡터로 표현될 수 있습니다.
      • 벡터 데이터베이스는 인덱싱 전략을 사용하여 특정 쿼리 벡터와 유사한 벡터를 쉽게 찾을 수 있습니다. 이는 기계 학습 과 같은 경우에 특히 유익합니다. 
      • 유사한 데이터 포인트를 발견하거나 제안을 생성하기 위해 유사성 검색이 자주 사용되기 때문입니다.

출처 : https://python.langchain.com/docs/modules/data_connection/1

 

 

벡터 데이터베이스 파이프라인

https://www.elastic.co/kr/what-is/vector-database

 

벡터 데이터베이스란 무엇인가? | 벡터 데이터베이스 종합 안내서

벡터 데이터베이스가 무엇인지, ML 및 NLP에서 벡터 임베딩 및 애플리케이션을 어떻게 사용하는지, 그리고 기존 데이터베이스와 어떻게 다른지 정의합니다.

www.elastic.co

  • AI 어플리케이션들은 Vector Embeddings에 의존
    • 임베딩은 AI 모델에 의해 생성되며, 많은 수의 속성/피쳐가 있어서 관리하기가 어려움
      • AI 및 ML에서 이 피쳐들은 패턴, 관계 및 기본 구조를 이해하는데 필수적인 데이터의 다양한 디멘젼들을 표현
  • 벡터DB를 통해서 AI에 시맨틱 정보 검색, 장기 메모리 등의 고급 기능들을 구현 가능
    • 임베딩 모델을 통해서 인덱싱할 콘텐츠의 벡터 임베딩을 생성
    • 벡터 임베딩들을 벡터DB에 삽입.
    • 임베딩이 어디에서 생성되었는지 오리지널 콘텐츠에 대한 레퍼런스를 포함
    • 어플리케이션이 쿼리를 하면, 같은 임베딩 모델을 이용하여 쿼리에 대한 임베딩을 생성하고, 이 임베딩으로 DB를 검색해서 비슷한 벡터 임베딩을 찾음
    • 이 임베딩들은 오리지널 콘텐츠에 연결되어 있음

Vector Index 와 Vector DB의 차이점

  • FAISS(Facebook AI Similarity Search) 같은 벡터 인덱스도 벡터 임베딩 검색을 개선하지만, DB의 기능을 가지고 있지는 않음
  • Vector DB는 여러가지 장점을 가짐
    • 데이터 관리 기능: 데이터의 삽입, 삭제, 갱신이 쉬움
    • 메타데이터 저장 및 필터링: 각 벡터에 대한 메타데이터 저장이 가능
    • 확장성: 분산 및 병렬처리 기능을 제공
    • 실시간 업데이트 지원
    • 백업 및 컬렉션 기능(일부 인덱스만 골라서 백업)
    • 에코시스템 연동: ETL(Spark), 분석도구(Tableau, Segment), 시각화(Grafana) 등과 연동. AI 도구와의 연동(LangChain, LlamaIndex, ChatGPT Plugins)
    • 데이터 보안 및 접근 권한 관리

벡터 검색 및 임베딩의 중요성

  • 대규모 언어 모델을 다룰 때 벡터 검색과 임베딩은 효율적이고 정확한 정보 검색을 가능하게 함.
  • 텍스트를 고차원 벡터로 변환하여 빠른 비교 및 검색을 지원하며, 의미적 의미를 포착하여 검색 결과의 질을 향상시킴.

예시

  • Memory 객체를 사용하여 청킹 전략을 설정하고, 머신러닝과 인공지능에 대한 텍스트와 메타데이터를 저장함.
  • 특정 쿼리에 대해 상위 n개의 관련 청크를 검색하여 결과를 출력함.

GN⁺의 의견

이 글에서 가장 중요한 것은 VectorDB가 텍스트 데이터를 효율적으로 저장하고 검색할 수 있는 파이썬 패키지라는 점이다. 벡터 검색과 임베딩 기술을 사용하여 대규모 데이터셋에서 빠르고 정확하게 정보를 검색할 수 있으며, 이는 데이터 기반 의사결정, 자연어 처리 등 다양한 분야에서 응용 가능함을 시사한다. 이 기술은 데이터의 양이 계속해서 증가하는 현대 사회에서 더욱 중요해질 것이며, 이로 인해 소프트웨어 엔지니어링, 데이터 과학, 인공지능 분야에 관심 있는 사람들에게 흥미로운 주제가 될 것이다.

 

https://devocean.sk.com/blog/techBoardDetail.do?ID=164964&boardType=techBlog 

 

ChatGPT의 전두엽(장기기억 저장소)으로 각광받고 있는 Vector DB에 대해 알아보자

 

devocean.sk.com

 

https://vectordb.com/

 

VectorDB

Description VectorDB is a lightweight Python package for storing and retrieving text using chunking, embedding, and vector search techniques. It provides an easy-to-use interface for saving, searching, and managing textual data with associated metadata and

vectordb.com

https://www.pinecone.io/learn/vector-database/

 

What is a Vector Database & How Does it Work? Use Cases + Examples | Pinecone

Discover Vector Databases: How They Work, Examples, Use Cases, Pros & Cons, Selection and Implementation. They have combined capabilities of traditional databases and standalone vector indexes while specializing for vector embeddings.

www.pinecone.io

 

728x90
Posted by Mr. Slumber
,