MongoDB World is back in NYC June 7 - 9!MongoDB World is back in NYC June 7 - 9!

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

목차

생성형 AI(일명 인공 지능)에 대해 많이 들어보셨을 겁니다. 의료, 금융, 소매, 정부 기관에 이르기까지 경제 전반에 걸쳐 여러 조직에서 생성형 인공 지능의 활용 방법을 모색하고 있습니다. CEO라면 누구나 가능한 한 빨리 애플리케이션을 출시하고 싶어하는 것으로 보입니다.

이는 단순한 관심 그 이상입니다. McKinsey 보고서에 따르면 생성형 인공지능은 세계 경제에 수조 달러를 유입시킬 수 있습니다.

이 혁신적인 기술의 핵심은 바로 벡터의 수학적 개념입니다. 생성형 인공지능은 벡터화와 대규모 언어 모델(LLM)의 뛰어난 성능을 통해 판도를 바꿀 잠재력을 실현합니다. 생성형 인공지능 시대에는 벡터 임베딩이 기반을 마련하고, 벡터 데이터베이스가 그 영향력을 증폭시킵니다.

벡터 데이터베이스란 무엇인가요? 어떻게 작동하나요? 일반적인 사용 사례에는 어떤 것이 있나요? MongoDB Atlas Vector Search가 생성형 인공지능 논의에서 중요한 역할을 하는 이유는 무엇인가요?

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

벡터 데이터베이스를 이해하려면 먼저 벡터를 이해해야 합니다.

수학과 물리학에서 벡터는 크기(또는 규모)와 방향을 모두 가진 양을 말합니다. 벡터는 구성 요소로 나눌 수 있습니다. 예를 들어, 2차원 공간에서 벡터는 X(가로) 및 Y(세로) 구성 요소를 갖습니다.

데이터 과학과 머신 러닝에서 벡터는 데이터를 나타내는 정렬된 목록 또는 숫자 시퀀스를 말합니다. 벡터는 텍스트, 이미지, 오디오, 동영상 등 비정형 데이터(또는 미리 정의된 데이터 모델이나 스키마가 없는 데이터)를 포함한 모든 유형의 데이터를 나타낼 수 있습니다. 벡터는 일반적으로 배열 또는 숫자 목록으로 표현되며, 이 목록의 각 숫자는 해당 데이터의 특정 기능이나 속성을 나타냅니다.

예를 들어 대량의 고양이 사진 컬렉션이 있다고 가정해 보겠습니다. 각 이미지는 비정형 데이터의 일부입니다. 하지만 다음과 같은 특징을 추출하여 각 이미지를 벡터로 표현할 수 있습니다.

  • 평균 색상
  • 색상 히스토그램
  • 질감 히스토그램
  • 귀, 수염, 꼬리의 유무

벡터 임베딩(또는 벡터화)은 이러한 단어 및 기타 데이터를 숫자로 변환하는 과정으로, 각 데이터 포인트는 고차원 공간에서 벡터로 표현됩니다.

벡터 데이터베이스(벡터 검색 데이터베이스 또는 벡터 유사성 검색 엔진이라고도 함)는 벡터를 저장, 조회 및 검색합니다.

관계형 데이터베이스의 일반적인 행과 열 대신 벡터 데이터베이스는 데이터를 다차원 공간의 점으로 표현합니다. 벡터 데이터베이스는 정확한 값보다는 유사성을 기반으로 데이터를 빠르고 정확하게 일치시켜야 하는 애플리케이션에 이상적입니다.

“벡터 데이터베이스를 거대한 창고로, 인공지능을 숙련된 창고 관리자라고 상상해 보세요. 이 창고에서는 모든 항목(데이터)이 상자(벡터)에 저장되어 다차원 공간의 선반에 깔끔하게 정리되어 있습니다." Mark Hinkle, The New Stack

생성형 인공지능 애플리케이션을 구축하는 경우 벡터 데이터베이스는 방대한 양의 벡터화된 데이터를 효율적으로 처리하도록 맞춤화되어 쿼리 및 처리 속도가 빨라집니다.

벡터 임베딩과 임베딩 모델을 보여주는 벡터 데이터베이스 이미지.

출처: Dev.to

벡터 데이터베이스는 어떻게 작동하나요?

벡터 데이터베이스의 기능의 핵심은 임베딩 원리입니다. 본질적으로 벡터 또는 임베딩 모델은 데이터를 일관된 형식인 벡터로 변환합니다.

벡터는 기본적으로 정렬된 숫자 집합이지만 임베딩은 벡터를 텍스트, 이미지, 오디오를 비롯한 다양한 데이터 유형의 표현으로 변환합니다.

변환(데이터를 한 형식에서 다른 형식으로 변환하는 프로세스)은 벡터를 다차원 벡터 공간에 배치합니다. 이 공간 배치의 가장 두드러진 특징 중 하나는 비슷한 속성이나 특성을 가진 데이터 포인트가 자연스럽게 서로 끌어당겨 클러스터를 형성한다는 점입니다.

벡터 임베딩은 단순한 숫자 변환이 아니라 원본 데이터의 더 깊은 의미론적 본질과 문맥적 뉘앙스를 담고 있습니다. 따라서 자연어 처리(NLP)에서 감정 분석, 텍스트 분류에 이르기까지 다양한 인공지능 애플리케이션에 귀중한 자산이 됩니다.

벡터 데이터베이스를 쿼리하는 것은 일반적인 데이터베이스를 쿼리하는 것과는 다릅니다. 벡터 데이터베이스는 동일한 벡터 간의 정확한 일치 항목을 찾는 대신 유사성 검색을 사용하여 다차원 공간 내에서 주어진 쿼리 벡터와 매우 가까운 곳에 있는 벡터를 식별합니다. 이 접근 방식은 데이터의 고유한 특성에 더 밀접하게 연계될 뿐만 아니라 기존 검색과는 비교할 수 없는 속도와 효율성을 제공합니다.

단어, 문장, 심지어 전체 문서도 그 본질을 포착하는 벡터로 변환할 수 있습니다. 예를 들어, 표준 단어 임베딩 방법으로 Word2Vec가 있습니다. Word2Vec을 사용하면 유사한 의미를 가진 단어가 다차원 공간에서 근접한 벡터로 표현됩니다. 가장 유명한 예는 '왕 - 남자 + 여자 = 여왕'입니다. '왕'과 '여자' 단어와 연관된 벡터를 더하고 '남자'를 뺀 것은 '여왕'과 연관된 벡터와 같습니다.

분홍색 점, 고양이, 바나나 등 벡터 데이터베이스 검색의 작동 방식을 설명하는 이미지.

출처: Medium

복잡한 패턴과 색상을 가진 이미지도 벡터로 변환할 수 있습니다. 예를 들어, 훈련된 합성곱 신경망(CNN)은 동물 이미지로 가득 찬 데이터 세트에서 모든 개 이미지를 서로 가깝게 클러스터링하여 고양이나 새의 클러스터와는 뚜렷하게 구분할 수 있습니다.

벡터 임베딩은 데이터 고유의 데이터 구조와 데이터 내의 패턴을 포착함으로써 의미적으로 풍부한 묘사를 제공합니다. 이러한 풍부함은 데이터를 더 깊이 이해할 수 있게 해줄 뿐만 아니라 서로 다른 개체 간의 관계를 파악하고 유사성을 측정하는 것과 관련된 계산을 신속하게 처리할 수 있게 해줍니다.

벡터 검색이 중요한 이유는 무엇인가요?

벡터 검색은 고유한 데이터 검색 방법으로 인해 벡터 데이터베이스에서 매우 중요한 역할을 합니다.

정확히 일치하는 데이터에 의존하는 기존 데이터베이스와 달리, 벡터 데이터베이스에서 벡터 검색은 유사성을 기반으로 작동합니다. 이러한 시맨틱 이해는 두 데이터가 동일하지는 않지만 문맥상 또는 의미론적으로 유사하더라도 일치시킬 수 있다는 것을 의미합니다.

기존 키워드 검색은 문서나 표 내에서 특정 용어를 정확히 찾아내는 데 탁월합니다. 하지만 동영상, 책, 소셜 미디어 게시물, PDF, 오디오 파일과 같은 비정형 데이터에는 적합하지 않습니다.

벡터 검색은 비정형 데이터 내에서 검색을 가능하게 함으로써 이러한 문제를 해결합니다. 벡터 검색은 단순히 정확히 일치하는 검색어를 찾는 것이 아니라 검색어 간의 고유한 관계를 이해하여 의미적 유사성을 기반으로 콘텐츠를 식별합니다.

'최근접 이웃'을 설명하는 보로노이 다이어그램 이미지

출처: TowardsDataScience

벡터 검색의 효율성은 고차원 데이터를 다룰 때 더욱 두드러집니다. 벡터 데이터베이스는 수백, 수천 차원에 걸쳐 있는 데이터 포인트를 효과적으로 처리할 수 있습니다. 근사 최근접 이웃(ANN) 검색과 같이 고차원 벡터의 벡터 검색에 최적화된 알고리즘은 모든 벡터를 스캔할 필요 없이 벡터가 차지하는 방대한 공간에서 가장 유사한 벡터를 빠르게 식별할 수 있습니다. 이러한 효율성은 더 빠르고 리소스 효율적인 검색으로 이어집니다.

사용자 경험의 관점에서 벡터 검색의 장점은 다양합니다. 추천 시스템이나 이미지 인식과 같은 애플리케이션은 정확한 일치보다는 유사성에 기반한 결과를 제공할 수 있습니다. 예를 들어, 이커머스 환경에서는 사용자의 검색어와 유사한 제품을 보여줌으로써 고객 만족도를 높이고 매출을 높일 수 있습니다. 데이터 세트가 확장됨에 따라 벡터 검색의 확장성은 더욱 분명해집니다. 데이터가 증가함에 따라 일치 검색의 속도가 점차 느려질 수 있지만, 벡터 검색은 전체적으로 일관된 쿼리 성능을 유지하므로 방대한 데이터 세트에서도 적시에 결과를 얻을 수 있습니다.

또 다른 주목할 만한 장점은 벡터 검색이 제공하는 유연성입니다. 새로운 데이터 유형, 진화하는 데이터 구조, 변화하는 검색 요구 사항을 최소한의 조정으로 수용할 수 있습니다.

또한 오늘날의 많은 인공지능 및 머신 러닝 모델, 특히 딥 러닝에 기반한 모델들이 벡터 형태로 데이터를 생성하고 있기 때문에 빠르게 발전하고 있는 데이터 관리 환경에서 유연성은 매우 중요합니다. 기본적으로 벡터 데이터를 검색할 수 있는 데이터베이스는 안면 인식이나 음성 인식과 같은 고급 애플리케이션에 없어서는 안 될 필수 요소입니다.

비정형 데이터, 인코더, 벡터 저장소를 포함한 벡터 검색을 설명하는 이미지.
벡터 데이터베이스 사용 사례

복잡하고 경쟁이 치열한 글로벌 경제 환경의 핵심에는 여전히 데이터가 있습니다. 과거에는 많은 사람들이 데이터를 '새로운 석유'라고 불렀습니다. 생성형 인공지능 시대에 벡터 임베딩은 석유와 같으며, 벡터 데이터베이스는 고차원 데이터를 처리하고 유사성 검색을 실행하는 데 능숙한 정교한 정유 공장으로 부상했습니다.

최고 경영진에게 생성형 인공지능은 단순히 화제가 되는 용어를 넘어서 하나의 전략입니다. 개발자에게 있어 벡터 데이터베이스의 가장 큰 매력은 효율성입니다. 기존 데이터베이스에서는 특히 방대한 데이터 세트를 처리할 때 관련 데이터를 가져오기 위해 복잡한 쿼리 구조가 필요할 수 있습니다. 벡터 데이터베이스는 이를 단순화하여 개발자가 유사성을 기반으로 데이터를 검색할 수 있도록 하여 코드의 복잡성을 줄이고 데이터 검색에 걸리는 시간을 단축시킵니다.#벡터 데이터베이스 사용 사례 샘플

비정형 데이터, 인코더, 벡터 저장소를 포함한 벡터 검색을 설명하는 이미지.

출처: Medium

이미지 및 동영상 인식: 시각적 콘텐츠가 사람들의 시각 문화를 지배하고 있는 가운데, 벡터 데이터베이스가 빛을 발하고 있습니다. 벡터 데이터베이스는 방대한 이미지와 동영상 저장소를 샅샅이 뒤져 주어진 입력과 매우 유사한 것을 찾아내는 데 능숙합니다. 이는 단순히 픽셀 단위로 일치시키는 것이 아니라 근본적인 패턴과 특징을 이해하는 것입니다. 이러한 기능은 얼굴 인식, 물체 감지, 심지어 미디어 플랫폼의 저작권 침해 감지 같은 애플리케이션에 매우 중요합니다.

자연어 처리 및 텍스트 검색: 정확한 텍스트 매칭은 동의어, 의역, 문맥으로 인해 어려운 작업이 될 수 있습니다. 그러나 벡터 데이터베이스는 구문이나 문장의 의미적 본질을 파악할 수 있기 때문에 문구상으로는 동일하지 않지만 문맥상 유사한 일치 항목을 식별할 수 있습니다. 이는 챗봇에 있어 획기적인 기능으로, 챗봇이 사용자 쿼리에 적절하게 응답할 수 있도록 해줍니다. 마찬가지로 검색 엔진은 보다 관련성 높은 결과를 제공하여 사용자 경험을 향상시킬 수 있습니다.

추천 시스템: 벡터 데이터베이스는 개인화에서 중추적인 역할을 합니다. 이러한 데이터베이스는 사용자 선호도를 파악하고 패턴을 분석하여 청취자의 취향에 맞는 노래를 추천하거나 쇼핑객의 선호도에 맞는 상품을 추천할 수 있습니다. 유사성을 측정하고, 사용자의 마음을 사로잡는 콘텐츠나 제품을 제공하는 것이 핵심입니다.

떠오르는 애플리케이션: 벡터 데이터베이스의 영역은 계속 확장되고 있습니다. 의료 분야에서 벡터 데이터베이스는 분자 구조를 분석하여 잠재적인 치료 특성을 파악함으로써 신약 개발을 지원하고 있습니다. 금융 부문의 경우 벡터 데이터베이스는 이상 징후 탐지를 지원하여 사기 행위를 나타낼 수 있는 비정상적인 패턴을 찾아내고 있습니다.

생성형 인공지능이 부상하면서, 벡터 데이터베이스는 개발자가 복잡한 인공사진 청사진을 실용적이고 가치 중심적인 도구로 전환하는 데 도움을 주는 중요한 조력자로 부상하고 있습니다.

MongoDB Atlas Vector Search: 판도를 바꾸는 게임 체인저

MongoDB Atlas Vector Search는 MongoDB 개발자 데이터 플랫폼의 최신 추가 기능입니다. 이를 통해 고객은 모든 유형의 데이터에 대해 시맨틱 검색 및 생성형 인공지능으로 구동되는 지능형 애플리케이션을 구축할 수 있습니다.

그동안 이미지나 효율적인 유사도 검색과 같은 작업을 위해 벡터 데이터베이스를 찾는 개발팀은 기술 스택에 또 다른 도구를 추가하는 볼트온 벡터 데이터베이스를 선택하거나 검색 도구와 오픈 소스 솔루션을 혼용하는 딜레마에 직면해 있었습니다. 시맨틱 기능을 위해 전체 텍스트 검색을 사용하면 개발자는 종종 광범위한 동의어 매핑에 시달려야 했습니다. 한계는 분명했습니다. 사용자가 쿼리를 정확하게 입력하지 않으면 관련성 있는 결과를 얻을 수 없었습니다.

이러한 문제는 다음을 의미했습니다.

  • 감독해야 할 시스템이 추가됨.
  • 전문화된 기술 세트의 필요성.
  • 동의어 매핑을 지속적으로 업데이트해야 하는 정신적 부담감.
  • 부정확한 쿼리에 대한 수준 이하의 사용자 환경.
  • 귀중한 엔지니어링 시간을 핵심 업무에서 빼앗김.

Atlas Vector Search는 동영상부터 소셜 미디어 콘텐츠까지 다양한 데이터 유형을 처리할 수 있는 시맨틱 검색과 생성형 인공지능을 통해 더욱 강화된 애플리케이션의 설계 작업을 간소화합니다. MongoDB Atlas의 견고함을 활용하는 Vector Search를 통해 개발자는 통합 쿼리 인터페이스를 갖춘 신뢰할 수 있는 플랫폼에서 최첨단 연관성 기반 검색 도구를 만들 수 있습니다.

Vector Search는 동의어를 정의할 필요 없이 쿼리를 이해하는 데 필요한 지식을 MongoDB Atlas에 제공합니다. 사용자가 무엇을 찾고 있는지 모르는 경우에도 Vector Search는 쿼리의 의미에 따라 관련성 있는 결과를 반환할 수 있습니다. 예를 들어, '아이스크림'을 검색하면 사용자가 '선데' 아이스크림의 존재를 몰랐더라도 '선데'가 반환됩니다.

Vector Search를 사용하면 벡터 임베딩이 원본 데이터 및 메타데이터와 함께 Atlas에 저장됩니다. 이렇게 하면 벡터 데이터에 대한 모든 업데이트 또는 추가 사항이 즉시 동기화되어 아키텍처를 간소화하고 통합된 개발자 환경을 제공할 수 있습니다.

Vector Search를 사용하면 가장 강력한 벡터 검색 알고리즘 중 하나인 근사 k-최근접 이웃(또는 계층적 탐색 가능한 작은 세계 또는 HNSW, 그래프를 사용해 벡터 유사성을 찾는 'k-NN')을 사용해 데이터를 인덱싱하고 쿼리할 수 있습니다.

나선형 모델

다음과 같이 기존 검색 도구로는 해결할 수 없었던 사용 사례를 해결하는 대폭 개선된 검색 환경을 만들 수 있습니다.

  • 시맨틱 검색: 컨텍스트 기반 검색이 가능합니다. 예를 들어, '아이스크림'을 검색하면 미리 설정된 동의어 없이 '선데'와 같은 결과가 나올 수 있습니다.
  • 향상된 추천: 사용자가 잔디 깎는 기계를 검색할 경우, 시스템에서 관련 잔디 관리 항목을 제안할 수도 있습니다.
  • 다양한 미디어 검색: '행복한 가족'과 같은 용어와 연관된 이미지를 찾거나 특정 문구에 대한 오디오 로그를 검색하는 등, Vector Search는 모든 작업을 처리할 수 있습니다.
  • 하이브리드 검색: 벡터 검색의 강점과 기존의 전체 텍스트 검색을 결합하여 결과를 더욱 풍부하게 만듭니다.
  • LLM을 위한 장기 메모리: 대규모 언어 모델에 독점적인 비즈니스 데이터 컨텍스트를 제공하여 출력 정확도를 개선합니다.

Atlas Vector Search는 LlamaIndex 및 LangChain과 같은 널리 사용되는 애플리케이션 프레임워크와 호환됩니다. 또한 Google Vertex AI, AWS, Azure, Databricks와 같은 에코시스템 파트너와도 원활하게 통합되므로 독점 비즈니스 데이터를 통해 AI 기반 애플리케이션의 성능과 정확성이 향상됩니다.

Atlas Vector Search: 시맨틱 검색으로 구동되는 지능형 애플리케이션을 위한 도구

벡터 데이터베이스는 데이터 저장 및 검색에 대한 고유한 접근 방식을 통해 데이터베이스에 대한 기존 사고방식을 바꾸고 있습니다. 유사성 검색을 빠르게 수행할 수 있는 벡터 데이터베이스의 능력은 오늘날의 데이터 중심 세계에서 없어서는 안 될 필수 요소입니다. 또한 벡터 데이터베이스가 MongoDB Atlas의 성능 및 유연성과 결합되면 타의 추종을 불허하는 솔루션을 제공하게 됩니다.

Atlas Vector Search는 기존의 전체 텍스트 검색으로는 해결할 수 없는 시맨틱 검색, 이미지 검색, 유사성 검색과 같은 고급 사용 사례를 지원합니다. 개발자는 벡터 임베딩을 MongoDB에 저장하고, 기존 검색 기능을 기계 학습 모델로 보완하고, 벡터 임베딩을 쿼리하여 관련성 있고 맥락에 맞는 결과를 얻을 수 있습니다. 실전 테스트를 거친 완전 관리형 멀티클라우드 개발자 데이터 플랫폼인 Atlas를 사용하는 엔지니어링 리더는 한층 우려를 덜 수 있습니다.

추천 시스템, 검색 엔진 또는 빠르고 정확한 데이터 매칭이 필요한 애플리케이션을 구축할 때 벡터 데이터베이스와 MongoDB의 결합된 힘을 활용해 보세요. 미래는 벡터로 향하고 있습니다. MongoDB는 여러분이 그 미래를 헤쳐나갈 수 있도록 지원합니다.

FAQ

MongoDB Atlas Vector Search란 무엇인가요?

MongoDB Atlas Vector Search는 MongoDB 개발자 데이터 플랫폼에 최근 추가된 기능입니다. 이를 통해 고객은 모든 유형의 데이터에 대해 시맨틱 검색 및 생성형 인공지능으로 구동되는 지능형 애플리케이션을 구축할 수 있습니다.

근사 최근접 이웃 검색(Approximate Nearest Neighbor Search)이란 무엇인가요?
근사 최근접 이웃 검색은 쿼리로부터의 거리가 쿼리에 가장 가까운 지점으로부터의 거리보다 최대 c배까지 될 수 있는 지점들을 반환하도록 알고리즘에 허용하는 방식입니다. 즉, 반환되는 지점들은 쿼리 지점에서 가장 가까운 이웃 지점보다 최대 c배 더 멀리 떨어져 있을 수 있습니다. 이는 알고리즘이 충분히 좋은 이웃을 빠르게 찾을 수 있게 해주므로 유용합니다.
벡터 인덱스란 무엇인가요?
벡터 인덱스는 대규모 데이터 객체 데이터 세트의 벡터 임베딩을 저장하고 관리할 수 있도록 설계된 데이터 구조입니다.

MongoDB Atlas 시작하기

무료 체험판 다운로드