벡터 데이터베이스 뜻과 개념에 대해서 이야기해봅시다.
벡터 데이터베이스 뜻과 개념 알기
벡터 데이터베이스 뜻(Vector Data Base)은 벡터 형태의 데이터를 저장하고 색인 하는 작업에 특화되어 있는 벡터 데이터를 효과적으로 처리할 수 있는 데이터베이스(DataBase) 시스템을 의미합니다.
벡터 데이터베이스(Vector Data Base)는 비정형 데이터를 저장할 수 있는 데이터베이스입니다.
기존의 전통적인 데이터베이스(Data Base)는 관계형 데이터베이스로 체계적인 테이블 형태의 정형화된 데이터를 저장하는 구조를 갖췄다면 벡터 데이터베이스는 보다 고차원적인 벡터를 저장하고 관리할 수 있는 데이터베이스입니다.
벡터 임베딩(Vector Embedding)은 텍스트, 이미지, 영상, 음성과 같은 다양한 형태의 비정형 데이터를 컴퓨터가 이해하고 처리할 수 있도록 수치 형태로 변환하는 기술을 의미합니다. 벡터 임베딩은 인공지능(AI) 모델에 입력하여 모델이 스스로 벡터로 데이터를 변환 시킵니다.
벡터 임베딩 기술은 생성형 AI인 챗 GPT와 구글 이미지 검색에서 사용됩니다.
비정형 데이터를 처리해야 하는 딥러닝(Deep Learning) 기술이 발달하면서 벡터 데이터베이스와 벡터 임베딩 기술의 활용도가 증가하였고 더 중요해졌습니다.
벡터 데이터베이스 뜻과 개념 설명
벡터 데이터베이스 뜻(Vector Data Base)은 텍스트나 이미지와 같은 비정형 데이터를 벡터로 변환하여 벡터 데이터를 저장하는데 사용되는 데이터베이스(DB, DataBase)를 의미합니다.
기존의 전통적인 데이터 베이스인 관계형 데이터베이스와 대비되는 제2의 데이터베이스 형태입니다.
관계형 데이터베이스에서는 테이블 형태의 구조화된 데이터에 적합합니다. 하지만 관계형 데이터베이스는 대용량의 텍스트 데이터나 이미지 데이터를 포함한 다양한 미디어 콘텐츠 형태의 비정형 데이터를 저장하고 관리하는데 적합하지 않은 구조였습니다. 또한 관계형 데이터베이스에서는 쿼리와 완전하게 일치하는 데이터의 행을 검색하는 구조이기 때문에 벡터 간 유사성을 계산하고 검색할 수 없는 구조입니다.
이러한 한계점을 해결할 수 있는 데이터베이스가 바로 벡터 데이터베이스입니다.
벡터 데이터베이스에서는 대규모 비정형 데이터를 인공지능 모델을 통해 벡터 데이터로 전환하여 저장하고 벡터 간 유사성을 계산하고 검색할 수 있도록 유사성 검색이 가능한 구조를 제공합니다.
벡터 데이터베이스는 “유사성 검색 데이터베이스”라고도 부릅니다.
벡터 데이터베이스에서는 방대한 양의 다차원 데이터를 벡터 데이터 형태로 저장하고 검색할 수 있도록 설계 됩니다. 이는 인공지능(AI)에 최적화된 데이터베이스입니다.
벡터 데이터베이스는 유사도 메트릭을 적용하여 가장 유사한 벡터를 찾게 되며 색인, 쿼리, 후처리 과정을 거치게 됩니다.
[벡터 데이터베이스 동작 과정]
구분 | 내용 |
1 | 색인(Indexing) |
2 | 쿼리(Query): Cosine Similarity, Euclidean Distance, Dot Product |
3 | 후처리(Post Processing): 사전 필터링, 사후 필터링 |
비정형 데이터를 검색하기 위해서는 벡터 데이터를 활용합니다.
비정형 데이터는 텍스트 데이터나 이미지 데이터, 음성 데이터와 같은 정형화 되어 있지 않은 데이터를 의미합니다. 이러한 비정형 데이터는 딥러닝(Deep Learning)의 입력 값으로 전달하기 위해서 벡터 임베딩(Embedding) 과정이 필요한데 이 때 고차원 벡터로 변환 시켜 벡터 데이터베이스를 활용하면 대용량의 데이터를 더 빠르게 효과적으로 처리할 수 있게 됩니다.
벡터 임베딩(Vector Embedding)은 벡터를 활용하여 데이터를 찾기 위해서 데이터를 벡터로 변환 시키는 과정을 의미합니다. 벡터 임베딩의 경우 학습을 통해서 특수한 규칙을 가지고 있는 인공지능(AI) 모델을 통해서 규칙이 만들어집니다. 해당 데이터 모델을 더 잘 훈련 시킬수록 검색 능력과 품질이 높아집니다.
벡터 데이터베이스는 추천을 해주는 서비스 형태나 이미지 색인, 자연어 처리(NLP)와 같은 영역에서 임베딩으로 변환시킨 데이터들을 비교 검색하는데 활용됩니다.
예를 들어, 추천을 해주기 위해서 사용자의 관심 벡터 데이터와 가장 비슷하고 적합한 상품을 검색하기 위해서 데이터베이스에서 다른 상품들의 임베딩과 관심 벡터의 임베딩을 비교함으로써 유사도를 계산하고 가장 유사도가 높은 상품을 추천할 수 있어야 하는데 벡터 데이터베이스에서는 해싱과 트리 기반의 알고리즘(Algorithm)을 활용하여 입력된 벡터와 가장 비슷한 벡터를 빠르게 찾을 수 있습니다.
벡터 데이터베이스는 거대언어모델(LLM)을 활용하는 검색 증강 생성 어플리케이션에 활용됩니다. 검색 증강 생성 어플리케이션에서는 사용자의 질문 프롬프트를 처리하기 위해서 질문과 관련된 정보를 검색한 후 가장 관련성이 높은 정보를 검색할 때 벡터 데이터베이스를 활용합니다.
오라클(Oracle)과 My SQL과 같은 전통적인 관계형 데이터베이스는 현재 많은 기업들이 사용하고 있습니다. 이는 구조화된 정형 데이터에 효과적인 데이터베이스이므로 앞으로도 계속 사용될 데이터베이스입니다. 하지만 비정형 데이터도 중요해지면서 벡터 데이터베이스도 함께 주요해질 것으로 예상됩니다.
벡터 데이터베이스의 대표적인 예로는 파인콘(Pinecone), 위비에이트(Weviate), 크로마(Chroma), 큐드런트(Qdrant), 밀버스(Milvus)를 들 수 있습니다.
생성형 AI가 발달하면서 벡터 데이터를 효과적으로 다룰 수 있는 데이터베이스가 필요하게 되었고 딥러닝 모델 학습에 사용되던 벡터 데이터베이스가 대안으로 떠오르면서 각광 받고 있습니다.
벡터 데이터베이스는 벡터 데이터를 처리하고 벡터 데이터 검색과 유사성 분석, 대용량 벡터 데이터의 처리, 벡터 데이터 업데이트에 특화되어 있습니다.
거대언어모델(LLM) 안의 토큰은 벡터화 되어 벡터 데이터베이스에 저장됩니다.