Jeffrey Erickson | Content Strategist | 2024년 10월 29일
덜 알려진 데이터 유형인 벡터는 최근 생성형 AI의 조력자로서 주목받게 되었습니다. 그러나 벡터와 이를 저장하고 분석할 수 있는 데이터베이스는 오랜 세월 무대 뒤에서 열심히 일하고 있었습니다. 이들은 도시 계획, 운송 물류, 환경 분석을 위해 지리 공간을 매핑하고 분석하는 데 사용됩니다. 최근에는 벡터가 소매 제품뿐 아니라 음악 및 동영상 스트리밍 사이트의 추천 엔진에도 사용되고 있습니다.
생성형 AI는 이러한 사용 사례를 기반으로 구축되며, 검색 증강 생성(RAG) 등의 기술이 동반된 벡터와 벡터 데이터베이스를 사용하여 새로운 혁신의 문을 엽니다.
벡터는 개체의 특징을 나타내는 단순한 숫자 집합으로, 그 개체가 단어인지, 문장인지, 문서인지, 이미지 또는 동영상이나 오디오 파일인지는 무관합니다. 컴퓨터는 이러한 유형의 비정형 콘텐츠를 비교하거나 검색하기 어렵기 때문에 벡터가 필요합니다. 반면에 컴퓨터가 벡터를 비교하거나 검색하는 것은 훨씬 쉽고, 이는 컴퓨터가 잘 아는 수학을 기반으로 합니다.
벡터는 기반이 되는 데이터 객체나 그 객체의 링크와 함께 데이터베이스에 저장됩니다. 수학적으로 서로 가까운 벡터는 유사한 특징을 가진 객체를 설명하는 경향이 있으므로, 빠르게 비교하거나 검색하여 유사한 객체를 반환할 수 있습니다. 일부 특징만 식별된 쿼리 벡터를 구성할 수도 있습니다. 검색은 쿼리 벡터에 지정된 것과 유사한 특징을 가진 객체를 반환합니다.
벡터 데이터베이스란 벡터 임베딩을 기본적으로 저장 및 관리하고, 임베딩이 설명하는 비정형 데이터(문서, 이미지, 동영상 또는 오디오 등)를 처리할 수 있는 데이터베이스입니다.
생성형 AI에 대한 벡터 검색의 중요성으로 인해, 기술 산업에서는 기업이 자사 데이터 인프라에 추가할 수 있는 독립적인 전문 벡터 데이터베이스가 우후죽순으로 생겨났습니다. 한편, Oracle Database 및 오픈 소스 MySQL 데이터베이스와 같이 기존에 안정적으로 인기를 끌던 버전은 벡터를 다른 여러 데이터 유형과 함께 네이티브 데이터 유형으로 통합했습니다. 이렇게 하면 하나의 데이터베이스에서 두 가지 데이터 유형을 모두 사용할 수 있으므로, 비즈니스 데이터와 의미 데이터의 조합을 더 빠르고 정확하게 검색할 수 있습니다. 이러한 접근 방식을 사용하면 비즈니스의 기본 데이터베이스와 별도의 전문 벡터 데이터베이스를 함께 사용할 때 발생하는 데이터 일관성 문제도 방지할 수 있습니다.
벡터 인덱스와 벡터 데이터베이스는 둘 다 벡터, 즉 문서, 이미지, 동영상이나 오디오 파일과 같은 객체의 특징을 나타내는 숫자 세트를 효율적으로 저장하고 검색하도록 설계되었습니다. 하지만 이 둘은 서로 다른 특성 및 사용 사례를 가지고 있습니다. 벡터 인덱스는 주로 주어진 쿼리 벡터에 가장 가까운 벡터를 찾는 등의 '최근접 이웃' 검색에 사용됩니다. 인덱스는 추천 엔진과 같이 빠르고 정확한 유사성 검색이 필요한 애플리케이션에 적합합니다. 반면 벡터 데이터베이스는 조직이 검색과 분석을 위해 벡터를 저장하는 곳입니다. 엔터프라이즈급 벡터 데이터베이스에서는 최근접 이웃 검색 이상으로 유용한 기능(메타데이터 스토리지, 데이터 버전 관리, 다른 시스템과의 통합 등)을 제공합니다.
벡터 인덱스와 벡터 데이터베이스 간의 주된 차이점은, 벡터 인덱스는 텍스트, 이미지나 오디오 파일과 같은 비정형 데이터의 속성에 대한 정보를 저장한다는 것입니다. 이 정보는 벡터라는 숫자 집합으로 표현됩니다. 벡터 인덱스는 이 데이터를 보유하며, 데이터베이스가 객체를 신속하게 식별하고 매치할 수 있도록 '인덱스화'합니다.
벡터 데이터베이스에는 이러한 인덱스와, 해당 인덱스가 설명하는 객체가 포함됩니다. 그러나 데이터베이스가 벡터 인덱스와 데이터 객체를 배열하는 방식은 다양합니다. Oracle Database와 같은 벡터 사용 데이터베이스는 데이터 객체의 저장을 데이터 및 벡터의 검색과 분리하여 운영합니다. 이렇게 하면 SQL의 메타데이터 및 최신 비즈니스 데이터에 대한 성숙한 쿼리 성능을 벡터 검색의 속도 및 맥락적 관련성과 결합할 수 있습니다. 이 접근 방식이라는 것은 예를 들어 관련 소매 제품을 벡터 검색하면 최신 가격과 가용성까지도 확인할 수 있다는 의미입니다.
핵심 요점
기업들은 생성형 AI 모델을 미세 조정하기 위해 비용과 노력을 들이는 대신, LLM이 자사의 결과를 생성하기 위해 사용하는 데이터를 선별하고 있습니다. 이때 최신 엔터프라이즈 정보가 포함된 벡터 데이터베이스가 사용됩니다. 검색 증강 생성이라고 하는 이러한 아키텍처 접근 방식을 통해 방대한 양의 일반화된 데이터로 학습된 LLM은 벡터 데이터베이스에 있는 개인 데이터를 사용하여 응답을 개선할 수 있습니다.
예를 들어 LLM 기반 챗봇이 소매업체의 일반 메시지 대신 고객 기록과 이메일 커뮤니케이션에 액세스할 수 있다면, "내 주문이 발송되었나요?"와 같은 쿼리에 더욱 유용하면서도 개인화된 응답을 제공할 수 있습니다.
또한 RAG는 벡터 데이터베이스의 어떤 문서가 출력에 정보를 제공했는지 인용함으로써 생성형 AI 모델의 신뢰성과 신뢰성을 높일 수 있습니다.
놀랍게도 벡터의 저장과 분석에 최적화된 데이터베이스의 사용이 증가하고 있습니다. 원래 벡터 데이터베이스는 주로 매핑 및 데이터 분석에 사용되었지만, 이제는 가장 인기 있는 소매업체와 음악 및 동영상 스트리밍 제공업체, 가상 어시스턴트, 생체 인식 패턴 인식, 이상탐지 등에서 일반적으로 사용되는 추천 엔진의 중요한 기반 기술이 되었습니다. 이제 벡터 데이터베이스는 멋진 사용법을 새로 찾아냈습니다. 바로 생성형 AI 모델의 출력에 정보를 제공할 때 액세스하기 위한 대량의 비정형 데이터를 저장하는 것입니다.
MySQL 및 Oracle Database와 같은 확립된 데이터베이스에서는 벡터 데이터를 JSON, 그래프, 공간 및 관계형과 같은 조직의 나머지 데이터와 함께 네이티브 데이터 유형으로 통합하는 추세가 늘고 있습니다. 이렇게 합치면 생성형 AI를 운영하기 위해서 데이터를 별도의 데이터베이스로 이동할 필요가 없어지며, 둘 다 프로세스를 단순화하고 신뢰할 수 있는 저장소에 중요한 데이터를 남깁니다.
생성형 AI 사용 사례가 늘어나고 있다는 것은, 시장에는 벡터 데이터 유형 관리를 추가한 NoSQL 및 관계형 데이터베이스 외에도 새로운 벡터 데이터베이스가 많다는 것을 의미합니다.
벡터 데이터베이스는 데이터를 벡터로 저장하고 처리하는 방식으로 작동합니다. 이때 벡터는 다차원 공간에서 객체의 특징을 수학적으로 표현합니다. 이를 통해 이미지, 오디오, 동영상 및 센서 데이터와 같은 복잡한 데이터 유형을 효율적으로 저장 및 쿼리할 수 있으므로 벡터는 추천 시스템, 자연어 처리 및 이미지 인식과 같은 사용 사례에 이상적입니다.
작업은 여러 단계로 수행됩니다.
벡터 데이터베이스는 열 기반(columnar)과 같은 스토리지 구조에 따라 혹은 인메모리 데이터베이스와 같은 구현 방식에 따라 다양한 유형으로 분류할 수 있습니다. 각 유형에는 장점이 있습니다. 어떤 유형을 선택할지는 사용자 고유의 요구 사항과 사용 사례에 따라 결정하는 것이 좋습니다.
열 기반 데이터베이스는 데이터를 열에 저장하고 디스크에 그룹화합니다. 분석에는 일반적으로 테이블 열의 데이터를 필터링하고 결합하는 작업이 포함되므로 이 배열은 데이터 분석 속도를 높입니다. 데이터베이스는 레코드를 행 형식으로 저장할 수도 있습니다. 행 형식은 레코드에서 단일 항목을 업데이트하는 트랜잭션에 유용합니다. 그러나 데이터 분석의 경우 분석가가 열 기반 데이터베이스를 사용하면 수천 또는 수백만 개의 레코드를 매우 빠르게 스캔할 수 있습니다.
문서 저장소 데이터베이스 또는 문서 지향 데이터베이스는 문서 지향 정보를 관리, 검색 및 저장하는 프로그램 및 데이터 스토리지 시스템입니다. 문서 데이터베이스는 데이터를 다양한 동적 데이터 구조에 적합한 유연한 JSON 유사 문서에 저장합니다. 관계형 데이터베이스와는 차이가 있는데, 관계형 데이터베이스는 데이터를 고정 스키마로 구성하기 위해 테이블을 사용합니다.
그래프 분석은 데이터 포인트를 노드로 사용하고 관계를 에지로 사용하여, 데이터를 그래프 형식으로 분석하는 프로세스입니다. 이러한 방식으로 데이터를 보면 이전에 명확하지 않은 연결과 관계를 발견하는 데 도움이 될 수 있습니다. 그래프 분석을 수행하려면 그래프 형식을 지원할 수 있는 데이터베이스가 필요합니다. 이는 전용 그래프 데이터베이스 또는 그래프를 포함한 여러 데이터 모델을 지원하는 컨버지드 데이터베이스일 수 있습니다.
인메모리 데이터베이스는 스토리지 디스크가 아닌 애플리케이션의 메모리 계층에 데이터를 저장하고 조작합니다. 이러한 유형의 구조는 분석 쿼리를 가속하기 위해 열 기반 저장소 기능 및 벡터화된 쿼리 계획과 매치되는 경우가 많습니다. 이러한 유형의 데이터 저장소는 실시간 데이터를 기반으로 의사 결정을 내리는 데 필요한 글로벌 통신 및 비즈니스에서 초고속 운영을 지원하는 데 유용합니다.
키-값 저장소는 키-값 데이터베이스라고도 하며, 온라인 스토어의 품목과 같이 자주 변경되는 데이터를 저장하고 쿼리하는 빠른 방법입니다. 키-값 저장소는 키값을 사용하여 쿼리 또는 업데이트를 위한 특정 레코드를 정확히 찾아내는 NoSQL 유형 데이터베이스입니다.
공간 데이터베이스는 공간에 있는 객체의 물리적 위치와 기하학적 특성에 대한 정보를 보여주는 공간 데이터를 저장하고 관리합니다. 저장과 관리는 인덱싱 기술과 쿼리 작업을 통해 수행합니다. 공간 데이터베이스는 온라인 매핑 및 분석과 운송 물류 운영에 사용됩니다.
시계열 데이터베이스는 각 데이터 포인트가 특정 시간 기록이나 시간 간격과 연관된 시간 기록 데이터를 효율적으로 저장하고 분석하는 데 사용됩니다. 이러한 데이터베이스는 일반적으로 로그 분석에 의존하는 IT 모니터링 시스템과 금융 분야에서 사용합니다.
벡터 데이터베이스는 상용 또는 오픈 소스 대규모 언어 모델에 지역 조직이나 비즈니스에서 제공하는 최신 정보에 대한 액세스를 제공함으로써 이러한 모델을 강화합니다. 이렇게 하면 해당 조직과 관련된 사람들에게 좀 더 적절하고 개인화된 LLM 출력을 제공할 수 있습니다.
벡터 데이터베이스는 리테일이나 물류 산업과 같이 대규모 공간 데이터와 기하학적 데이터를 다루는 다양한 애플리케이션과 조직, 자율 주행 차량 조종 시스템에 사용됩니다. 이제는 고급 AI 및 머신러닝을 탐구하는 기업들도 벡터 데이터베이스를 채택하고 있습니다. 예를 들어 생성형 AI 모델은 최신 로컬 데이터를 사용해 결과를 개선할 때 벡터 데이터베이스에 의존합니다.
그 밖의 구체적인 사용 사례는 다음과 같습니다.
벡터 데이터베이스의 사용 사례는 벡터 데이터베이스를 사용하는 조직 및 애플리케이션만큼이나 다양합니다. 벡터 데이터베이스는 실시간 데이터 분석, 재무 시스템 및 추천 엔진 외에도 이미지 인식 및 자연어 처리와 같은 작업에 일반적으로 필요한 복잡한 데이터 구조를 처리하도록 최적화되어 있습니다.
벡터 데이터베이스는 데이터를 효율적으로 저장하고 처리함으로써 기업이 다음을 포함한 광범위한 애플리케이션에 복잡한 데이터 구조를 활용할 수 있도록 지원합니다.
벡터 데이터베이스는 빠른 유사성 검색을 포함한 많은 이점을 제공합니다. 최근접 이웃 검색을 효율적으로 수행하도록 최적화되어 있어, 대용량 데이터 세트에서도 유사한 항목을 빠르게 검색할 수 있습니다. 이를 통해 비정형 데이터를 실시간으로 처리하고 분석해야 하는 애플리케이션 및 산업과 새로운 생성형 AI 사용 사례에 이상적입니다.
그 밖의 장점은 다음과 같습니다.
생성형 AI를 사용하든, 벡터를 사용하는 다른 작업을 사용하든, Oracle이 도움을 드릴 수 있습니다.
세계에서 가장 인기 있는 엔터프라이즈 데이터베이스인 Oracle Database는 벡터와 모든 비즈니스 데이터를 위한 단일 데이터 플랫폼을 제공합니다. 다양한 데이터베이스를 감독하고 동기화할 필요 없이 기업 데이터에 대해 유사성 검색 기능을 손쉽게 활용할 수 있습니다. AI 벡터 검색을 사용하면 데이터의 시멘틱이나 의미 뿐 아니라 값을 이해하여 정형 데이터와 비정형 데이터 모두에서 검색을 수행할 수 있습니다.
관계형 데이터, JSON 문서, 그래프, 지리 공간 데이터, 텍스트 및 벡터를 단일 데이터베이스에 결합하면 애플리케이션에서 새로운 기능을 신속하게 구축할 수 있습니다. Oracle Database의 AI Vector Search는 GenAI 서비스와 함께 RAG 파이프라인에서도 사용할 수 있습니다. 또한 Oracle의 HeatWave MySQL 데이터베이스 서비스는 벡터 검색 및 기타 사용 사례를 지원하기 위해 벡터를 기본적으로 처리합니다. 예를 들어, 이 서비스를 Oracle Cloud Infrastructure(OCI)의 RAG 서비스와 함께 사용해 생성형 AI 인터페이스를 독점 문서에 적용할 수 있습니다. AI를 귀사의 운영 데이터 전문가로 들이는 것입니다.
Oracle은 벡터를 데이터 분석, 지리 공간 애플리케이션, 제품 추천을 위해 사용하든 생성형 AI를 위한 지원 기술로 사용하든 상관없이 다양한 도움을 제공합니다. Oracle의 대표적인 Autonomous Database와 Oracle HeatWave MySQL 모두 벡터를 네이티브 데이터 유형으로 관리하고, 그 외 다양한 데이터 유형을 통해 한층 더 간단한 개발 경험을 제공합니다. 두 데이터베이스 모두 Oracle Cloud Infrastructure에서 실행됩니다. OCI는 최신 프로세서 및 슈퍼클러스터 아키텍처를 통해 생성형 AI, 컴퓨터 비전, 예측 분석 등 가장 까다로운 AI 워크로드를 효율적으로 처리할 수 있도록 설계되었습니다. Oracle Database를 사용하든 오픈 소스 MySQL 데이터베이스를 사용하든 상관없이 지금 바로 벡터 검색을 활용할 수 있습니다.
생성형 AI 시대인 만큼 비즈니스에 벡터 데이터베이스는 그 어느 때보다도 중요해졌습니다. 벡터 데이터 유형을 저장하고 관리하려는 개발팀이 늘어날수록, 개발팀은 벡터뿐 아니라 다른 많은 데이터 유형을 지원하는 특수 목적의 벡터 데이터베이스를 가져올지 혹은 다중 모델 데이터베이스(예: Oracle Database)를 사용할지 등의 결정을 내려야 합니다.
벡터 데이터베이스는 고객 서비스를 혁신하는 챗봇, 보건의료 서비스를 혁신하는 알고리즘 등 흥미로운 AI 사용 사례의 중심에 있습니다. 기업들이 벡터의 힘을 지금 어떻게 활용하고 있는지 확인해 보십시오.
벡터 데이터베이스는 언제 사용해야 합니까?
벡터 데이터베이스는 운송 물류 또는 환경 연구와 같은 지리 공간 애플리케이션이나, 소매 또는 온라인 엔터테인먼트 옵션의 추천이나, 최근에는 개별 조직에서 생성형 AI를 지원하는 데이터의 기본 저장소 등의 다양한 사용 사례에 사용될 수 있습니다.
Netflix는 벡터 데이터베이스를 사용합니까?
Netflix는 벡터 데이터베이스를 사용하여 자사의 인기 추천 엔진을 지원한다고 발표했습니다. 벡터 임베딩을 카탈로그의 모든 엔터테인먼트에 적용하고, 벡터 데이터베이스로 유사한 제목을 실시간으로 검색할 수 있습니다.