진짜 벡터 데이터베이스란 무엇인가?
이 글은 원래 The New Stack에 게시되었으며 허가를 받아 여기에 재게시되었습니다.
ChatGPT의 등장은 인공지능(AI)의 새로운 시대가 시작되었음을 알립니다. AI는 모든 것을 혁신하고 있으며, 벡터 데이터베이스는 새로운 시대의 필수 인프라가 되고 있습니다. AI 기반 애플리케이션에 대한 수요가 증가하고 있다는 점을 고려하면 이러한 추세는 놀라운 일이 아닙니다.
이전 게시물에서는 비정형 데이터와 그 처리, 분석, 쿼리에 대해 소개했습니다. 이 게시물에서는 벡터 데이터베이스, 기존 벡터 검색 방법과의 차이점, 그리고 프로젝트에 최적의 벡터 데이터베이스를 선택하는 방법을 자세히 살펴보겠습니다.
벡터 데이터베이스란 무엇인가?
벡터 데이터베이스란 무엇인가라는 질문에 답하려면, 전통적인 관계형 데이터베이스의 역할을 알아야 합니다. 관계형 데이터베이스는 사전 정의된 형식의 데이터를 테이블에 저장하고 처리하며, 일반적으로 정확한 검색을 수행합니다.
반면, 벡터 데이터베이스는 임베딩이라고 불리는 고차원 값을 통해 이미지, 오디오, 동영상, 텍스트와 같은 비정형 데이터를 저장하고 검색합니다. 벡터 데이터베이스는 Approximate Nearest Neighbor (ANN) 알고리즘을 사용한 유사도 검색에 자주 사용됩니다. 이 알고리즘은 공간적 관계를 기반으로 데이터를 구성하며, 대규모 포인트 데이터셋에서 주어진 쿼리 포인트의 가장 가까운 이웃을 찾을 수 있게 해줍니다.
ChatGPT의 부상과 함께, 벡터 데이터베이스는 대규모 언어 모델(LLM)이 직면한 문제를 해결하는 데 더욱 필수적인 요소가 되었습니다.
벡터 데이터베이스 vs. 벡터 검색 라이브러리
전문화된 벡터 데이터베이스만이 유사도 검색을 위한 유일한 스택은 아닙니다. 벡터 데이터베이스가 등장하기 전에는 FAISS, ScaNN, HNSW와 같은 벡터 검색 라이브러리가 많이 있었습니다. 두 스택 모두 벡터를 쿼리할 수 있지만, 차이점은 무엇일까요?
벡터 검색 라이브러리는 기능이 제한적입니다. 소량의 데이터만 처리할 수 있으며, 더 큰 데이터셋과 더 높은 사용자 수요에 맞춰 확장하는 데 어려움을 겪습니다. 인덱스 데이터에 대한 어떤 수정도 허용하지 않으며, 데이터 가져오기 중에는 쿼리할 수 없습니다.
반면, Milvus와 Zilliz Cloud와 같은 벡터 데이터베이스는 비정형 데이터 저장 및 검색을 위한 더 최적의 솔루션입니다. 이들은 수백만 개 또는 수십억 개의 벡터를 저장하고 쿼리하면서 동시에 실시간 응답을 제공할 수 있으며, 사용자의 증가하는 비즈니스 요구를 충족할 수 있도록 높은 확장성을 갖추고 있습니다.
전문화된 벡터 데이터베이스는 CRUD(create, read, update, and delete) 지원, 재해 복구, 역할 기반 액세스 제어, 멀티 테넌시 등 많은 사용자 친화적 기능을 제공합니다. Zilliz와 같은 많은 벡터 데이터베이스 제공업체는 사용자가 유지보수 작업의 부담을 없애고 비즈니스에 집중할 수 있도록 완전 관리형 클라우드 서비스도 제공합니다.
또한 벡터 데이터베이스는 벡터 검색 라이브러리와는 다른 추상화 계층에서 작동하며, 통합을 위한 구성 요소가 아니라 완전한 서비스로 기능합니다. 이러한 추상화의 중요성을 설명하기 위해, Milvus와 같은 벡터 데이터베이스에 비정형 데이터 요소를 추가하는 과정을 살펴보겠습니다.
from pymilvus import Collectioncollection = Collection('book')mr = collection.insert(data)
보시다시피, Milvus에 비정형 데이터를 삽입하는 것은 단 세 줄의 코드만으로 매우 쉽습니다. 하지만 FAISS나 ScaNN과 같은 라이브러리를 사용할 때는 복잡합니다. 이러한 라이브러리는 체크포인트에서 전체 인덱스를 수동으로 다시 생성해야 합니다.
벡터 데이터베이스 vs. 벡터 검색 플러그인
벡터 데이터베이스가 주목받으면서 Clickhouse, Elasticsearch, MongoDB, Databricks와 같은 많은 기존 데이터베이스 및 검색 시스템이 내장 벡터 검색 플러그인을 통합하기 위해 서두르고 있습니다. 예를 들어 Elasticsearch 8.0은 RESTful API 엔드포인트를 통해 접근할 수 있는 벡터 삽입 및 ANN 검색과 같은 기능을 업데이트했습니다.
그러나 벡터 검색 플러그인이 임베딩 관리와 벡터 검색에 대한 포괄적인 접근 방식을 제공하지 않는다는 점에 유의하는 것이 중요합니다. 그것들은 기존 시스템에 추가되는 애드온일 뿐이며, 이로 인해 지연 시간, 용량, 처리량 측면에서 성능이 제한될 수 있습니다. 기존 데이터베이스 위에 비정형 데이터 애플리케이션을 구축하려는 것은 가솔린 엔진 프레임 자동차 안에 리튬 배터리와 전기 모터를 끼워 넣는 것과 같으며, 그다지 좋은 생각이 아닙니다.
벡터 데이터베이스는 LLM 보강에 필수적입니다
LLM과 AI 애플리케이션이 번창하면서, 벡터 데이터베이스는 AI 관련 기술 스택의 핵심 인프라가 되고 있습니다.
LLM은 콘텐츠 생성 면에서 인상적이지만, 많은 한계가 있습니다. 예를 들어 최신 지식과 도메인별 지식이 부족해 환각에 취약합니다. 더 나쁜 것은, LLM의 토큰 제한으로 인해 쿼리를 만들 때 프롬프트에 방대한 문맥 정보를 추가할 수 없다는 점입니다.
벡터 데이터베이스는 LLM의 장기 기억 역할을 하며 LLM의 지식 베이스를 확장할 수 있습니다. 이는 비공개 데이터나 도메인별 정보를 LLM 외부에 임베딩으로 저장합니다. 사용자가 질문을 하면, 벡터 데이터베이스는 해당 질문과 가장 관련성이 높은 topk 결과를 검색합니다. 그런 다음 결과를 원래 쿼리와 결합하여 LLM이 더 정확한 답변을 생성할 수 있도록 포괄적인 문맥을 제공하는 프롬프트를 만듭니다. 이 솔루션은 CVP 스택(ChatGPT/LLM + 벡터 데이터베이스 + prompt-as-code)이라고도 알려져 있습니다.
LLM은 쿼리의 모든 토큰에 대해 비용을 청구합니다. 따라서 사용자가 유사하거나 반복적인 질문을 하면 여러 번 비용이 청구되어 높은 비용이 발생할 수 있습니다. 피크 시간대에는 응답이 매우 느릴 수 있습니다. 시간과 노력을 절약하기 위해 개발자는 벡터 데이터베이스를 GPTCache와 통합할 수 있습니다. GPTCache는 LLM 응답을 저장하는 오픈소스 의미론적 캐시입니다. 그렇게 하면 사용자가 LLM이 이전에 답변한 질문을 할 때, 벡터 데이터베이스가 GPTCache에서 답변을 검색하고 LLM을 호출하지 않고 사용자에게 빠르게 반환합니다.
OSS Chat 아키텍처
위 차트는 Zilliz Cloud와 GPTCache를 활용하는 AI Chatbot인 OSS Chat의 아키텍처를 보여줍니다.
LLM 보강 외에도, 벡터 데이터베이스는 추천 시스템, 이미지/오디오/비디오/텍스트 유사도 검색, 이상 탐지, 질의응답 시스템, 분자 유사도 검색을 포함한 많은 사용 사례에 유용합니다.
프로젝트에 가장 적합한 벡터 데이터베이스를 선택하는 방법은?
프로젝트에 적합한 벡터 데이터베이스를 선택하는 데 어려움을 겪고 계신가요? 수많은 선택지가 있어 부담스러울 수 있습니다. 다행히 정보에 입각한 결정을 내리는 데 도움이 되는 솔루션이 있습니다.
VectorDBBench는 벡터 데이터베이스를 위한 오픈소스 벤치마킹 도구입니다. QPS, 지연 시간, 용량 및 기타 지표와 관련하여 다양한 벡터 데이터베이스 시스템을 평가합니다. Python으로 작성되었으며 MIT 오픈소스 라이선스에 따라 라이선스가 부여되어 누구나 자유롭게 사용, 수정 및 배포할 수 있습니다.
VectorDBBench를 사용하면 마케팅 주장보다 실제 성능을 기반으로 최고의 벡터 데이터베이스를 선택할 수 있습니다. 시작하려면 이 튜토리얼을 참조하세요.
요약
이 글은 벡터 데이터베이스에 대한 개요를 제공하며, 전통적인 관계형 데이터베이스 위에서 동작하는 벡터 검색 라이브러리 및 벡터 검색 플러그인과 어떻게 다른지 설명합니다. 가장 중요한 점은, 사용자가 정보에 기반한 선택을 할 수 있도록 돕는 오픈 소스 벤치마킹 도구인 VectorDBBench를 소개한다는 것입니다.
다음 글에서는 세계 최초이자 가장 널리 사용되는 오픈 소스 벡터 데이터베이스인 Milvus를 소개하고, Milvus를 시작하는 방법을 단계별로 안내하겠습니다.
계속 읽기

Introducing Business Critical Plan: Enterprise-Grade Security and Compliance for Mission-Critical AI Applications
Discover Zilliz Cloud’s Business Critical Plan—offering advanced security, compliance, and uptime for mission-critical AI and vector database workloads.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.



