다음을 통해 공유


.NET용 벡터 데이터베이스 + AI

벡터 데이터베이스는 벡터 포함을 저장하고 관리하도록 설계되었습니다. 포함은 의미 체계적 뜻이 담긴 비숫자 데이터로 숫자를 표현한 것입니다. 단어, 문서, 이미지, 오디오 및 기타 유형의 데이터를 모두 벡터화할 수 있습니다. 포함을 사용하여 AI 모델이 입력의 의미를 이해하고 텍스트 요약, 상황별 관련 데이터 찾기 또는 텍스트 설명에서 이미지 만들기와 같은 비교 및 변환을 수행할 수 있도록 도울 수 있습니다.

예를 들어 다음 경우에서 벡터 데이터베이스를 사용할 수 있습니다.

  • 콘텐츠, 테마, 감정, 스타일을 기반으로 비슷한 이미지, 문서, 노래 식별.
  • 특성, 기능, 사용자 그룹을 기반으로 유사한 제품 식별.
  • 사용자 선호도를 기반으로 콘텐츠, 제품 또는 서비스 권장.
  • 다양한 선택 풀에서 복잡한 요구 사항을 충족할 수 있는 잠재적인 최상의 옵션 식별.
  • 주 패턴 또는 일반 패턴과 다른 데이터 이상 또는 사기 활동 식별.

벡터 데이터베이스는 속성 필드에서 정확히 일치하는 항목보다는 데이터 특성에 기반하여 유사한 항목을 찾는 벡터 검색 기능을 제공합니다. 벡터 검색은 Azure OpenAI 포함 모델과 같은 AI 포함 모델을 사용하여 만든 데이터 벡터 표현을 분석하여 작동합니다. 검색 프로세스는 데이터 벡터와 쿼리 벡터 사이의 거리를 측정합니다. 쿼리 벡터에 가장 가까운 데이터 벡터는 의미상 가장 유사한 것으로 확인된 벡터입니다.

Azure Cosmos DB for MongoDB vCore와 같은 일부 서비스는 데이터에 대한 네이티브 벡터 검색 기능을 제공합니다. 일부 데이터베이스는 데이터를 검색하고 인덱싱하여 벡터 검색 기능을 제공하는 Azure AI 검색과 같은 서비스를 사용하여 저장된 데이터를 인덱싱함으로써 벡터 검색으로 향상될 수 있습니다.

.NET 및 OpenAI를 사용하는 벡터 검색 워크플로

벡터 데이터베이스 및 벡터 검색 기능은 Azure OpenAI를 사용하는 RAG 패턴 워크플로에서 특히 유용합니다. 이 패턴을 사용하면 의미 체계적으로 풍부한 데이터 지식을 추가하여 AI 모델을 보강하거나 향상할 수 있습니다. 벡터 데이터베이스를 사용하는 일반적인 AI 워크플로의 단계는 다음과 같습니다.

  1. OpenAI 포함 모델을 사용하여 데이터에 대한 포함을 만듭니다.
  2. 벡터 데이터베이스 또는 검색 서비스에 포함을 저장하고 인덱싱합니다.
  3. 애플리케이션의 사용자 프롬프트를 포함으로 변환합니다.
  4. 데이터에서 벡터 검색을 실행하여 사용자 프롬프트 포함을 데이터베이스 포함과 비교합니다.
  5. GPT-35 또는 GPT-4와 같은 언어 모델을 사용하여 벡터 검색 결과에서 사용자 친화적 완성을 구성합니다.

이 흐름의 실습 예제를 보려면 .NET 앱에서 벡터 검색을 사용하여 RAG로 Azure OpenAI 구현 자습서를 방문하세요.

RAG 패턴의 기타 이점은 다음과 같습니다.

  • AI 모델에서 사용자 프롬프트에 대해 상황에 맞는 정확한 응답을 생성합니다.
  • LLM 토큰의 제한 극복 - 데이터베이스 벡터 검색을 통해 많은 작업이 수행됩니다.
  • 업데이트되는 데이터의 미세 조정 비용을 줄입니다.

사용 가능한 벡터 데이터베이스 솔루션

AI 애플리케이션은 종종 데이터 벡터 데이터베이스 및 서비스를 사용하여 관련성을 개선하고 사용자 지정된 기능을 제공합니다. 이러한 서비스 중 다수는 .NET용 네이티브 SDK를 제공하는 반면, 사용자 지정 코드를 통해 연결할 수 있는 REST 서비스를 제공하는 서비스도 있습니다. 의미 체계 커널은 각 SDK를 학습할 필요 없이 다양한 벡터 저장소를 사용할 수 있는 확장 가능한 구성 요소 모델을 제공합니다.

의미 체계 커널은 다음 벡터 데이터베이스 및 서비스에 대한 커넥터를 제공합니다.

벡터 서비스 의미 체계 커널 커넥터 .NET SDK
Azure AI 검색 Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB for MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL 서버 Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Database Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma 해당 없음
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
MongoDB Atlas 벡터 검색 Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone REST API
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Weaviate Microsoft.SemanticKernel.Connectors.Weaviate REST API

각 서비스의 설명서를 방문하여 .NET SDK 및 API 지원에 대해 알아봅니다.