Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Векторные базы данных хранят векторные внедрения и управляют ими. Внедрение — это числовые представления данных, которые сохраняют семантический смысл. Слова, документы, изображения, звук и другие типы данных могут быть векторизированы. Вы можете использовать внедрение, чтобы помочь модели искусственного интеллекта понять смысл входных данных, чтобы они могли выполнять сравнения и преобразования, такие как суммирование текста, поиск контекстно связанных данных или создание изображений из текстовых описаний.
Например, можно использовать векторную базу данных для:
- Определите похожие изображения, документы и песни на основе их содержимого, тем, тональности и стилей.
- Определите аналогичные продукты на основе их характеристик, функций и групп пользователей.
- Рекомендуем содержимое, продукты или службы на основе пользовательских настроек.
- Определите лучшие потенциальные варианты из большого пула вариантов для удовлетворения сложных требований.
- Определите аномалии данных или мошеннические действия, которые отличаются от преобладающих или нормальных шаблонов.
Общие сведения о поиске векторов
Векторные базы данных предоставляют возможности поиска векторов для поиска похожих элементов на основе их характеристик данных, а не по точным совпадениям в поле свойства. Поиск векторов работает путем анализа векторных представлений данных, созданных с помощью модели внедрения ИИ, например моделей внедрения Azure OpenAI. Процесс поиска измеряет расстояние между векторами данных и вектором запроса. Векторы данных, ближайшие к вектору запросов, являются наиболее похожими семантикой.
Некоторые службы, такие как Azure Cosmos DB для виртуальных ядер MongoDB, предоставляют собственные возможности поиска векторов для данных. Другие базы данных можно улучшить с помощью векторного поиска, индексируя сохраненные данные с помощью службы, такой как поиск ИИ Azure, которая может проверять и индексировать данные для предоставления возможностей векторного поиска.
Рабочие процессы поиска векторов с помощью .NET и OpenAI
Векторные базы данных и их функции поиска особенно полезны в рабочих процессах шаблонов RAG с помощью Azure OpenAI. Этот шаблон позволяет расширить модель ИИ с помощью дополнительных семантически богатых знаний о данных. Общий рабочий процесс ИИ с использованием векторных баз данных включает следующие действия.
- Создайте эмбеддинги для ваших данных с помощью модели OpenAI.
- Храните и индексируйте векторные представления в векторных базах данных или в службе поиска.
- Преобразуйте запросы пользователей из приложения в эмбеддинги.
- Выполните векторный поиск по вашим данным, сравнивая эмбеддинг пользовательского запроса с эмбеддингами в вашей базе данных.
- Используйте языковую модель, например gpt-4o, чтобы собрать понятное завершение из результатов векторного поиска.
Чтобы получить практический пример этого процесса, обратитесь к руководству по внедрению Azure OpenAI с использованием векторного поиска в приложении .NET.
К другим преимуществам шаблона RAG относятся следующие:
- Создавайте контекстно релевантные и точные ответы на запросы пользователей из моделей ИИ.
- Преодолеть ограничения токенов LLM — основная работа выполняется с помощью векторного поиска в базе данных.
- Уменьшите затраты на частое уточнение обновленных данных.
Библиотека Microsoft.Extensions.VectorData
Пакет 📦 Microsoft.Extensions.VectorData.Abstractions предоставляет единый слой абстракций для взаимодействия с хранилищами векторов в .NET. Эти абстракции позволяют создавать код для одного API и переключать базовое хранилище векторов с минимальными изменениями в приложении.
Библиотека предоставляет следующие ключевые возможности:
- Единая модель данных: определите модель данных после использования атрибутов .NET и используйте ее в любом поддерживаемом хранилище векторов.
- Операции CRUD: создание, чтение, обновление и удаление записей в векторном хранилище.
- Векторный и текстовый поиск: запрос записей по семантическому сходству с помощью векторного поиска или ключевого слова с помощью текстового поиска.
- Управление коллекциями: создание, перечисление и удаление коллекций (таблиц или индексов) в векторном хранилище.
Ключевые абстракции
Библиотека Microsoft.Extensions.VectorData.Abstractions предоставляет следующие основные абстрактные классы:
- VectorStore: класс верхнего уровня для векторной базы данных. Используйте его для получения коллекций и управления ими.
-
VectorStoreCollection<TKey,TRecord>: представляет именованную коллекцию записей в хранилище векторов. Используйте его для выполнения операций CRUD и поиска. Также реализуется
IVectorSearchable<TRecord>. - IKeywordHybridSearchable<TRecord>: реализованы коллекциями, поддерживающими гибридный поиск, сочетая сходство векторов с сопоставлением ключевых слов.
Пошаговое руководство по определению модели данных, операциям CRUD, векторным поиском, фильтрацией, гибридным поиском и внедрением см. в разделе "Использование векторных хранилищ в приложениях .NET AI".
Поставщики хранилища векторов
Пакет Microsoft.Extensions.VectorData.Abstractions определяет абстракции и отдельные пакеты поставщиков предоставляют реализации для конкретных векторных баз данных. Выберите поставщик, соответствующий векторной базе данных, например Microsoft.SemanticKernel.Connectors.AzureAISearch.
Замечание
Несмотря на включение "SemanticKernel" в имена пакетов, эти провайдеры не имеют ничего общего с семантическим ядром и могут использоваться в любой части .NET, включая Agent Framework.
Все поставщики реализуют одинаковые VectorStore и VectorStoreCollection<TKey,TRecord> абстрактные классы, поэтому вы можете переключаться между ними, не изменяя логику приложения.
Подсказка
Используйте поставщик данных в памяти (Microsoft.SemanticKernel.Connectors.InMemory) во время разработки и тестирования. Он не требует какой-либо внешней службы или конфигурации, и его можно переключить на поставщика рабочей среды позже.