다음을 통해 공유


벡터 검색을 위한 Azure 서비스 선택

벡터 검색은 데이터베이스에 저장된 정보를 벡터 모양으로 찾는 방법입니다. 벡터는 텍스트 또는 이미지와 같은 미디어의 특징이나 특징을 나타내는 숫자 그룹입니다. 벡터는 기존의 키워드(keyword) 기반 검색 방법보다 훨씬 발전된 것입니다. 정보 내의 의미 체계 관계를 이해하여 더 빠르고 정확한 결과를 제공합니다.

Azure는 벡터화된 데이터를 저장하고 검색하는 여러 가지 방법을 제공합니다. 이 문서는 애플리케이션에 대한 벡터 검색에 적합한 Azure 서비스를 이해하고 선택해야 하는 설계자와 개발자에게 도움이 됩니다.

이 문서에서는 벡터 검색 기능에 따라 다음 서비스를 비교합니다.

설계자와 개발자는 후보 서비스 선택 및 기능 매트릭스에서 시스템 요구 사항의 관점에서 사용 가능한 서비스를 비교해야 합니다.

후보 서비스 선택

이 섹션은 요구 사항에 가장 적합한 서비스를 선택하는 데 도움이 됩니다. 선택 범위를 좁히려면 먼저 시스템 요구 사항을 고려합니다.

핵심 요구 사항

벡터 검색에 적합한 Azure 서비스를 선택하는 데 도움이 되는 흐름도입니다.

기존 데이터베이스 솔루션 또는 Azure AI Search 서비스를 사용할지 결정할 때 요구 사항과 데이터에 대한 실시간 또는 실시간 벡터 검색을 수행할 수 있는지 여부를 고려합니다. 벡터화된 필드의 값을 자주 변경하고 변경 내용을 실시간으로 또는 거의 실시간으로 검색할 수 있어야 하는 경우 기존 관계형 또는 NoSQL 데이터베이스가 시나리오에 가장 적합합니다. 마찬가지로, 기존 데이터베이스를 사용하는 것이 성능 목표를 충족하는 데 가장 적합한 솔루션일 수 있습니다. 반면, 워크로드에 실시간 또는 거의 실시간 벡터 검색 가능성이 필요하지 않고 벡터 인덱스 관리를 수락하는 경우 AI Search가 매력적인 선택이 될 수 있습니다.

기존 데이터베이스 솔루션을 선택하는 경우 사용하기로 결정한 특정 유형의 데이터베이스 서비스는 주로 팀의 기술 집합과 현재 작동하는 데이터베이스에 따라 달라집니다. 예를 들어 MongoDB와 같은 특정 유형의 데이터베이스를 이미 사용하는 경우 동일한 유형의 데이터베이스를 사용하는 것이 시나리오에서 가장 쉬운 솔루션일 수 있습니다. 기능 매트릭스 섹션에 표시된 것처럼 각 데이터베이스 서비스에는 벡터 검색에 대한 몇 가지 고유한 기능과 제한 사항이 있습니다. 해당 정보를 검토하여 원하는 데이터베이스 유형이 필요한 기능을 지원하는지 확인합니다.

비용 문제가 원인인 경우 새 서비스 또는 데이터베이스 서비스의 다른 인스턴스를 도입하면 새로운 순 비용과 복잡성을 추가할 수 있으므로 기존 디자인을 포함하는 것이 시나리오에 가장 적합할 수 기본. 벡터 검색에 현재 데이터베이스를 사용하면 전용 서비스를 사용하는 것보다 비용이 적게 들 수 있습니다.

AI Search 대신 기존 데이터베이스를 사용하도록 선택하는 경우 일부 고급 검색 기능은 기본적으로 사용할 수 없습니다. 예를 들어 재전송 또는 하이브리드 검색을 수행하려면 T-SQL(Transact-SQL) 또는 기타 코딩을 통해 해당 기능을 사용하도록 설정합니다.

기능 매트릭스

이 섹션의 표에는 기능의 주요 차이점이 요약되어 있습니다.

기본 기능

벡터 데이터 형식, ANN(인공 신경망) 벡터 인덱스, 벡터 차원 제한, 여러 벡터 필드 및 여러 벡터 인덱스에 대한 기본 지원은 서비스 간에 때때로 다릅니다. 워크로드 요구 사항에는 이러한 특정 기능 중 일부가 필요할 수 있습니다. 다음 표와 같이 각 Azure 서비스의 기본 벡터 기능을 이해합니다.

기능 Azure Cosmos DB for PostgreSQL Azure Cosmos DB for MongoDB(vCore) Azure Database for PostgreSQL(Flex) Azure AI 검색 Azure SQL Database
기본 제공 벡터 검색 1 2 1 3 아니요 4
벡터 데이터 형식 Yes 아니요 5
차원 제한 6 16,000 7 또는 2,000 2,000 16,000 7 또는 2,000 3,072 제한 없음
여러 벡터 필드 없음 해당 없음
여러 벡터 인덱스 없음 해당 없음
  1. pgvector는 Azure Database for PostgreSQL의 확장인 벡터 검색을 지원합니다.
  2. Azure Cosmos DB for MongoDB(vCore)의 포함에서 벡터 검색을 사용합니다.
  3. Azure AI Search의 벡터입니다.
  4. 벡터 검색은 일류 기능으로 제공되지 않지만 cosine 유사성위해 columnstore 인덱스 및 함수를 사용하여 구현할 수 있습니다.
  5. 테이블 행에 대한 피벗 해제 차원(배열)입니다. 벡터는 columnstore 인덱스로 저장됩니다.
  6. OpenAI의 모델 포함, text-embedding-ada-002 및 text-embedding-3-small의 경우 1536, text-embedding-3-large의 경우 3072를 모두 포함합니다. Azure AI Vision 멀티모달 포함 모델의 경우 이미지와 텍스트 모두에 대한 1024입니다.
  7. 벡터는 최대 16,000개의 차원을 가질 수 있습니다. 그러나 IVFFlat(플랫 압축) 및 HNSW(계층적 탐색 가능 Small World)와 함께 반전된 파일을 사용하여 인덱싱하면 최대 2,000차원의 벡터가 지원됩니다.

검색 방법

워크로드는 벡터 검색을 전체 텍스트 검색 또는 하이브리드 검색(전체 텍스트 검색 또는 의미 체계 검색 및 벡터 검색)과 결합해야 하는 경우가 많습니다. 하이브리드 검색 및 재전송의 조합은 워크로드에 대한 높은 정확도를 달성합니다. 고유한 코드를 사용하여 하이브리드 검색 및 재전송을 수동으로 구현하거나 벡터 저장소에서 이 워크로드 요구 사항을 지원하는 방법을 고려할 수 있습니다.

검색 방법 Azure Cosmos DB for PostgreSQL Azure Cosmos DB for MongoDB(vCore) Azure Database for PostgreSQL(Flex) Azure AI 검색 Azure SQL Database
전체 텍스트 검색 1 2 1 3 4
하이브리드 검색 5 아니요 5 6 7
기본 제공 재떨이 아니요 없음 아니요 8 아니요
  1. PostgreSQL 전체 텍스트 검색
  2. Azure Cosmos DB for MongoDB(vCore)에서 텍스트 인덱스를 사용하여 검색하고 쿼리합니다.
  3. 전체 텍스트 검색시작합니다.
  4. SQL Server의 벡터 데이터 입니다.
  5. 일류 기능으로 제공되지 않지만 샘플 코드가 제공됩니다.
  6. 하이브리드 검색(전체 텍스트 검색, 벡터 검색 및 의미 체계 순위의 조합) 은 일류 기능으로 제공됩니다.
  7. Azure SQL 데이터베이스 및 SQL Server에 대한 하이브리드 검색 예제 입니다.
  8. 의미 체계 순위라는 재전송은 전체 텍스트 검색 및 벡터 검색의 결과를 다시 표시하기 위한 일류 기능입니다.

벡터 데이터 인덱싱 알고리즘

벡터 데이터 인덱싱은 벡터를 효율적으로 저장하고 검색하는 기능입니다. 이 기능은 인덱싱이 데이터 원본에 대한 유사성 검색 및 가장 가까운 인접 쿼리의 속도와 정확도에 영향을 주므로 중요합니다.

인덱스는 일반적으로 Ek-NN(완전 k-가장 가까운 인접 항목) 또는 ANN 알고리즘을 기반으로 합니다. Ek-NN은 모든 데이터 요소에 대해 하나씩 철저한 검색을 수행하고 가장 가까운 정확한 K 인접 항목을 반환합니다. Ek-NN은 적은 양의 데이터로 밀리초 단위로 작동하지만 많은 양의 데이터에 대기 시간이 발생할 수 있습니다.

HNSWIVFFlat 은 ANN 알고리즘 인덱스입니다. 적절한 인덱싱 전략을 선택하려면 데이터 세트의 특성, 쿼리의 특정 요구 사항 및 사용 가능한 리소스와 같은 다양한 요소를 신중하게 고려해야 합니다. IVFFlat은 하드웨어 리소스가 제한되거나 쿼리 볼륨이 높지 않은 환경에서 효과적입니다. HNSW는 빠른 쿼리 응답이 필요하고 데이터 세트의 변경에 적응할 수 있는 시스템에서 탁월합니다.

다음 표에서 제공되는 벡터 데이터 인덱싱 종류를 이해합니다.

인덱싱 방법 Azure Cosmos DB for PostgreSQL Azure Cosmos DB for MongoDB(vCore) Azure Database for PostgreSQL(Flex) Azure AI 검색 Azure SQL Database
철저한 k-가장 가까운 이웃(Ek-NN)
HNSW(Hierarchical Navigable Small World) 예(미리 보기)1 아니요
IVFFlat 없음 아니요
기타 - 벡터 필드 제한 2
벡터 인덱스 제한 3
- - 네이티브 벡터 인덱스 지원없음 4
  1. MongoDB용 Azure Cosmos DB - 벡터 검색 개요입니다.
  2. 컨테이너당 하나의 벡터 필드만 사용할 수 있습니다.
  3. 컨테이너당 하나의 벡터 인덱스만 사용할 수 있습니다.
  4. Azure SQL Database에는 벡터 데이터 형식이 없습니다. 그러나 열에 벡터를 저장할 수 있습니다. 각 행은 벡터의 각 요소를 보유합니다. 그런 다음 columnstore 인덱스를 사용하여 벡터를 효율적으로 저장하고 검색할 수 있습니다.

유사성 및 거리 계산 기능

벡터 검색을 위한 Cosine 유사성, 점 제품유클리드 거리 계산 방법이 있습니다. 이러한 메서드는 두 벡터 간의 유사성 또는 두 벡터 사이의 거리를 계산하는 데 사용됩니다.

예비 데이터 분석은 메트릭과 유클리드 거리 모두에서 이점을 얻을 수 있으므로 데이터 구조에 대한 다양한 인사이트를 추출할 수 있는 반면 텍스트 분류는 일반적으로 유클리드 거리에서 더 잘 수행됩니다. 지정된 텍스트와 가장 유사한 텍스트를 검색하면 일반적으로 코사인 유사성이 더 잘 작동합니다.

Azure OpenAI 서비스 포함은 문서와 쿼리 간의 컴퓨팅 유사성에 대한 코사인 유사성을 사용합니다.

기본 제공 벡터 비교 계산 Azure Cosmos DB for PostgreSQL Azure Cosmos DB for MongoDB(vCore) Azure Database for PostgreSQL(Flex) Azure AI 검색 Azure SQL Database
코사인 유사성 Yes 1
유클리드 거리(L2 거리) Yes 1
점 제품 Yes 1
  1. Azure SQL 데이터베이스 및 SQL Server에 대한 거리 계산 예제 입니다.

Azure OpenAI 및 기타 구성 요소와 통합

벡터 검색을 구현할 때 다른 Microsoft 구성 요소와의 연결을 고려할 수도 있습니다. 예를 들어 Azure OpenAI Service를 사용하면 벡터 유사성 검색을 위한 데이터 및 입력 쿼리에 대한 벡터를 만들 수 있습니다.

기능 Azure Cosmos DB for PostgreSQL Azure Cosmos DB for MongoDB(vCore) Azure Database for PostgreSQL(Flex) Azure AI 검색 Azure SQL Database
Azure OpenAI 서비스 - 사용자 고유의 데이터 추가 아니요 1 아니요 2 아니요
Azure OpenAI를 사용하여 벡터 포함 아니요 아니요 3 4 5
프롬프트 흐름과 통합 아니요 없음 아니요 6 아니요
의미 체계 커널과 통합 7 8 7 9 10
  1. Azure Cosmos DB for MongoDB(vCore)는 데이터에서 Azure OpenAI의 데이터 원본으로 지원됩니다.
  2. Azure AI Search는 데이터에서 Azure OpenAI의 데이터 원본 으로 지원됩니다.
  3. Azure AI 확장(미리 보기) 을 사용할 수 있습니다.
  4. Azure AI Search는 청크 분할된 텍스트를 벡터화하는 기술을 제공합니다.
  5. 포함 모델 배포대한 저장 프로시저를 만들 수 있습니다.
  6. 벡터 DB 조회 도구에서 벡터 데이터베이스로 지원됩니다.
  7. 메모리 커넥터 및 벡터 데이터베이스 커넥터(C#)로 지원됩니다.
  8. 벡터 데이터베이스 커넥터(Python)로 지원됩니다.
  9. 메모리 커넥터 및 벡터 데이터베이스 커넥터(C#, Python)로 지원됩니다.
  10. 메모리 커넥터지원됩니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

Azure AI Search를 사용하여 지식 마이닝을 구현합니다. 이 학습 경로에서는 Azure AI Search를 사용하는 방법을 살펴봅니다.