04.Database

DB 유형 - 벡터 DB (벡터 데이터베이스)

Mr. Slumber 2024. 12. 9. 13:23
728x90
반응형

벡터 데이터베이스란?

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

벡터 임베
벡터 DB와 지식그래프 비교 (출처: medium.aiplanet.com)

 

벡터 데이터베이스는 정보를 일련의 목록으로 구성하는 방법으로, 각 목록은 서로 다른 속성에 따라 정렬된다. 예를 들어 알파벳순으로 나열된 목록이 있는 경우 답변이 그 순서에 가까울수록 관련성이 높다. 알파벳순 목록은 1차원 벡터 데이터베이스이지만, 벡터 데이터베이스는 차원을 무제한으로 가질 수 있으므로 여러 요소와의 근접성을 기준으로 관련 답변을 검색할 수 있다. 따라서 LLM과 함께 사용하기에 적합하다. 

(출처: ‘속도 비용·난이도 제각각’··· 기업이 LLM을 도입하는 7가지 방법, CIO, 2024.11.20)

 

 

 

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

 

(장점)

△벡터 데이터 처리

△벡터 검색 및 유사성 분석

△대용량 벡터 데이터 처리

△벡터 데이터 갱신 등


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

 

 

(상용제품) 

- 크로마DB(ChromaDB)오픈소스 벡터 저장소
 - ‘PG벡터’(PGVector): 포스트그레스SQL 데이터베이스용 벡터 유사성 검색 확장 익스텐션
- FAISS(Facebook AI Similarity Search): 메타 제공 멀티미디어 문서 내 유사성 검색 지원 오픈소스 라이브러리
- 파인콘(Pinecone): 클라우드 기반

 

 

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

 

2024년 1월 기준 벡터 DB 및 관련 기능의 순위 (출처: DB엔진닷컴)

 

벡터 데이터베이스 구성 시의 고려사항

• 데이터 전처리 및 임베딩: 벡터 데이터베이스에 데이터를 효과적으로 저장하고 검색하기 위해서는 데이터 전처리와 임베딩 과정이 중요하다. 텍스트 데이터의 경우 적절한 토크나이저를 선택하고 정제 과정을 거쳐야 한다. 또한 어떤 언어모델을 사용해 임베딩할지, 미세조정(fine-tuning)이 필요한지 등을 결정해야 한다.

• 성능 최적화: 벡터 검색의 성능은 응답 시간, 처리량 등 애플리케이션의 핵심 요구사항과 직결된다. 인덱싱 전략 외에도 벡터 차원 축소, 캐싱, 분산 아키텍처 적용 등 다양한 기법을 통해 성능을 최적화할 수 있다.

• 모니터링 및 운영: 실제 운영 환경에서는 벡터 데이터베이스의 상태를 지속적으로 모니터링하고 관리해야 한다. 데이터 증가, 쿼리 패턴 변화 등에 따라 인덱싱을 재구성하거나 클러스터를 확장해야 할 수 있다. 또한 백업, 장애 대응 등 운영 관리 절차도 마련돼야 한다.

• 보안 및 프라이버시: 벡터 데이터베이스에는 민감한 데이터가 포함될 수 있으므로 보안과 프라이버시 보호 대책도 필수적이다. 데이터 암호화, 접근 제어, 암호화된 벡터 검색 등의 기술을 활용할 수 있다.

• 통합 및 상호운용성: 벡터 데이터베이스를 기존 데이터 인프라와 통합하거나 다른 시스템과 연계해야 하는 경우가 많다. API, 데이터 파이프라인, 데이터 포맷 등의 측면에서 상호운용성을 고려해야 한다.

이러한 요소들을 종합적으로 검토해 프로젝트 요구사항에 가장 적합한 벡터 데이터베이스 아키텍처를 설계하고 구축해야 한다. 운영 단계에서도 지속적인 모니터링과 최적화가 필요할 것이다.


 

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

https://www.digitaltoday.co.kr/news/articleView.html?idxno=481780

 

생성AI를 위한 기술 생태계 뜬다...벡터DB 등 관심 집중 - 디지털투데이 (DigitalToday)

[디지털투데이 황치규 기자] 생성AI를 내부 시스템에 적용하려는 기업들이 늘면서 거대언어모델(LLM)을 보다 효과적으로 쓸 수 있도록 지원하는 기술들에 대한 대한 관심이 고조되고 있다. 개인

www.digitaltoday.co.kr

http://www.itdaily.kr/news/articleView.html?idxno=220008

 

[기획특집] 생성형 AI 시대, 꽃피우는 ‘벡터 DB’ - 아이티데일리

[아이티데일리] 생성형 인공지능(Gen AI)이 전 세계 모든 산업분야에서 혁신을 일으키고 있다. 하지만 해결해야 할 문제점도 많다. 엉뚱한 답변을 제시하는 환각(Hallucination) 현상, 학습 데이터에

www.itdaily.kr

http://www.itdaily.kr/news/articleView.html?idxno=225821

 

[전문가 강좌] 생성형 AI, 벡터 데이터베이스로 데이터 패러다임을 혁신하다 - 아이티데일리

[아이티데일리] 인공지능(AI)은 급격한 발전을 거듭하며 우리의 삶에 많은 변화를 가져오고 있다. 특히 최근 딥러닝 기술의 비약적 성장으로 자연어 처리, 컴퓨터 비전, 음성 인식 등 다양한 분야

www.itdaily.kr

 

728x90