Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поиск по искусственному интеллекту Azure не размещает модели внедрения, поэтому вы отвечаете за создание векторов для входных и выходных данных запросов. Воспользуйтесь одним из перечисленных ниже подходов.
| Подход | Описание |
|---|---|
| Встроенная векторизация | Используйте встроенные блоки данных и векторизацию в службе "Поиск ИИ Azure". Этот подход зависит от индексаторов, наборов навыков и встроенных или пользовательских навыков, которые указывают на внешние модели внедрения, такие как Microsoft Foundry. |
| Векторизация вручную | Самостоятельно управляйте блоками данных и векторизации. Для индексирования вы отправляете превекторные документы в векторные поля в индексе поиска. Для запроса вы предоставляете предварительно компилированные векторы поисковой системе. Демонстрации этого подхода см. в репозитории GitHub azure-search-vector-samples . |
Рекомендуется интегрировать векторизацию для большинства сценариев. Хотя вы можете использовать любую поддерживаемую модель внедрения, в этой статье используются модели Azure OpenAI для иллюстрации.
Использование моделей встраивания в векторных запросах
Внедрение моделей создает векторы для входных и выходных данных запроса. К входным данным запроса относятся:
Текст или изображения, преобразованные в векторы во время обработки запросов. В рамках интегрированной векторизации векторизатор выполняет эту задачу.
Предварительно компьютированные векторы. Эти векторы можно создать, передав входные данные запроса в модель внедрения. Чтобы избежать ограничения скорости, реализуйте логику повторных попыток в рабочей нагрузке. В демонстрации Python используется тенькость.
На основе входных данных запроса поисковая система получает соответствующие документы из индекса поиска. Эти документы представляют собой выходные данные запроса.
Индекс поиска должен содержать документы с одним или несколькими полями векторов, заполненными внедрением. Эти внедрения можно создать с помощью интегрированной или ручной векторизации. Чтобы обеспечить точные результаты, используйте ту же модель внедрения для индексирования и запроса.
Советы по внедрению интеграции модели
Определите варианты использования. Оцените конкретные варианты использования, когда интеграция модели внедрения для функций векторного поиска добавляет значение в решение поиска. Примеры включают многомодальный поиск или сопоставление содержимого изображения с текстовым содержимым, многоязычным поиском и поиском сходства.
Разработка стратегии фрагментирования. Модели внедрения имеют ограничения на количество принятых маркеров, поэтому для больших файлов требуется блокирование данных .
Оптимизируйте затраты и производительность. Поиск векторов является ресурсоемким и подвергается максимальным ограничениям, поэтому векторизирует только поля, содержащие семантические значения. Уменьшите размер векторов , чтобы сохранить больше векторов для одной и той же цены.
Выберите правильную модель внедрения. Выберите модель для вашего варианта использования, например вставки слов для текстовых поисков или внедрения изображений для визуального поиска. Рассмотрим предварительно обученные модели, такие как text-embedding-ada-002 из OpenAI или REST API поиска изображений из Azure Vision в инструментах Foundry.
Нормализуемая длина вектора. Чтобы повысить точность и производительность поиска сходства, нормализуйте длину векторов перед их хранением в индексе поиска. Большинство предварительно обученных моделей уже нормализуются.
Точно настройте модель. При необходимости настройте модель в данных, относящихся к домену, чтобы повысить производительность и релевантность приложения поиска.
Тестирование и итерацию. Непрерывно тестируйте и уточняйте интеграцию модели внедрения, чтобы добиться требуемой производительности поиска и удовлетворенности пользователей.
Создание ресурсов в одном регионе
Хотя интегрированная векторизация с моделями внедрения Azure OpenAI не требует наличия ресурсов в одном регионе, использование одного и того же региона может повысить производительность и уменьшить задержку.
Чтобы использовать тот же регион для ресурсов, выполните следующие действия.
Проверьте региональную доступность моделей внедрения текста.
Проверьте региональную доступность поиска ИИ Azure.
Создайте ресурс Azure OpenAI и службу поиска ИИ Azure в одном регионе.
Подсказка
Хотите использовать семантический рейтинг для гибридных запросов или модели машинного обучения в пользовательском навыкедля обогащения ИИ? Выберите регион поиска ИИ Azure, предоставляющий эти функции.
Выбор модели внедрения в Foundry
При добавлении знаний в рабочий процесс агента на портале Foundry можно создать индекс поиска. Мастер проведет вас через шаги.
Один из этапов включает выбор модели внедрения для векторизации содержимого обычного текста. Поддерживаются следующие модели.
- Встраивание текста - версия 3 - малая
- текст-встраивание-3-большой
- text-embedding-ada-002
- Cohere-embed-v3-english (английский язык)
- Cohere-embed-v3-multilingual (многоязычная)
Модель должна быть развернута, и у вас должно быть разрешение на доступ к ней. Дополнительные сведения см. в разделе "Развертывание" для моделей Foundry.
Создание внедрения для импровизированного запроса
Если вы не хотите использовать встроенную векторизацию, можно вручную создать внедрение и вставить его в vectorQueries.vector свойство векторного запроса. Дополнительные сведения см. в статье "Создание векторного запроса" в службе "Поиск ИИ Azure".
В следующих примерах предполагается модель text-embedding-ada-002. Замените и YOUR-API-KEY замените YOUR-OPENAI-RESOURCE сведения о ресурсе Azure OpenAI.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "YOUR-API-KEY";
var apiBase = "https://YOUR-OPENAI-RESOURCE.openai.azure.com";
var apiVersion = "2024-02-01";
var engine = "text-embedding-ada-002";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var requestBody = new
{
input = "How do I use C# in VS Code?"
};
var response = await client.PostAsync(
$"{apiBase}/openai/deployments/{engine}/embeddings?api-version={apiVersion}",
new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json")
);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
Выходные данные — это векторный массив размером 1536 измерений.