오라클 AI 벡터 검색

최근 출시된 Oracle Database 23ai의 핵심 기능 AI 벡터 검색(AI Vector Search)에 대해 알아보겠습니다. 데이터베이스에서 의미(semantics) 기반 검색을 가능하게 하는 획기적인 기능입니다.

전통적인 키워드 검색 방식은 단어 일치에만 집중하여 의미적으로 유사한 내용을 찾기는 어려웠습니다. 예를 들어, “사과”와 “과일”은 키워드 검색에서는 별개로 취급되지만, 의미적으로는 밀접한 관련이 있습니다. AI 벡터 검색은 이러한 한계를 극복하는 방안입니다.

벡터 데이터란 무엇일까요?

AI 벡터 검색의 핵심은 벡터 데이터입니다. 벡터 데이터는 문서, 이미지, 사운드 등 다양한 데이터를 고차원 벡터로 표현한 것입니다.

각 차원은 데이터의 특징을 나타내며, 벡터 간의 거리는 데이터 간의 유사도를 의미합니다. “사과”와 “과일”은 키워드로는 다르지만, 벡터 공간에서는 서로 가까운 위치에 존재하여 유사성을 쉽게 파악할 수 있습니다.

예시:

  • 문서: 문서의 단언, 문장, 단어 빈도 등을 이용하여 벡터로 변환
  • 이미지: 이미지의 색상, 텍스처 등을 이용하여 벡터로 변환
  • 사운드: 사운드의 주파수, 진폭 등을 이용하여 벡터로 변환

오라클 23ai는 새로운 VECTOR 데이터 타입을 제공하여, 이러한 벡터 데이터를 데이터베이스에 직접 저장하고 관리할 수 있도록 지원합니다. 따라서 별도로 벡터 데이터베이스를 운영할 필요 없이 기존 데이터베이스와 통합할 수 있습니다.

AI 벡터 검색의 강력한 기능들

오라클 23ai의 AI 벡터 검색은 다음과 같은 강력한 기능들을 제공합니다.

  • 벡터 인덱스(Vector Indexes): 고차원 벡터 데이터를 효율적으로 저장하고 검색하기 위한 특수 인덱스입니다. 유사한 벡터들을 가까이 배치하여 검색 속도를 획기적으로 향상시킵니다. 전통적인 데이터베이스 인덱스와 달리, 대규모 데이터셋에 대한 근사적인 유사도 검색에 특화되어 있습니다.
  • SQL 실행 지원: SQL에서 벡터 인덱스를 이용한 유사도 검색을 쉽게 수행할 수 있습니다. 기존의 SQL 조건 검색과 벡터 검색을 결합하여 보다 정교한 검색 쿼리를 작성할 수 있습니다. 다음은 예시 쿼리입니다.
SELECT document_id, document_text
FROM   documents
WHERE  author = :v1
ORDER BY cosine_distance(document_vector, search_vector) ASC
FETCH FIRST 10 ROWS ONLY;
  • 유틸리티 API: 텍스트 데이터를 벡터로 변환하는 과정을 간소화하는 유틸리티 함수들을 제공합니다. VECTOR_CHUNKS 함수는 긴 텍스트를 여러 조각으로 나누어 처리하는 데 사용할 수 있으며 사용자 정의 알고리즘을 작성할 필요 없이 효율적인 벡터 생성을 지원합니다.
  • ONNX 모델 지원: ONNX(Open Neural Network Exchange) 형식의 머신러닝 외부 모델을 데이터베이스에 직접 로드하여 사용할 수 있습니다. 다양한 머신러닝 모델을 활용하여 벡터 임베딩을 생성하고, 데이터베이스 내에서 직접 추론(Inference)을 수행할 수 있습니다.

AI 벡터 검색의 활용 사례

AI 벡터 검색은 다양한 분야에서 활용될 수 있습니다.

  • 추천 시스템: 사용자의 선호도를 벡터로 표현하여 유사한 아이템을 추천
  • 이미지 검색: 이미지의 유사도를 기반으로 유사한 이미지 검색
  • 문서 검색: 의미적으로 유사한 문서 검색 및 요약
  • 사기탐지: 이상 행위 패턴을 벡터로 표현하여 사기 거래 탐지
  • 고객 세분화: 고객 데이터를 벡터로 표현하여 유사한 고객 그룹 분류

결론

오라클 23ai의 AI 벡터 검색은 단순한 키워드 매칭을 넘어 데이터의 의미를 이해하고 심층적인 분석을 수행하는 데 도움을 주는 혁신적인 기능입니다.

앞으로는 AI 기술이 더욱 중요한 시대인 만큼 향후 더욱 다양한 활용 사례가 등장할 것으로 기대됩니다.

위로 스크롤