Узнайте, как создавать эмбеддинги

Внедрение — это специальный формат представления данных, который можно легко использовать моделями и алгоритмами машинного обучения. Эмбеддинг является информационно плотным представлением семантического значения фрагмента текста. Каждое внедрение является вектором чисел с плавающей запятой, таким образом, расстояние между двумя внедрениями в векторное пространство сопоставляется с семантической сходством между двумя входными данными в исходном формате. Например, если два текста похожи, то их векторные представления также должны быть похожими. Векторы-эмбеддинги обеспечивают поиск сходства векторов в базах данных Azure, таких как Azure Cosmos DB для NoSQL, Azure Cosmos DB для MongoDB vCore, База данных SQL Azure или База данных Azure для PostgreSQL — гибкий сервер.

Необходимые условия

  • Развернутая модель встраивания Azure OpenAI.
  • Следующие значения из вашего ресурса:
    • Например, конечная точка https://YOUR-RESOURCE-NAME.openai.azure.com/.
    • Ключ API.
    • Имя развертывания модели.

Для получения дополнительных инструкций по настройке для конкретных языков см. раздел Поддерживаемые языки программирования Azure OpenAI.

Как получить внедрение

Чтобы получить вектор внедрения для фрагмента текста, выполните запрос к конечной точке внедрения, как показано в следующих фрагментах кода:

Примечание

API внедрения OpenAI Azure в настоящее время не поддерживает Microsoft Entra ID с API версии 1. Используйте проверку подлинности ключа API для примеров в этой статье.

using OpenAI;
using OpenAI.Embeddings;
using System.ClientModel;

EmbeddingClient client = new(
    "text-embedding-3-small",
    credential: new ApiKeyCredential("API-KEY"),
    options: new OpenAIClientOptions()
    {

        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

string input = "This is a test";

OpenAIEmbedding embedding = client.GenerateEmbedding(input);
ReadOnlyMemory<float> vector = embedding.ToFloats();
Console.WriteLine($"Embeddings: [{string.Join(", ", vector.ToArray())}]");

Наилучшие практики

Убедитесь, что входные данные не превышают максимальную длину

  • Максимальная длина входного текста для наших последних моделей внедрения составляет 8 192 токенов. Перед выполнением запроса необходимо убедиться, что входные данные не превышают это ограничение.
  • Если отправляется массив входных данных в одном запросе встраивания, максимальный размер массива составляет 2048.
  • При отправке массива входных данных в одном запросе помните, что количество токенов в минуту в ваших запросах должно оставаться ниже лимита квоты, установленного при развертывании модели. По умолчанию модели внедрения последних поколений 3 подлежат ограничению на 350 K TPM для каждого региона.

Устранение неполадок

  • При получении ошибки 401 или 403 убедитесь, что ключ API действителен для ресурса.
  • Если вы получите ошибку 404, убедитесь, что в endpoint включен путь /openai/v1/ и вы используете правильный базовый URL-адрес.
  • Если вы получите ошибку 400, убедитесь, что model соответствует имени вашего развертывания и тело запроса является допустимым JSON.

Ограничения и риски

Наши модели внедрения могут быть ненадежными или представлять социальные риски в некоторых случаях, и могут причинить вред в отсутствие мер по устранению рисков. Просмотрите наше содержимое ответственного ИИ, чтобы получить дополнительные сведения о том, как подходить к их использованию ответственно.

Дальнейшие действия