벡터 임베딩은 시맨틱 유사성이 n차원 벡터 공간에서 거리로 표현되는 방식으로 콘텐츠를 매핑하기 때문에 비정형 데이터의 유용한 표현입니다. 이렇게 하면 유사성을 검색하거나, 기술 자료에서 관련 콘텐츠를 찾거나, 사용자가 생성한 복잡한 쿼리와 가장 일치하는 항목을 쉽게 검색할 수 있습니다.
일부 특수 데이터베이스는 벡터 임베딩만 지원하지만, 벡터 임베딩 외에도 다른 많은 데이터와 쿼리 유형을 지원하는 데이터베이스도 있습니다. 풍부한 실제 데이터를 기반으로 생성형 AI 애플리케이션을 빌드하려면 다양한 데이터 유형 및 쿼리 유형을 지원하는 것이 중요합니다. 벡터 임베딩을 사용하는 시맨틱 쿼리의 이점이 명확해짐에 따라 대부분의 데이터베이스가 벡터 지원을 추가할 것입니다. 앞으로는 모든 데이터베이스가 벡터 데이터베이스가 될 것입니다.
Vertex AI의 벡터 검색이 고성능 생성형 AI 애플리케이션 빌드를 지원하는 방법을 알아보세요. Vertex AI의 벡터 검색은 Google 연구팀에서 개발한 확장 가능하고 효율적인 벡터 검색 기술인 ScaNN(Scalable Nearest Neighbor Search)을 기반으로 하므로 대규모 데이터 세트와 실시간 검색 요구사항을 처리하는 데 이상적입니다. 이 동영상에서 벡터 검색 및 임베딩에 대해 자세히 알아보고 빠른 시작 가이드로 시작하세요.
다른 데이터 유형과 마찬가지로 대규모 벡터 집합을 효율적으로 쿼리하려면 색인이 필요하며 벡터 데이터베이스는 벡터의 특수 색인을 지원합니다. 텍스트 또는 숫자와 같이 단일 논리 순서를 사용하는 다른 많은 데이터 유형과 달리 벡터에는 실제 사용 사례에 해당하는 자연 순서가 없습니다. 대신 가장 일반적인 사용 사례는 내적, 코사인 유사성, 유클리드 거리와 같은 거리 측정항목 측면에서 다른 벡터에 가장 가까운 k 벡터를 쿼리하는 것입니다. 이러한 종류의 쿼리를 'k(정확한) 최근접 이웃' 또는 'KNN' 쿼리라고 합니다.
안타깝게도, 효율적인 KNN 쿼리를 위한 일반적인 알고리즘은 없습니다. 주어진 벡터 q에 대해 k개의 최근접 이웃을 찾기 위해 q와 다른 모든 벡터 사이의 거리를 계산해야 합니다. 하지만 k개의 근사 최근접 이웃('ANN')을 찾기 위한 효율적인 알고리즘이 있습니다. 이러한 ANN 알고리즘은 속도를 크게 향상시키기 위해 약간의 정확도(구체적으로 재현율, 알고리즘이 실제 최근접 이웃 중 일부를 생략할 수 있음)를 희생합니다. 많은 사용 사례에서 이미 벡터 임베딩 계산 프로세스를 다소 부정확하게 취급하고 있기 때문에 성능을 크게 개선하기 위해 재현율 손실을 어느 정도 감수할 수 있습니다.
다른 벡터로부터의 거리를 기반으로 벡터에 대한 ANN 쿼리를 사용 설정하기 위해, 벡터 색인은 근처 벡터의 클러스터가 일반적으로 함께 그룹화되는 방식으로 구성됩니다. 공통 벡터 색인 유형은 각 목록이 지정된 클러스터의 벡터를 나타내는 목록 집합으로 구성될 수 있습니다. 각 벡터가 몇 개의 최근접 이웃과 연결된 그래프, 브랜치가 상위 노드 클러스터의 하위 집합에 해당하는 트리 등으로 구성될 수 있습니다. 각 색인 유형은 조회 속도, 재현율, 메모리 소비, 색인 생성 시간 및 기타 요소 간의 절충안을 제공합니다.
그러나 대부분의 데이터베이스 쿼리는 시맨틱 유사성만을 기준으로 하지 않습니다. 예를 들어 사용자가 '아이와 강아지에 관한 마음 따뜻한 이야기'와 유사한 설명의 책을 검색하면서 문고판 형식의 20달러 미만 도서로 제한하고자 할 수 있습니다. 특수 목적 벡터 데이터베이스는 제한된 추가 필터링 기능('제한'이라고도 함)을 제공할 수 있는 반면, 범용 데이터베이스는 SQL과 같은 표준 언어를 사용하여 풍부한 조건자를 작성할 수 있으며, 이를 벡터 유사성 순서 지정과 결합하여 매우 강력하고 표현력이 풍부한 쿼리를 만들 수 있습니다.
벡터 임베딩이 구조화되지 않은 데이터의 시맨틱 의미를 표현하는 기능과 벡터 데이터베이스가 근처 벡터를 효율적으로 검색하는 기능을 결합하여 중요한 사용 사례를 많이 창출할 수 있습니다.
벡터 데이터베이스는 관계형 조건자 또는 텍스트 검색 기술만으로는 해결하기 어렵거나 불가능한 다양한 문제를 해결하는 데 사용할 수 있으므로 중요합니다.
벡터 데이터베이스는 관련 채팅 기록이나 비즈니스별 비정형 콘텐츠와 같은 중요한 비즈니스 및 애플리케이션 컨텍스트를 쉽게 검색하여 LLM이 복잡한 사용자 쿼리에 응답하는 데 도움이 되므로 생성형 AI 애플리케이션에 적합합니다.
또한 자연어를 사용하여 콘텐츠를 쉽게 검색하거나 예시로 쉽게 쿼리할 수도 있습니다.