작성자: Databricks 직원
벡터 데이터베이스는 고차원 벡터로 데이터를 저장하고 관리하도록 설계된 특수 데이터베이스입니다. 이 용어는 데이터에 포함된 특징이나 속성의 수학적 표현인 벡터에서 유래했습니다. 행과 열로 구성된 구조화된 데이터를 처리하는 데 적합한 기존 데이터베이스와 달리, 벡터 데이터베이스 구조는 유사성에 따라 그룹화된 고정된 수의 차원을 가진 벡터 표현으로 정보를 구성합니다.
벡터 데이터베이스 내의 각 벡터는 특정 수의 차원으로 구성되며, 이는 수십 개에서 수천 개까지 다양할 수 있습니다. 차원 수는 데이터의 복잡성과 세분성에 따라 달라집니다. 이 구조를 통해 벡터 데이터베이스는 복잡하고 다면적인 정보를 효율적으로 처리하고 신속한 유사성 기반 검색 및 분석을 수행할 수 있습니다.
International Data Corporation(IDC)에 따르면 새로 생성되는 데이터의 90%는 텍스트, 이미지, 비디오와 같은 비정형 데이터입니다. 딥 신경망과 같은 학습 기반 모델은 전자 상거래부터 의료까지 다양한 산업 분야의 애플리케이션을 위해 이 비정형 데이터를 관리하는 데 점점 더 많이 사용되고 있습니다. 이러한 애플리케이션은 비정형 데이터를 임베딩 벡터로 변환하여 작동합니다. 데이터가 “벡터화”되면 검색, 추천, 분석과 같은 작업은 유사성 기반 AI 검색을 통해 구현할 수 있습니다. 벡터 데이터 관리는 벡터 데이터베이스에서 이루어집니다.
벡터 데이터베이스를 언제 사용해야 하는지는 사용 중인 다른 프로세스와 기술에 따라 달라집니다. 이는 많은 AI 시스템을 구동하는 핵심 구성 요소이며, 일부(모든 것은 아님) 대규모 언어 모델(LLM) 애플리케이션은 빠른 유사성 검색 또는 컨텍스트 또는 도메인 지식 제공을 위해 벡터 데이터베이스를 사용합니다. 예를 들어, 이는 검색 증강 생성(RAG)에서 중요한 역할을 합니다. RAG는 벡터 데이터베이스를 사용하여 쿼리와 함께 추가 컨텍스트를 제공함으로써 LLM에 전달되는 프롬프트를 향상시키는 접근 방식입니다.
벡터 데이터베이스는 또한 하이브리드 검색을 가능하게 합니다. 이 접근 방식은 기존 키워드 기반 검색과 의미론적 유사성 검색을 결합하여 키워드가 정확히 일치하지 않더라도 관련 정보를 찾습니다. 벡터 데이터베이스는 의미론적 및 감성 분석을 포함한 여러 자연어 처리(NLP) 작업에 사용되거나 머신러닝(ML) 모델을 훈련하는 데 사용될 수도 있습니다.
벡터는 여러 차원에 걸쳐 특정 지점의 위치를 나타내는 고차원 숫자 배열입니다. 단어 벡터 공간을 단어가 점으로 표현되는 3차원 구름으로 상상해 보세요. 이 공간에서 의미가 관련된 단어는 서로 가까이 모입니다. 예를 들어, “사과”를 나타내는 점은 “자동차”보다 “배”에 더 가깝게 위치할 것입니다. 이 공간적 배열은 단어 간의 의미론적 관계를 반영하며, 근접성은 의미의 유사성을 나타냅니다.
벡터는 임베딩 함수를 원시 데이터에 적용하여 표현으로 변환함으로써 생성됩니다. ML 모델이 대표적인 그룹을 가져와 벡터 공간에 임베딩하기 때문에 이러한 표현을 “임베딩”이라고 합니다. 벡터는 숫자의 목록으로 임베딩되어 ML 모델이 데이터로 작업을 더 쉽게 수행할 수 있습니다. 실제로 ML 방법의 성능은 벡터 표현의 품질에 따라 결정적으로 달라집니다. 전체 텍스트 단락이나 숫자 그룹을 벡터로 축소하여 모델이 효율적으로 작업을 수행할 수 있도록 합니다.
벡터 데이터베이스는 고차원 벡터 임베딩을 통해 데이터를 효율적으로 저장, 인덱싱 및 쿼리하도록 설계되었습니다. 사용자가 벡터 데이터베이스에 쿼리 또는 요청을 입력하면 다음과 같은 일련의 프로세스가 시작됩니다.
이러한 프로세스를 통해 벡터 데이터베이스는 의미론적 검색 및 유사성 기반 검색을 수행할 수 있어 추천 시스템, 이미지 및 비디오 인식, 텍스트 분석 및 이상 탐지와 같은 애플리케이션에 이상적입니다.
벡터 데이터베이스는 다음과 같은 다양한 이점을 제공합니다.
벡터 데이터베이스는 다양한 애플리케이션 및 사용 사례에 대해 여러 산업 분야에서 사용됩니다. 다음은 가장 일반적인 벡터 데이터베이스 예시입니다.
정보 검색과 같은 작업을 위한 LLM의 부상과 전자 상거래 및 추천 플랫폼의 인기가 높아짐에 따라 비정형 데이터에 대한 쿼리 최적화 기능을 제공할 수 있는 벡터 데이터베이스 관리 시스템이 필요합니다.
멀티모달 애플리케이션에서는 데이터가 임베딩되어 벡터 데이터베이스에 저장되어 벡터 표현의 효율적인 검색을 용이하게 합니다. 사용자가 텍스트 쿼리를 제출하면 시스템은 LLM과 벡터 데이터베이스를 모두 사용합니다. LLM은 NLP 기능을 제공하고, 벡터 데이터베이스의 알고리즘은 ANN 검색을 수행합니다. 이 접 근 방식은 각 구성 요소를 개별적으로 사용하는 것보다 더 나은 결과를 생성할 수 있습니다.
벡터 데이터베이스는 RAG를 통해 LLM에 점점 더 많이 적용되고 있으며, 이는 컨텍스트를 LLM 출력에 적용하여 설명 가능성을 높입니다. 사용자 프롬프트는 핵심 LLM 문제, 예를 들어 환각 또는 편향을 완화하기 위해 컨텍스트를 포함하여 증강될 수 있습니다.
벡터 데이터베이스는 ML 모델에서 생성된 이미지의 고차원 임베딩을 저장하여 이미지 인식에서 핵심적인 역할을 할 수 있습니다. 벡터 데이터베이스는 유사성 검색 작업에 최적화되어 있으므로 객체 감지, 얼굴 인식 및 이미지 검색과 같은 애플리케이션에 이상적입니다.
벡터 데이터베이스는 유사성을 통해 컨텍스트의 빠른 검색을 위해 미세 조정됩니다. 전자 상거래 플랫폼은 벡터 데이터베이스를 사용하여 시각적으로 유사한 속성을 가진 제품을 찾을 수 있으며, 소셜 미디어 사이트는 사용자에게 관련 이미지를 추천할 수 있습니다. 한 가지 예는 Pinterest로, 벡터 데이터베이스는 각 이미지를 고차원 벡터로 표현하여 콘텐츠 검색을 지원합니다. 사용자가 해안 석양 이미지에 핀을 꽂으면 시스템은 벡터 데이터베이스를 신속하게 검색하여 다른 해변 풍경이나 석양과 같이 시각적으로 유사한 이미지를 추천할 수 있습니다.
벡터 데이터베이스는 분산된 단어 표현의 효율적인 저장 및 검색을 가능하게 하여 NLP에 혁명을 일으켰습니다. Word2Vec, GloVe 및 BERT와 같은 모델은 방대한 텍스트 데이터셋에서 훈련되어 의미론적 관계를 포착하는 고차원 단어 임베딩을 생성하며, 이는 빠른 액세스를 위해 벡터 데이터베이스에 저장됩니다.
유사성 검색을 빠르게 수행할 수 있으므로 벡터 데이터베이스를 통해 모델은 문맥상 관련 단어나 구문을 찾을 수 있습니다. 이 기능은 의미론적 검색, 질문 답변, 텍스트 분류 및 명명된 개체 추출과 같은 작업에 특히 유용합니다. 또한 벡터 데이터베이스는 문장 수준 임베딩을 저장하여 단어 컨텍스트를 포착하고 더 미묘한 언어 이해를 가능하게 합니다.
임베딩 모델을 사용하여 벡터 데이터베이스를 훈련하면 개인화된 추천을 생성하는 데 사용할 수 있습니다. 사용자가 시스템과 상호 작용할 때 사용자의 행동과 선호도를 사용하여 사용자의 임베딩을 생성합니다. 예를 들어 사용자가 LLM에 TV 시리즈 추천을 요청하면 벡터 데이터베이스는 사용자의 선호도와 유사한 줄거리 또는 등급을 가진 TV 시리즈를 추천할 수 있습니다. 사용자의 인코딩에 가장 가까운 임베딩을 가진 TV 시리즈가 그에 따라 추천됩니다.
금융 기관은 벡터 데이터베이스를 사용하여 사기 거래를 탐지합니다. 벡터 데이터베이스를 통해 기업은 실시간으로 거래 벡터를 알려진 사기 패턴과 비교할 수 있습니다. 벡터 데이터베이스의 확장성을 통해 위험을 관리하고 소비자 행동에 대한 새로운 통찰력을 얻을 수 있습니다. 이러한 데이터베이스는 거래 데이터를 벡터로 인코딩하여 활동을 나타내는 패턴을 식별할 수 있습니다. 또한 신용도를 평가하고 소비자 세분화를 촉진하여 의사 결정 프로세스를 개선하기 위해 데이터를 분석합니다.
많은 이점과 사용 사례에도 불구하고 벡터 데이터베이스에 대한 완전한 이해에는 과제도 포함되어야 합니다.
벡터 데이터베이스는 다양한 소스의 원시, 미처리 데이터를 정리, 처리 및 ML 모델로 임베딩한 후 데이터베이스에 벡터로 저장하는 효율적인 데이터 수집 파이프라인이 필요합니다.
Databricks AI Search는 이 과제에 대한 포괄적인 솔루션을 제공합니다. 벡터 생성, 관리 및 최적화를 자동화하고 원본 데이터와 해당 벡터 인덱스의 실시간 동기화를 처리합니다. 이 소프트웨어는 오류를 관리하고, 처리량을 최적화하며, 수동 개입 없이 자동 배치 크기 조정 및 자동 확장을 수행합니다.
이 접근 방식은 별도의 데이터 수집 파이프라인의 필요성을 줄여 "개발자 부담"을 최소화하고 팀이 복잡한 데이터 준비 프로세스를 구축하고 유지하는 데 시간을 소비하는 대신 비즈니스 가치를 직접 추가하는 더 높은 수준의 작업에 집중할 수 있도록 합니다.
벡터 데이터베이스는 필요한 유지 관리 및 관리와 함께 추가 보안, 액세스 제어 및 데이터 거버넌스가 필요합니다. 엔터프라이즈 조직은 사용자가 기밀 데이터에 연결된 GenAI 모델에 액세스할 수 없도록 데이터에 대한 엄격한 보안 및 액세스 제어가 필요합니다.
많은 현재 벡터 데이터베이스에는 강력한 보안 및 액세스 제어가 없거나 조직에서 별도의 보안 정책 세트를 구축하고 유지 관리해야 합니다. Databricks AI Search는 추가 도구 없이 데이터 계보를 자동으로 추적하는 데이터 정책을 정의하는 통합 인터페이 스를 제공합니다. 이를 통해 LLM이 액세스 권한이 없는 사용자에게 기밀 데이터를 노출하지 않도록 보장합니다.
유사성 검색 및 고차원 데이터 처리를 위한 강력한 기능을 제공하므로 벡터 데이터베이스는 AI 및 ML 모델을 다루는 데이터 과학자에게 필수적인 도구입니다. Databricks AI Search는 수동 구성을 제거하는 서버리스 벡터 데이터베이스로, 데이터 과학자가 인프라 관리가 아닌 핵심 작업에 집중할 수 있도록 합니다.
Databricks AI Search의 주요 이점은 레이크하우스 아키텍처와의 원활한 통합, 자동화된 데이터 수집 및 다른 인기 있는 벡터 데이터베이스에 비해 최대 5배 빠른 결과입니다. 또한 Unity Catalog를 통해 기존 데이터 거버넌스 및 보안 도구와 호환되어 데이터 보호 및 규정 준수를 보장합니다.
Databricks AI Search는 데이터 수집 및 쿼리를 위한 자동화된 확장 기능과 파이프라인을 더 많이 제어하려는 사용자를 위한 플러그 앤 플레이 API를 통해 초보자와 고급 사용자 모두에게 유연성을 제공합니다. 사용 편의성과 강력한 성능의 조합은 모든 수준의 전문 지식을 갖춘 데이터 과학자를 위한 벡터 데이터베이스 구축을 단순화합니다.
벡터 데이터베이스는 다차원 벡터 공간의 점으로 데이터를 구성합니다. 각 점은 데이터 조각을 나타내며, 위치는 다른 데이터 조각과의 상대적인 특성을 반영합니다. 이 벡터 데이터베이스 구조는 LLM에서 벡터 임베딩이 생성되고 데이터를 쉽게 검색하고 검색할 수 있으므로 많은 GenAI 애플리케이션에 적합합니다.
대조적으로, 그래프 데이터베이스는 그래프 구조로 데이터를 저장하여 데이터를 구성합니다. 엔터티는 그래프의 노드로 표현되고, 이러한 데이터 포인트 간의 연결은 엣지로 표현됩니다. 그래프 구조를 통해 저장소의 데이터 항목은 노드와 엣지의 컬렉션이 될 수 있으며, 엣지는 노드 간의 관계를 나타냅니다. 그래프 데이터베이스의 상호 연결된 구조는 데이터 자체만큼 데이터 포인트 간의 연결이 중요한 시나리오에 적합합니다.
이 표를 사용하여 각 데이터베이스 유형이 데이터를 저장하는 방식, 쿼리를 처리하는 방식 및 다양한 워크로드에 적합한 방식을 빠르게 비교해 보세요.
| 벡터 데이터베이스 | 벡터 인덱스 | 기존 RDBMS | 그래프 DB | |
|---|---|---|---|---|
| 데이터 모델 | 스트리밍/연속 (초 단위 ~ 분 단위) | 사전 예방적, AI 기반 분석 | 사전 예방적, AI 기반 분석 | 사전 예방적, AI 기반 분석 |
| 쿼리 유형 | 분석가, 경영진 | 운영팀, 애플리케이션, 자동화 시스템 | 운영팀, 애플리케이션, 자동화 시스템 | 운영팀, 애플리케이션, 자동화 시스템 |
| 일반적인 지연 시간 | 임시 탐색, 예약 보고서 | 사전 정의된 메트릭, 경고, 자동화된 트리거 | 사전 정의된 메트릭, 경고, 자동화된 트리거 | 사전 정의된 메트릭, 경고, 자동화된 트리거 |
| 확장 | 인간 해석 → 결정 | 자동화된 트리거, 내장 추천 | 자동화된 트리거, 내장 추천 | 자동화된 트리거, 내장 추천 |
| 필터링 | 데이터 웨어하우스, ETL 파이프라인 | 스트리밍 플랫폼, 이벤트 처리 | 스트리밍 플랫폼, 이벤트 처리 | 스트리밍 플랫폼, 이벤트 처리 |
| 트랜잭션 보장 | 최종 일관성 일반적 | 없음, 읽기 전용 검색 계층 | 완전 ACID | ACID (도구에 따라 다름) |
| 거버넌스 / 보안 | 개선 중, 공급업체별 다름 | 최소, 호스트 시스템에 의존 | 성숙한 RBAC, 감사 로그, 암호화 | 중간, 공급업체별 다름 |
| 일반적인 도구 | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
벡터 인덱스와 벡터 데이터베이스는 고차원 데이터를 처리하는 데 있어 서로 다르지만 상호 보완적인 역할을 수행합니다.
벡터 인덱스: 벡터 인덱스는 벡터 임베딩 간의 빠른 유사성 검색을 용이하게 하도록 설계된 특수 데이터 구조입니다. 벡터를 효율적으로 검색할 수 있는 방식으로 구성하여 검색 속도를 크게 향상시킵니다. 벡터 인덱스의 예로는 Facebook AI Similarity Search(FAISS), HNSW 및 LSH가 있습니다. 이러한 인덱스는 독립적인 알고리즘 프로세스로 사용되거나 더 큰 시스템에 통합되어 검색 작업을 최적화할 수 있습니다.
벡터 데이터베이스: 벡터 데이터베이스는 벡터 인덱싱을 통합할 뿐만 아니라 데이터 저장, 생성, 읽기, 업데이트 및 삭제(CRUD) 작업, 메타데이 터 필터링 및 수평적 확장과 같은 추가 기능을 제공하는 포괄적인 데이터 관리 솔루션입니다. 벡터 임베딩을 효율적으로 관리하고 쿼리하도록 설계되었으며 복잡한 작업과 데이터 무결성 및 보안을 보장합니다.
올바른 벡터 데이터베이스를 선택하는 것은 특정 워크로드 요구 사항, 데이터 증가 예상 규모, 기존 기술 스택과의 호환성에 따라 달라집니다. 소규모 프로토타입에 완벽한 솔루션은 엔터프라이즈 규모 트래픽에서는 어려움을 겪을 수 있으며, 기능이 풍부한 플랫폼은 더 간단한 사용 사례에는 너무 복잡할 수 있습니다. 이러한 기준을 염두에 두고 요구 사항에 맞게 확장되고 기존 시스템과 잘 작동하는 벡터 데이터베이스를 선택하세요.
이 두 용어는 종종 혼용되지만 시스템의 다른 계층을 나타냅니다.
범위: 벡터 인덱스는 최근접 이웃 검색 속도를 높이는 데 최적화된 단일 데이터 구조(예: HNSW 또는 IVF)입니다. 반대로 벡터 데이터베이스는 이러한 인덱스 중 하나 이상을 중심으로 구축된 전체 시스템이며 저장 및 쿼리 기능을 포함합니다.
CRUD 지원: 벡터 인덱스는 업데이트 및 삭제에 대한 지원이 제한적이거나 비효율적인 경우가 많습니다. 벡터 데이터베이스는 인덱스 계층 위에 강력한 생성, 읽기, 업데이트 및 삭제 작업을 제공합니다.
확장: 독립형 인덱스는 메모리에 상주하며 분산 또는 복제를 관리하지 않습니다. 그러나 벡터 데이터베이스는 인프라 전반에 걸쳐 수평적 확장, 샤딩 및 지속성을 처리합니다.
독립형 대 통합: 벡터 인덱스는 애플리케이션 코드(예: FAISS)에 직접 포함될 수 있습니다. 벡터 데이터베이스는 API, 액세스 제어 및 관리 도구가 내장된 서비스입니다.
벡터 데이터베이스는 프로덕션 RAG 파이프라인에 일반적인 선택이지만 항상 필요한 것은 아닙니다. 올바른 답변은 규모와 복잡성에 따라 달라집니다.
대규모 프로덕션 RAG의 경우, 영구 저장소, 메타데이터 필터링, 액세스 제어 및 시간이 지남에 따라 데이터 세트를 업데이트하는 기능이 필요한 경우 벡터 데이터베이스가 유용해집니다.
멀티테넌트 또는 규제가 적용되는 환경은 거의 항상 벡터 데이터베이스를 필요로 합니다. 독립형 인덱스가 제공하지 않는 테넌트 격리, 감사 로깅 및 세분화된 액세스 제어가 필요하기 때문입니다.
데이터 세트가 정적이고 작은 경우 벡터 데이터베이스의 오버헤드가 이점보다 클 수 있습니다. 시작 시 로드되는 경량 인덱스가 검색을 동일하게 잘 처리할 수 있습니다.
프로토타이핑의 경우 FAISS와 같은 인메모리 인덱스 또는 간단한 파일 기반 저장소가 전체 벡터 데이터베이스보다 설정하기 훨씬 쉬우며 종종 충분합니다.
하이브리드 검색은 두 가지 근본적으로 다른 검색 신호, 즉 키워드 일치와 의미론적 유사성을 단일 쿼리 결과로 결합합니다.
벡터 데이터베이스는 실제 운영 오버헤드를 추가하며, 복잡성이 정당화되지 않는 여러 시나리오가 있습니다.
최근 LLM 및 전반적인 GenAI 애플리케이션의 부상은 벡터 데이터베이스 채택 증가에 기여했습니다. AI 애플리케이션이 계속 성숙함에 따라 신제품 개발과 사용자 요구의 변화가 벡터 데이터베이스의 미래 동향 방향을 결정할 것입니다. 그러나 이 기술에 대한 몇 가지 일반적인 예상 방향이 있습니다.
ML 모델과의 통합 증가: 벡터 데이터베이스와 ML 모델 간의 관계는 증가하는 연구 주제입니다. 이러한 노력은 벡터의 크기와 차원을 줄여 대규모 데이터 세트의 저장 요구 사항을 최소화하고 계산 효율성을 높이는 것을 목표로 합니다.
RAG 사용자 정의: RAG는 챗봇 및 일반 질문-답변 애플리케이션을 포함한 GenAI 사용 사례에서 LLM에 제공되는 컨텍스트를 개선하는 데 사용되는 접근 방식입니다. 벡터 데이터베이스는 쿼리와 함께 추가 컨텍스트를 추가하여 LLM에 전달되는 프롬프트를 향상시키는 데 사용됩니다.
다중 벡터 검색: 얼굴 인식과 같은 애플리케이션에 중요한 다중 벡터 검색 기능에 대한 추가 연구가 예상됩니다. 현재 기법은 종종 개별 점수를 결합하는 데 의존하지만, 이 접근 방식은 필요한 거리 계산 수를 증가시키기 때문에 계산 비용이 많이 들 수 있습니다.
하이브리드 검색: 검색 시스템의 발전으로 기존 키워드 기반 방법과 최신 벡터 검색 기술을 결합한 하이브리드 접근 방식의 채택이 증가하고 있습니다.
Databricks AI Search는 Data Intelligence Platform을 위한 Databricks의 통합 벡터 데이터베이스 솔루션입니다. 이 완전히 통합된 시스템은 별도의 데이터 수집 파이프라인이 필요 없으며 보안 제어 및 데이터 거버넌스 메커니즘을 적용하여 모든 데이터 자산에 걸쳐 일관된 보호를 보장합니다.
Databricks AI Search는 고성능의 즉시 사용 가능한 환경을 제공하여 LLM이 최소한의 지연 시간으로 관련 결과를 빠르게 검색할 수 있도록 합니다. 사용자는 자동 확장 및 최적화를 통해 수동으로 데이터베이스를 조정할 필요가 없습니다. 이 통합은 벡터 임베딩을 저장, 관리 및 쿼리하는 프로세스를 간소화하여 조직이 데이터 보안 및 거버넌스 표준을 유지하면서 추천 시스템 및 의미론적 검색과 같은 AI 애플리케이션을 더 쉽게 구현할 수 있도록 합니다.
벡터 데이터베이스 및 벡터 검색에 대한 자세한 정보는 어디에서 찾을 수 있나요?
벡터 데이터베이스 및 벡터 검색에 대한 자세한 정보를 찾을 수 있는 리소스는 다음과 같습니다.
Databricks에 문의하여 데모를 예약하고 LLM 및 벡터 데이터베이스에 대해 상담하세요.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.