벡터 데이터베이스란 무엇인가?

벡터 데이터베이스란 무엇인가요?

벡터 데이터베이스는 고차원 벡터 임베딩을 저장, 관리, 검색하여 의미 유사성 검색을 가능하게 하는 특수한 데이터베이스입니다.

머신 러닝 모델에 의해 생성된 이러한 임베딩은 텍스트, 이미지 또는 오디오와 같은 비정형 데이터 내의 의미 관계를 캡처하여 개념적으로 관련된 항목을 벡터 공간에서 서로 가깝게 배치함으로써 시스템이 관련성 기준으로 결과 순위를 매길 수 있도록 합니다. 벡터 데이터베이스는 빠른 검색을 위해 밀집 및 희소 임베딩을 모두 인덱싱 및 저장하며, 일반적으로 대규모 언어 모델(LLM)이 신뢰할 수 있는 데이터를 기반으로 응답을 쿼리하고 환각의 위험을 완화할 수 있는 외부 지식 기반 역할을 합니다.


벡터 임베딩

벡터 임베딩이란 무엇이며 어떻게 생성되나요?

벡터 임베딩은 단어, 구문, 전체 문서와 같은 데이터를 나타내는 부동소수점 값의 숫자 배열입니다. 대규모 언어 모델과 같은 머신 러닝 모델에 의해 생성되며, 디지털 미디어를 고차원 공간 내의 점으로 변환합니다. 이 프로세스는 원본 데이터의 근본적인 의미론적 의미와 관계를 포착합니다. 예를 들어, '공원에서 노는 골든 리트리버' 이미지는 '밖에 있는 행복한 개'라는 텍스트의 임베딩과 수치적으로 가까운 임베딩으로 변환될 수 있습니다. 한 제공업체의 모델에서 생성된 임베딩은 다른 제공업체의 모델이 이해할 수 없다는 점에 유의하세요. 예를 들어, OpenAI 모델의 임베딩은 다른 제공업체의 임베딩과 호환되지 않습니다.

밀집 벡터(임베딩)란 무엇인가요?

밀집 벡터는 거의 모든 요소가 0이 아닌 값인 고차원 수치 임베딩입니다. 밀집 벡터의 중요한 특징은 특정 모델에서 생성된 모든 벡터가 동일한 차원 고정 개수를 가져야 한다는 점이며, 이는 유사성 측정을 위한 전제 조건입니다. 예를 들어 Azure OpenAI 모델의 임베딩에는 1,536개의 차원이 있습니다. 일반적으로 트랜스포머 모델에 의해 생성되며, 풍부하고 미묘한 의미론적 의미를 포착하여 의미적 유사성 검색에 적합합니다. 예를 들어, '고양이'라는 단어의 밀집 벡터는 [0.135, -0.629, 0.327, 0.366, ...]로 나타날 수 있습니다.

희소 벡터(임베딩)란 무엇인가요?

희소 벡터는 대부분의 요소가 0인 고차원 수치 임베딩으로, 저장 공간과 계산 효율성을 모두 최적화한 구조입니다. 밀집 검색기와 달리 희소 검색기는 TF-IDF(Term Frequency - Inverse Document Frequency, 단어의 빈도 - 역 문서 빈도) 또는 BM25와 같은 전통적인 검색 기법을 사용해 키워드를 기반으로 쿼리를 문서와 일치시킵니다. 예를 들어, '건강한 간식'을 검색하면 관련 용어에 가중치를 부여하여 확장되는 희소 벡터가 생성될 수 있습니다. 가령, ["사과" (3.0), "당근" (2.5), "비타민" (1.2)]와 같이 일부 용어에 가중치를 할당하고, 나머지 어휘의 모든 용어는 가중치가 0입니다. 이 구조는 전통적인 역인덱스와 호환성이 높아 효율적인 검색이 가능합니다.

유사성 측정

벡터 유사성과 거리는 어떻게 측정하나요?

벡터 검색에서 유사성은 고차원 공간에서 두 벡터 사이의 거리나 각도를 계산하여 정량화되며, 벡터가 서로 가까울수록 의미적으로 더 유사하다고 간주됩니다. 이 근접성을 측정하는 데 사용되는 일반적인 지표로는 코사인 유사도(cosine similarity), 유클리드 거리(Euclidean distance), 내적(dot product), 해밍 거리(Hamming distance), 맨해튼 거리(Manhattan distance) 등이 있습니다.

  • L2 거리(유클리드 거리)는 가장 일반적인 측정 지표로, 두 벡터 점 사이의 직선 거리를 나타냅니다.
  • L1 거리(맨해튼 거리)는 벡터 구성 요소의 절대 차이를 합산하여 거리를 측정하는 지표로, 격자형 도시에서 거리를 계산하는 것과 유사합니다.
  • Linf 거리(체비셰프 거리)는 단일 차원에서의 최대 차이입니다.
  • 코사인 유사도는 두 벡터 사이의 코사인 각도를 측정해 크기에 관계없이 두 벡터가 유사한 방향을 가리키는지 여부를 결정합니다. 점수 1은 두 벡터가 동일함을, –1은 정반대임을 의미합니다. 이는 OpenAI 모델과 같은 정규화된 임베딩 공간에서 자주 사용되는 지표입니다.
  • 내적 유사도는 벡터의 각도와 크기를 모두 고려합니다. 정규화된 벡터에서는 코사인 유사도와 동일하지만, 계산 효율이 더 높은 경우가 많습니다.
  • 해밍 거리는 두 벡터가 서로 다른 차원의 개수를 계산합니다.
  • 최대 내적(MaxSim)은 단일 데이터(예: 문서)가 여러 벡터(예: 각 단어에 대한 벡터)로 표현될 때 사용되는 유사성 지표입니다. 한 문서의 각 벡터를 다른 문서에서 가장 유사한 벡터와 비교한 후, 그 결과를 집계해 유사성을 계산합니다.

효율적인 검색 알고리즘

벡터 검색 시스템에서 다단계 검색이란 무엇인가요?

다단계 검색 또는 검색 프레임워크(간단히 '검색 파이프라인'이라고도 함)는 쿼리를 처리하는 단계의 순서를 정의하는 오케스트레이션된 워크플로우입니다. 일반적으로 여기에는 쿼리 분석, 하나 이상의 인덱스에서의 초기 검색(예: 하이브리드 접근 방식을 위해 어휘 검색과 벡터 검색을 결합), 결과 필터링, 그리고 사용자에게 결과를 반환하기 전 최종 순위 재지정 단계와 같은 단계가 포함됩니다.


검색 파이프라인을 구축하는 데 검색 프레임워크를 사용하면 어떤 이점이 있나요?

가장 큰 장점은 모듈화와 유연성입니다. 이에 따라 개발자들은 전체 시스템을 처음부터 구축할 필요 없이, 다양한 검색 및 순위 전략(예: 하이브리드 검색)을 손쉽게 결합하고, 특정 요구에 맞춘 복잡한 다단계 검색 파이프라인을 구성할 수 있습니다.

시맨틱 순위 재지정이란 무엇인가요?

시맨틱 순위 재지정은 검색 결과의 관련성을 개선하는 2단계 프로세스입니다. 초기의 빠른 검색 단계에서 광범위한 후보 문서 세트를 가져온 후, 보다 계산 집약적이지만 더 정확한 모델을 사용해 이 작은 세트의 순위를 다시 지정하여 최종적으로 더 정밀한 순위를 산출합니다.

'검색-순위 재지정' 다단계 프로세스는 어떻게 작동하나요?

'검색-순위 재지정' 파이프라인은 두 가지 단계로 작동합니다.

  1. 검색: 효율적이고 확장 가능한 검색 방법(예: ANN 벡터 검색 또는 어휘 BM25 검색)을 사용해 전체 인덱스에서 초기 후보 문서 세트를 가져옵니다.
  2. 순위 재지정: 이 작은 후보 집합은 더 강력한 모델(예: 교차 인코더)로 전달됩니다. 이 모델은 쿼리와 각 문서 간의 의미론적 관계를 심층 분석하여 최종 관련성을 개선하기 위해 순서를 재지정합니다.

순위 재지정 시 바이 인코더와 크로스 인코더 아키텍처의 차이는 무엇인가요?

  • 바이 인코더는 쿼리와 문서에 대해 독립적으로 별도의 임베딩을 생성합니다. 문서 임베딩을 미리 계산하고 인덱싱할 수 있기 때문에 이 아키텍처는 매우 빠르며 초기 검색 단계에 사용됩니다.
  • 크로스 인코더는 쿼리와 문서를 하나의 입력으로 처리합니다. 이를 통해 훨씬 더 심층적인 컨텍스트 상호 작용을 포착할 수 있어, 정확도는 높지만 속도가 훨씬 느립니다. 계산 비용으로 인해 작은 후보 결과 세트에 대한 순위 재지정 단계에만 적합합니다.

벡터 데이터베이스의 저장 공간 및 최적화

벡터는 일반적으로 벡터 데이터베이스에 어떻게 저장되며, 어떤 저장 공간 문제가 발생하나요?

벡터는 일반적으로 32비트 부동 소수점 숫자(float32)의 배열로 저장됩니다. 주요 과제는 막대한 저장 공간으로, 단일 384차원 벡터가 약 1.5KB를 차지합니다. 따라서 1억 개의 문서 인덱스는 벡터 필드를 하나 추가하는 것만으로 크기가 7배 증가할 수 있습니다. HNSW와 같은 벡터 검색 알고리즘은 성능을 위해 인덱스를 RAM에 로드해야 하므로, 메모리 비용과 확장성에 관련된 상당한 과제가 발생합니다.

벡터 양자화란 무엇인가요?

벡터 양자화는 더 적은 비트로 매개변수를 표현하여 모델의 메모리와 계산 요구 사항을 줄이는 손실 압축 기법입니다. 이는 수십억 개의 매개변수를 가질 수 있는 LLM에 특히 유용합니다. 고정밀 float32 값을 낮은 정밀도의 정수(int8 또는 int4)로 변환하면, 양자화는 모델 크기를 크게 줄이고 정확도에 거의 영향을 미치지 않으면서 추론 속도를 높일 수 있습니다.

스칼라 양자화(SQ)란 무엇인가요?

스칼라 양자화float32 값의 연속 범위를 정밀도가 낮은 정수 값의 개별 집합(예: int8)에 매핑하여 벡터를 압축합니다. 이를 통해 관련성에 중요한 벡터의 크기 정보를 상당량 보존하면서 저장 공간을 최대 4배까지 줄일 수 있습니다.

이진 양자화(BQ)란 무엇인가요?

이진 양자화float32 벡터의 각 구성 요소를 이진 표현(예: 1비트)으로 변환하는 보다 과감한 압축 기법입니다. 이를 통해 최대 32배까지 압축할 수 있어 메모리를 최대한 절약하고 정수 기반 연산을 사용해 더 빠른 계산이 가능하지만, 정밀도가 일부 손실될 수 있습니다.

벡터 데이터베이스의 이점은 무엇인가요?

벡터 데이터베이스는 비정형 데이터 및 AI 애플리케이션으로 작업할 때 기존 데이터베이스에 비해 몇 가지 장점을 제공합니다.

키워드 매칭을 넘어선 시맨틱 검색: 벡터 데이터베이스는 정확한 단어 일치가 아닌 의미에 기반하여 결과를 검색합니다. ‘학생을 위한 저렴한 노트북’에 대한 쿼리는 ‘대학생을 위한 예산 노트북’으로 설명된 제품을 표시할 수 있습니다. 이는 기본 임베딩이 문자 그대로의 텍스트 중복보다는 개념적 유사성을 포착하기 때문입니다.

대규모의 빠른 유사성 검색: 벡터 인덱싱을 HNSW와 같은 근사 최근접 이웃 알고리즘과 결합함으로써, 벡터 데이터베이스는 수십억 개의 벡터에서 관련 결과를 밀리초 단위로 반환하여 실시간 AI 애플리케이션을 실현 가능하게 만듭니다.

비정형 데이터 지원: 텍스트, 이미지, 오디오, 비디오 및 기타 비정형 형식을 모두 벡터 임베딩으로 표현하고 단일 통합 시스템에서 검색할 수 있으므로 데이터 유형별로 별도의 파이프라인이 필요하지 않습니다.

대규모 언어 모델의 기반 구축: 벡터 데이터베이스는 Retrieval-Augmented Generation(RAG) 아키텍처에서 검색 계층 역할을 하며, 신뢰할 수 있는 출처에서 관련성 있는 최신 맥락을 LLM에 제공하고 환각을 줄입니다.

하이브리드 검색 기능: 최신 벡터 데이터베이스는 밀집 벡터 검색, 희소 벡터 검색 및 전통적인 키워드(BM25) 검색을 단일 쿼리에서 결합하여 단일 방법으로는 달성할 수 없는 보다 정확한 결과를 제공합니다.

확장성 및 성능: 목적에 맞게 구축된 인덱싱 구조, 양자화 및 분산 아키텍처를 통해, 벡터 데이터베이스는 증가하는 데이터 세트와 높은 쿼리 볼륨을 대기 시간의 상당한 저하 없이 처리할 수 있습니다.

운영 복잡도 감소: 통합 벡터 데이터베이스는 저장 공간, 임베딩 관리, 검색을 위한 별도의 시스템을 연결할 필요를 없애 AI 기반 애플리케이션의 아키텍처를 단순화합니다.

통합된 벡터 데이터베이스와 검색 플랫폼의 이점은 무엇인가요?

벡터 저장 공간 및 검색 기능을 전통적인 데이터베이스 기능(예: 어휘 검색 및 필터링)과 결합한 통합 플랫폼은 상당한 이점을 제공합니다. 별도의 시스템 간에 데이터를 동기화할 필요가 없어 아키텍처가 간소화됩니다. 가장 중요한 점은 어휘 검색, 벡터 검색, 메타데이터 필터링을 단일 통합 쿼리로 수행할 수 있는 강력한 하이브리드 검색을 지원하여, 보다 관련성 높은 결과를 제공하고 개발자 경험을 개선한다는 것입니다.

벡터 데이터베이스에서 메타데이터 필터링이란 무엇입니까?

메타데이터 필터링은 각 벡터에 연결된 구조화된 속성(예: 날짜, 카테고리, 작성자, 가격, 언어 또는 사용자 권한)을 기반으로 벡터 검색 결과를 좁히는 과정입니다. 벡터 검색이 의미적 유사성으로 결과를 검색하는 반면, 메타데이터 필터는 결과가 반드시 만족해야 하는 엄격한 제약 조건을 적용합니다. 따라서 "가벼운 러닝화"에 대한 쿼리는 재고가 있고, 가격이 £100 미만이며, 사용자의 지역에서 사용 가능한 항목으로 제한될 수 있습니다.

벡터 유사성과 메타데이터 필터링을 결합하는 것은 프로덕션 애플리케이션에 필수적입니다. 예를 들어, RAG 시스템은 현재 사용자가 볼 권한이 있는 문서나 최근 6개월 이내에 게시된 기사로만 응답을 제한해야 할 수도 있습니다. 메타데이터 필터링이 없으면 의미적으로는 관련성이 있지만 문맥상으로는 잘못된 결과가 정기적으로 나타나게 됩니다.

두 가지 일반적인 접근 방식이 있습니다. 사전 필터링은 유사성 검색 전에 메타데이터 제약 조건을 적용하여 후보 집합을 미리 줄입니다. 이는 요청된 결과 수를 보장하지만, 선택성이 높은 필터의 경우 속도가 느려질 수 있습니다. 사후 필터링은 먼저 유사성 검색을 실행한 다음 일치하지 않는 결과를 제외합니다. 이 방법은 더 빠르지만, 필터가 제한적이면 요청된 수보다 적은 결과를 반환할 수 있습니다. 최신 벡터 데이터베이스는 일반적으로 두 가지 전략을 모두 결합하여, 필터 선택도에 따라 동적으로 전략을 선택함으로써 재현율, 지연 시간 및 정확도의 균형을 유지합니다.


Elastic을 사용한 벡터 데이터베이스 기능

Elasticsearch는 세계에서 가장 널리 배포된 검색 엔진의 기반 위에 구축된 벡터 데이터베이스로, 벡터 검색, 어휘 검색, 메타데이터 필터링을 하나의 플랫폼에 결합한 것입니다. 팀은 별도의 검색 시스템과 전용 벡터 저장소를 운영하는 것이 아니라, 하나의 엔진으로 시맨틱 검색, 하이브리드 검색, 그리고 프로덕션 규모의 Retrieval-Augmented Generation(RAG)을 구동할 수 있습니다.

주요 기능에는 다음이 포함됩니다:

  • 기본 밀집 및 희소 벡터 지원: 동일한 인덱스 내에서 밀집 벡터 임베딩과 희소 임베딩(Elastic의 ELSER 모델에서 생성된 것 포함)을 인덱싱, 저장 및 쿼리합니다.
  • 즉시 사용 가능한 하이브리드 검색: 리트리버 프레임워크를 사용하여 BM25 어휘 검색, 밀집 벡터 kNN, 희소 벡터 검색을 단일 쿼리에서 결합하고, 결과를 병합하기 위해 상호 순위 결합(RRF)을 사용합니다.
  • 기본 제공 추론: semantic_text 필드 유형과 추론 API가 청킹, 임베딩 생성, 쿼리 시 벡터화를 자동으로 처리하므로 별도의 임베딩 파이프라인을 관리할 필요가 없습니다.
  • 메모리 효율적인 저장 공간: Better Binary Quantization(BBQ)은 밀집 벡터에 대해 기본적으로 활성화되며, 재현율을 유지하면서 메모리 공간을 최대 32배까지 줄여 확장 시 인프라 비용을 절감합니다.
  • 필터링된 벡터 검색: 메타데이터 필터, 지리 공간 제약 조건 및 도큐먼트 수준 보안을 벡터 유사성과 함께 단일 쿼리에서 적용하며, 쿼리 플래너는 선택성에 따라 사전 또는 사후 필터링을 선택합니다.
  • 프로덕션급 운영: 샤딩, 복제, 역할 기반 액세스 제어(RBAC), 스냅샷 및 모니터링을 포함한 Elasticsearch의 분산 아키텍처를 계승하며, 이러한 모든 기능은 대규모 배포에서 안정적이고 검증되었습니다.
  • 시맨틱 순위 재지정: Elastic Rerank 모델은 초기 검색 결과에 2단계 관련성 향상 기능을 추가하여 재인덱싱 없이 결과 품질을 개선합니다.

Elasticsearch Labs 문서에서 Elasticsearch 벡터 검색을 시작하세요.

배포 유연성: 온프레미스 및 에어갭 벡터 데이터베이스

벡터 데이터베이스가 실행되는 위치는 성능만큼이나 점점 더 중요해지고 있습니다. 대부분의 벡터 데이터베이스는 관리형 클라우드 서비스로 제공되지만, 온프레미스 또는 완전한 에어갭 환경 등 자체 인프라 내에 배포해야 하는 조직이 증가하고 있습니다.

온프레미스 배포는 벡터 데이터베이스가 조직이 제어하는 하드웨어에서 실행되며, 일반적으로 자체 데이터 센터나 프라이빗 클라우드 내에서 실행됨을 의미합니다. 데이터는 조직 네트워크 경계를 벗어나지 않으며, 운영팀이 설치, 확장, 업그레이드 및 보안을 직접 관리합니다. 에어갭 배포는 한 단계 더 나아가, 환경이 공용 인터넷에 전혀 연결되지 않습니다. 소프트웨어 업데이트, 모델 가중치 및 임베딩 파이프라인은 제어된 오프라인 프로세스를 통해 가져와야 하며, 어떠한 원격 측정 또는 데이터도 전송될 수 없습니다.

이는 대부분의 다른 인프라보다 벡터 데이터베이스에 더 중요한 문제입니다. RAG 파이프라인에서 벡터 데이터베이스는 언어 모델 응답의 기반이 되는 지식 기반을 보유하고 있으며, 여기에는 종종 조직이 소유한 가장 민감한 콘텐츠인 내부 연구, 고객 기록, 법적 문서, 소스 코드, 기밀 정보 또는 독점적인 운영 데이터 등이 포함되어 있습니다. 임베딩 자체도 소스 콘텐츠에 대한 정보를 유출할 수 있으므로 저장 공간 계층은 위협 모델의 중요한 부분이며 사후 고려 사항이 아닙니다.

여러 산업 분야에서는 퍼블릭 클라우드 전용 벡터 데이터베이스를 허용하지 않는 엄격한 요구 사항을 적용합니다.

  • 연방, 국방 및 정보 기관은 외부 연결이 허용되지 않고 소프트웨어가 배포되기 전에 특정 인증 기준을 충족해야 하는 기밀 또는 에어갭 네트워크에서 운영되는 경우가 많습니다.
  • 의료 서비스 제공자는 보호된 건강 정보를 처리할 때 환자 데이터의 저장 및 처리 위치에 관한 엄격한 규정을 준수해야 하며, 많은 제공자는 임상 기록의 임베딩을 타사 서비스로 전송하기보다는 병원 또는 지불자 인프라 내에서 AI 워크로드를 유지하는 것을 선호합니다.
  • 금융 서비스 기업은 데이터 상주 규정, 규제 감사 요구 사항, 고객 및 거래 데이터를 특정 관할 구역 내부 또는 기업 자체의 통제 환경 내부에 보관하도록 요구하는 내부 정책을 준수해야 합니다.
  • 데이터 상주 또는 데이터 주권 요구 사항이 있는 기업(GDPR 또는 유사한 지역 프레임워크와 같은 규정의 적용을 받는 모든 조직 포함)은 벡터 데이터베이스를 특정 국가 또는 지역에 지정해 두거나, 이를 전적으로 자체 인프라 내부에서 실행할 수 있어야 합니다.

전체 배포 스펙트럼(관리형 클라우드, 자체 관리형 클라우드, 온프레미스 및 에어갭)을 지원하는 벡터 데이터베이스를 선택하면, 조직이 다양한 보안 및 규정 준수 프로필을 가진 워크로드 전반에 걸쳐 단일 기술을 표준화할 수 있으며, 민감한 데이터와 민감하지 않은 데이터에 대해 별도의 스택을 운영할 필요성이 제거됩니다.