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


Использование моделей Cohere Embed версии 3 с Помощью Azure AI Foundry

Внимание

Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

В этой статье вы узнаете о моделях Cohere Embed версии 3 и их использовании с Azure AI Foundry. Семейство моделей Cohere включает различные модели, оптимизированные для различных вариантов использования, включая завершение чата, внедрение и повторную настройку. Модели Cohere оптимизированы для различных вариантов использования, включающих причины, сводку и ответы на вопросы.

Внимание

Модели, которые находятся в предварительной версии, помечены как предварительный просмотр на своих карточках моделей в каталоге моделей.

Совместное внедрение моделей

Семейство моделей cohere для внедрения включает следующие модели:

Cohere Embed English — это модель многомодального представления (текст и изображение), используемая для семантического поиска, расширенного создания (RAG), классификации и кластеризации. Внедрение английского языка хорошо работает на эталоне MTEB HuggingFace (массовое внедрение текста) и на вариантах использования для различных отраслей, таких как Finance, Legal и General-Purpose Corpora. Внедрение английского языка также имеет следующие атрибуты:

  • Внедрение английского языка имеет 1024 измерения
  • Окно контекста модели — 512 маркеров
  • Внедрение английского языка принимает изображения в качестве URL-адреса данных в кодировке Base64

Внедренные изображения используют фиксированное количество маркеров на изображение — 1000 маркеров на изображение, что преобразуется в цену 0,0001 долл. США на внедренное изображение. Размер или разрешение изображения не влияет на количество используемых маркеров, если изображение находится в допустимых измерениях, размере файла и форматах.

Необходимые компоненты

Чтобы использовать модели Cohere Embed версии 3 с Azure AI Foundry, вам потребуется следующее:

Развертывание модели

Развертывание в бессерверных API

Модели Cohere Embed версии 3 можно развернуть в конечных точках API без сервера с выставлением счетов по мере использования. Такой тип развертывания позволяет использовать модели в качестве API без размещения их в подписке, сохраняя корпоративную безопасность и соответствие требованиям, необходимым организациям.

Развертывание в конечной точке API без сервера не требует квоты из подписки. Если модель еще не развернута, используйте портал Azure AI Foundry, Машинное обучение Azure ПАКЕТ SDK для Python, Azure CLI или шаблоны ARM для развертывания модели в качестве бессерверного API.

Установленный пакет вывода

Прогнозы из этой модели можно использовать с помощью azure-ai-inference пакета с Python. Чтобы установить этот пакет, вам потребуется следующее:

  • Python 3.8 или более поздней версии, включая pip.
  • URL-адрес конечной точки. Для создания клиентской библиотеки необходимо передать URL-адрес конечной точки. URL-адрес конечной точки имеет форму https://your-host-name.your-azure-region.inference.ai.azure.com, где your-host-name находится уникальное имя узла развертывания модели и your-azure-region является регионом Azure, в котором развернута модель (например, eastus2).
  • В зависимости от предпочтений развертывания и проверки подлинности модели вам потребуется ключ для проверки подлинности в службе или учетных данных идентификатора Microsoft Entra. Ключ представляет собой 32-символьную строку.

После получения этих предварительных требований установите пакет вывода искусственного интеллекта Azure с помощью следующей команды:

pip install azure-ai-inference

Дополнительные сведения о пакете вывода и справочнике по выводу искусственного интеллекта Azure.

Совет

Кроме того, Cohere поддерживает использование специализированного API для использования с определенными функциями модели. Чтобы использовать API для конкретного поставщика моделей, ознакомьтесь с документацией по Cohere.

Работа с внедрением

В этом разделе описано, как использовать API вывода модели ИИ Azure с моделью внедрения.

Создание клиента для использования модели

Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.

import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential

model = EmbeddingsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)

Получение возможностей модели

Маршрут /info возвращает сведения о модели, развернутой в конечной точке. Верните сведения модели, вызвав следующий метод:

model_info = model.get_model_info()

Ответ выглядит следующим образом:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider)
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Создание внедренных модулей

Создайте запрос на внедрение, чтобы просмотреть выходные данные модели.

response = model.embed(
    input=["The ultimate answer to the question of life"],
)

Совет

Окно контекста для моделей Cohere Embed версии 3 равно 512. Убедитесь, что при создании внедрения не превышается это ограничение.

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

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

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

response = model.embed(
    input=[
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter",
    ],
)

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

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Совет

Модели Cohere Embed версии 3 могут принимать пакеты из 1024 за раз. При создании пакетов убедитесь, что это ограничение не превышается.

Создание различных типов внедрения

Модели Cohere Embed версии 3 могут создавать несколько внедренных данных для одного и того же ввода в зависимости от того, как вы планируете их использовать. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.

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

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["The answer to the ultimate question of life, the universe, and everything is 42"],
    input_type=EmbeddingInputType.DOCUMENT,
)

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

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["What's the ultimate meaning of life?"],
    input_type=EmbeddingInputType.QUERY,
)

Модели Cohere Embed версии 3 могут оптимизировать внедрение на основе его варианта использования.

Совместное внедрение моделей

Семейство моделей cohere для внедрения включает следующие модели:

Cohere Embed English — это модель многомодального представления (текст и изображение), используемая для семантического поиска, расширенного создания (RAG), классификации и кластеризации. Внедрение английского языка хорошо работает на эталоне MTEB HuggingFace (массовое внедрение текста) и на вариантах использования для различных отраслей, таких как Finance, Legal и General-Purpose Corpora. Внедрение английского языка также имеет следующие атрибуты:

  • Внедрение английского языка имеет 1024 измерения
  • Окно контекста модели — 512 маркеров
  • Внедрение английского языка принимает изображения в качестве URL-адреса данных в кодировке Base64

Внедренные изображения используют фиксированное количество маркеров на изображение — 1000 маркеров на изображение, что преобразуется в цену 0,0001 долл. США на внедренное изображение. Размер или разрешение изображения не влияет на количество используемых маркеров, если изображение находится в допустимых измерениях, размере файла и форматах.

Необходимые компоненты

Чтобы использовать модели Cohere Embed версии 3 с Azure AI Foundry, вам потребуется следующее:

Развертывание модели

Развертывание в бессерверных API

Модели Cohere Embed версии 3 можно развернуть в конечных точках API без сервера с выставлением счетов по мере использования. Такой тип развертывания позволяет использовать модели в качестве API без размещения их в подписке, сохраняя корпоративную безопасность и соответствие требованиям, необходимым организациям.

Развертывание в конечной точке API без сервера не требует квоты из подписки. Если модель еще не развернута, используйте портал Azure AI Foundry, Машинное обучение Azure ПАКЕТ SDK для Python, Azure CLI или шаблоны ARM для развертывания модели в качестве бессерверного API.

Установленный пакет вывода

Прогнозы из этой модели можно использовать с помощью @azure-rest/ai-inference пакета npm. Чтобы установить этот пакет, вам потребуется следующее:

  • Версии LTS Node.js с npm.
  • URL-адрес конечной точки. Для создания клиентской библиотеки необходимо передать URL-адрес конечной точки. URL-адрес конечной точки имеет форму https://your-host-name.your-azure-region.inference.ai.azure.com, где your-host-name находится уникальное имя узла развертывания модели и your-azure-region является регионом Azure, в котором развернута модель (например, eastus2).
  • В зависимости от предпочтений развертывания и проверки подлинности модели вам потребуется ключ для проверки подлинности в службе или учетных данных идентификатора Microsoft Entra. Ключ представляет собой 32-символьную строку.

После получения этих предварительных требований установите библиотеку вывода Azure для JavaScript с помощью следующей команды:

npm install @azure-rest/ai-inference

Совет

Кроме того, Cohere поддерживает использование специализированного API для использования с определенными функциями модели. Чтобы использовать API для конкретного поставщика моделей, ознакомьтесь с документацией по Cohere.

Работа с внедрением

В этом разделе описано, как использовать API вывода модели ИИ Azure с моделью внедрения.

Создание клиента для использования модели

Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Получение возможностей модели

Маршрут /info возвращает сведения о модели, развернутой в конечной точке. Верните сведения модели, вызвав следующий метод:

await client.path("/info").get()

Ответ выглядит следующим образом:

console.log("Model name: ", model_info.body.model_name);
console.log("Model type: ", model_info.body.model_type);
console.log("Model provider name: ", model_info.body.model_provider_name);
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Создание внедренных модулей

Создайте запрос на внедрение, чтобы просмотреть выходные данные модели.

var response = await client.path("/embeddings").post({
    body: {
        input: ["The ultimate answer to the question of life"],
    }
});

Совет

Окно контекста для моделей Cohere Embed версии 3 равно 512. Убедитесь, что при создании внедрения не превышается это ограничение.

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

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

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

var response = await client.path("/embeddings").post({
    body: {
        input: [
            "The ultimate answer to the question of life", 
            "The largest planet in our solar system is Jupiter",
        ],
    }
});

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

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Совет

Модели Cohere Embed версии 3 могут принимать пакеты из 1024 за раз. При создании пакетов убедитесь, что это ограничение не превышается.

Создание различных типов внедрения

Модели Cohere Embed версии 3 могут создавать несколько внедренных данных для одного и того же ввода в зависимости от того, как вы планируете их использовать. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.

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

var response = await client.path("/embeddings").post({
    body: {
        input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
        input_type: "document",
    }
});

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

var response = await client.path("/embeddings").post({
    body: {
        input: ["What's the ultimate meaning of life?"],
        input_type: "query",
    }
});

Модели Cohere Embed версии 3 могут оптимизировать внедрение на основе его варианта использования.

Совместное внедрение моделей

Семейство моделей cohere для внедрения включает следующие модели:

Cohere Embed English — это модель многомодального представления (текст и изображение), используемая для семантического поиска, расширенного создания (RAG), классификации и кластеризации. Внедрение английского языка хорошо работает на эталоне MTEB HuggingFace (массовое внедрение текста) и на вариантах использования для различных отраслей, таких как Finance, Legal и General-Purpose Corpora. Внедрение английского языка также имеет следующие атрибуты:

  • Внедрение английского языка имеет 1024 измерения
  • Окно контекста модели — 512 маркеров
  • Внедрение английского языка принимает изображения в качестве URL-адреса данных в кодировке Base64

Внедренные изображения используют фиксированное количество маркеров на изображение — 1000 маркеров на изображение, что преобразуется в цену 0,0001 долл. США на внедренное изображение. Размер или разрешение изображения не влияет на количество используемых маркеров, если изображение находится в допустимых измерениях, размере файла и форматах.

Необходимые компоненты

Чтобы использовать модели Cohere Embed версии 3 с Azure AI Foundry, вам потребуется следующее:

Развертывание модели

Развертывание в бессерверных API

Модели Cohere Embed версии 3 можно развернуть в конечных точках API без сервера с выставлением счетов по мере использования. Такой тип развертывания позволяет использовать модели в качестве API без размещения их в подписке, сохраняя корпоративную безопасность и соответствие требованиям, необходимым организациям.

Развертывание в конечной точке API без сервера не требует квоты из подписки. Если модель еще не развернута, используйте портал Azure AI Foundry, Машинное обучение Azure ПАКЕТ SDK для Python, Azure CLI или шаблоны ARM для развертывания модели в качестве бессерверного API.

Клиент REST

Модели, развернутые с помощью API вывода модели ИИ Azure, можно использовать с помощью любого клиента REST. Чтобы использовать клиент REST, необходимо выполнить следующие предварительные требования:

  • Чтобы создать запросы, необходимо передать URL-адрес конечной точки. URL-адрес конечной точки имеет форму https://your-host-name.your-azure-region.inference.ai.azure.com, где your-host-name находится уникальное имя узла развертывания модели и your-azure-region является регионом Azure, в котором развернута модель (например, eastus2).
  • В зависимости от предпочтений развертывания и проверки подлинности модели вам потребуется ключ для проверки подлинности в службе или учетных данных идентификатора Microsoft Entra. Ключ представляет собой 32-символьную строку.

Совет

Кроме того, Cohere поддерживает использование специализированного API для использования с определенными функциями модели. Чтобы использовать API для конкретного поставщика моделей, ознакомьтесь с документацией по Cohere.

Работа с внедрением

В этом разделе описано, как использовать API вывода модели ИИ Azure с моделью внедрения.

Создание клиента для использования модели

Сначала создайте клиент для использования модели. В следующем коде используется URL-адрес конечной точки и ключ, хранящиеся в переменных среды.

Получение возможностей модели

Маршрут /info возвращает сведения о модели, развернутой в конечной точке. Верните сведения модели, вызвав следующий метод:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

Ответ выглядит следующим образом:

{
    "model_name": "Cohere-embed-v3-english",
    "model_type": "embeddings",
    "model_provider_name": "Cohere"
}

Создание внедренных модулей

Создайте запрос на внедрение, чтобы просмотреть выходные данные модели.

{
    "input": [
        "The ultimate answer to the question of life"
    ]
}

Совет

Окно контекста для моделей Cohere Embed версии 3 равно 512. Убедитесь, что при создании внедрения не превышается это ограничение.

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

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 0,
        "total_tokens": 9
    }
}

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

{
    "input": [
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ]
}

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

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        },
        {
            "index": 1,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 0,
        "total_tokens": 19
    }
}

Совет

Модели Cohere Embed версии 3 могут принимать пакеты из 1024 за раз. При создании пакетов убедитесь, что это ограничение не превышается.

Создание различных типов внедрения

Модели Cohere Embed версии 3 могут создавать несколько внедренных данных для одного и того же ввода в зависимости от того, как вы планируете их использовать. Эта возможность позволяет получить более точные внедрения для шаблонов RAG.

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

{
    "input": [
        "The answer to the ultimate question of life, the universe, and everything is 42"
    ],
    "input_type": "document"
}

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

{
    "input": [
        "What's the ultimate meaning of life?"
    ],
    "input_type": "query"
}

Модели Cohere Embed версии 3 могут оптимизировать внедрение на основе его варианта использования.

Дополнительные примеры вывода

Описание Language Пример
Веб-запросы Bash cohere-embed.ipynb
Пакет вывода искусственного интеллекта Azure для JavaScript JavaScript Ссылка
Пакет вывода искусственного интеллекта Azure для Python Python Ссылка
Пакет SDK OpenAI (экспериментальный) Python Ссылка
LangChain Python Ссылка
Cohere SDK Python Ссылка
LiteLLM SDK Python Ссылка

Извлечение дополненного поколения (RAG) и примеры использования инструментов

Description Пакеты Пример
Создание локального индекса сходства ИИ Facebook (FAISS) с помощью внедрения Cohere — Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Используйте команду Cohere R/R+ для ответа на вопросы из данных в локальном индексе вектора FAISS — Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Использование Cohere Command R/R+ для ответа на вопросы из данных в индексе вектора поиска ИИ — Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Использование Cohere Command R/R+ для ответа на вопросы из данных в индексе вектора поиска ИИ — пакет SDK Cohere cohere, azure_search_documents cohere-aisearch-rag.ipynb
Вызов инструмента или функции команды R+ с помощью LangChain cohere, , langchainlangchain_cohere command_tools-langchain.ipynb

Рекомендации по затратам и квотам для семейства моделей Cohere, развернутых в качестве конечных точек API без сервера

Модели Cohere, развернутые в качестве бессерверного API, предлагаются Cohere через Azure Marketplace и интегрированы с Azure AI Foundry для использования. Цены на Azure Marketplace можно узнать в ходе развертывания модели.

Каждый раз, когда проект подписывается на определенное предложение из Azure Marketplace, создается новый ресурс, чтобы отслеживать затраты, связанные с его использованием. Тот же ресурс используется для отслеживания затрат, связанных с выводом; однако для отслеживания каждого сценария по отдельности можно использовать несколько счетчиков.

Дополнительные сведения о том, как следить за затратами, см. в статье Мониторинг затрат для моделей, предлагаемых в Azure Marketplace.

Квота изменяется для каждого развертывания. Каждое развертывание имеет ограничение трафика в 200 000 токенов в минуту и 1000 запросов API в минуту. Однако в настоящее время мы ограничиваем одно развертывание на одну модель для одного проекта. Обратитесь в службу поддержки Microsoft Azure, если текущие ограничения трафика недостаточны для ваших сценариев.