Поделиться через


Векторные базы данных для .NET + AI

Векторные базы данных предназначены для хранения векторных внедрения и управления ими. Внедрение — это числовые представления нечисловых данных, которые сохраняют семантический смысл. Слова, документы, изображения, звук и другие типы данных могут быть векторизированы. Вы можете использовать внедрение, чтобы помочь модели искусственного интеллекта понять смысл входных данных, чтобы они могли выполнять сравнения и преобразования, такие как суммирование текста, поиск контекстно связанных данных или создание изображений из текстовых описаний.

Например, можно использовать векторную базу данных для:

  • Определите похожие изображения, документы и песни на основе их содержимого, тем, тональности и стилей.
  • Определите аналогичные продукты на основе их характеристик, функций и групп пользователей.
  • Рекомендуем содержимое, продукты или службы на основе пользовательских настроек.
  • Определите лучшие потенциальные варианты из большого пула вариантов для удовлетворения сложных требований.
  • Определите аномалии данных или мошеннические действия, которые отличаются от преобладающих или нормальных шаблонов.

Векторные базы данных предоставляют возможности поиска векторов для поиска похожих элементов на основе их характеристик данных, а не по точным совпадениям в поле свойства. Поиск векторов работает путем анализа векторных представлений данных, созданных с помощью модели внедрения ИИ, такой как модели внедрения Azure OpenAI. Процесс поиска измеряет расстояние между векторами данных и вектором запроса. Векторы данных, близкие к вектору запросов, являются наиболее похожими семантикой.

Некоторые службы, такие как Azure Cosmos DB для виртуальных ядер MongoDB, предоставляют собственные возможности поиска векторов для данных. Другие базы данных можно улучшить с помощью векторного поиска, индексируя сохраненные данные с помощью службы, такой как поиск ИИ Azure, которая может проверять и индексировать данные для предоставления возможностей векторного поиска.

Рабочие процессы поиска векторов с помощью .NET и OpenAI

Векторные базы данных и их функции поиска особенно полезны в рабочих процессах шаблонов RAG с помощью Azure OpenAI. Этот шаблон позволяет расширить или улучшить модель ИИ с помощью дополнительных семантически богатых знаний о данных. Распространенный рабочий процесс ИИ, использующий векторные базы данных, может включать следующие действия.

  1. Создайте внедрение данных с помощью модели внедрения OpenAI.
  2. Хранение и индексирование внедрения в векторной базы данных или службы поиска.
  3. Преобразуйте запросы пользователей из приложения в внедрение.
  4. Выполните векторный поиск по данным, сравнивая запрос пользователя на внедрение в базу данных.
  5. Используйте языковую модель, например GPT-35 или GPT-4, для сборки понятного завершения из результатов векторного поиска.

Ознакомьтесь с руководством по реализации Azure OpenAI с помощью RAG с помощью векторного поиска в приложении .NET для примера этого потока.

К другим преимуществам шаблона RAG относятся следующие:

  • Создавайте контекстно релевантные и точные ответы на запросы пользователей из моделей ИИ.
  • Преодолевая ограничения маркеров LLM, выполняется тяжелый подъем с помощью поиска вектора базы данных.
  • Уменьшите затраты на частое уточнение обновленных данных.

Доступные решения для баз данных векторов

Приложения ИИ часто используют базы данных и службы векторов данных для улучшения релевантности и предоставления настраиваемых функций. Многие из этих служб предоставляют собственный пакет SDK для .NET, а другие предлагают службу REST, к ней можно подключиться через пользовательский код. Семантический ядро предоставляет расширяемую модель компонентов, которая позволяет использовать различные векторные хранилища без необходимости изучать каждый пакет SDK.

Семантический ядро предоставляет соединители для следующих векторных баз данных и служб:

Векторная служба Соединитель семантического ядра Пакет SDK для .NET
Поиск с использованием ИИ Azure 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
База данных SQL Azure Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Цветность Microsoft.SemanticKernel.Connectors.Chroma Неприменимо
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Милвус 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

Ознакомьтесь с документацией по каждой соответствующей службе, чтобы узнать о поддержке пакета SDK для .NET и API.