Azure AI Studio で Cohere Embed V3 モデルを使用する方法

重要

この記事で説明する機能の一部は、プレビューでのみ使用できる場合があります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

この記事では、Cohere Embed V3 モデルと、それらを Azure AI Studio で使用する方法について説明します。 Cohere のモデル ファミリには、チャット入力候補、埋め込み、再ランク付けなど、さまざまなユース ケースに最適化されたモデルがあります。 Cohere のモデルは、推論、要約、質問応答など、さまざまなユース ケースに最適化されています。

Cohere 埋め込みモデル

埋め込み用の Cohere ファミリのモデルには、次のモデルが含まれています。

Cohere Embed English は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、テキスト表現モデルです。 Embed English は、HuggingFace (大規模なテキスト埋め込み) MTEB ベンチマークと、財務、法務、汎用コーパスなど、さまざまな業界のユース ケースで優れたパフォーマンスを発揮します。 Embed English には次の属性もあります。

  • Embed English には 1,024 個のディメンションがあります。
  • モデルのコンテキスト ウィンドウは 512 トークンです

前提条件

Azure AI Studio で Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。

モデル デプロイ

サーバーレス API へのデプロイ

Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。

サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure AI Studio、Azure Machine Learning SDK for Python、Azure CLI、または ARM テンプレートを使用して、モデルをサーバーレス API としてデプロイします。

インストールされている推論パッケージ

Python で azure-ai-inference パッケージを使用して、このモデルから予測を実行できます。 このパッケージをインストールするには、次の前提条件を満たす必要があります。

  • 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 ID 認証情報が必要です。 キーは 32 文字の文字列です。

これらの前提条件が満たされたら、次のコマンドを使用して Azure AI 推論パッケージをインストールします。

pip install azure-ai-inference

Azure AI 推論パッケージとリファレンスに関する詳細をご覧ください。

ヒント

さらに、Cohere は、モデルの特定の機能で使用するためにカスタマイズされた API の使用をサポートしています。 モデル プロバイダー固有の API を使用するには、Cohere のドキュメントを参照してください。

埋め込みの操作

このセクションでは、埋め込みモデルと共に Azure AI モデル推論 API を使用します。

モデルを実行するクライアントを作成する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント 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 V3 モデルのコンテキスト ウィンドウは 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 V3 モデルでは、一度に 1,024 個のバッチを使用できます。 バッチを作成するときは、この制限を超えないようにしてください。

さまざまな種類の埋め込みを作成する

Cohere Embed V3 モデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、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 V3 モデルは、そのユース ケースに基づいて埋め込みを最適化できます。

Cohere 埋め込みモデル

埋め込み用の Cohere ファミリのモデルには、次のモデルが含まれています。

Cohere Embed English は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、テキスト表現モデルです。 Embed English は、HuggingFace (大規模なテキスト埋め込み) MTEB ベンチマークと、財務、法務、汎用コーパスなど、さまざまな業界のユース ケースで優れたパフォーマンスを発揮します。 Embed English には次の属性もあります。

  • Embed English には 1,024 個のディメンションがあります。
  • モデルのコンテキスト ウィンドウは 512 トークンです

前提条件

Azure AI Studio で Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。

モデル デプロイ

サーバーレス API へのデプロイ

Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。

サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure AI Studio、Azure Machine Learning SDK for Python、Azure CLI、または ARM テンプレートを使用して、モデルをサーバーレス API としてデプロイします。

インストールされている推論パッケージ

npm から @azure-rest/ai-inference パッケージを使用して、このモデルから予測を実行できます。 このパッケージをインストールするには、次の前提条件を満たす必要があります。

  • Node.js の LTS バージョン (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 ID 認証情報が必要です。 キーは 32 文字の文字列です。

これらの前提条件が満たされたら、次のコマンドを使用して JavaScript 用 Azure 推論ライブラリ パッケージをインストールします。

npm install @azure-rest/ai-inference

ヒント

さらに、Cohere は、モデルの特定の機能で使用するためにカスタマイズされた API の使用をサポートしています。 モデル プロバイダー固有の API を使用するには、Cohere のドキュメントを参照してください。

埋め込みの操作

このセクションでは、埋め込みモデルと共に Azure AI モデル推論 API を使用します。

モデルを実行するクライアントを作成する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント 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 V3 モデルのコンテキスト ウィンドウは 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 V3 モデルでは、一度に 1,024 個のバッチを使用できます。 バッチを作成するときは、この制限を超えないようにしてください。

さまざまな種類の埋め込みを作成する

Cohere Embed V3 モデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、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 V3 モデルは、そのユース ケースに基づいて埋め込みを最適化できます。

Cohere 埋め込みモデル

埋め込み用の Cohere ファミリのモデルには、次のモデルが含まれています。

Cohere Embed English は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、テキスト表現モデルです。 Embed English は、HuggingFace (大規模なテキスト埋め込み) MTEB ベンチマークと、財務、法務、汎用コーパスなど、さまざまな業界のユース ケースで優れたパフォーマンスを発揮します。 Embed English には次の属性もあります。

  • Embed English には 1,024 個のディメンションがあります。
  • モデルのコンテキスト ウィンドウは 512 トークンです

前提条件

Azure AI Studio で Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。

モデル デプロイ

サーバーレス API へのデプロイ

Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。

サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure AI Studio、Azure Machine Learning SDK for Python、Azure CLI、または ARM テンプレートを使用して、モデルをサーバーレス API としてデプロイします。

REST クライアント

Azure AI モデル推論 API でデプロイされたモデルは、任意の 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 ID 認証情報が必要です。 キーは 32 文字の文字列です。

ヒント

さらに、Cohere は、モデルの特定の機能で使用するためにカスタマイズされた API の使用をサポートしています。 モデル プロバイダー固有の API を使用するには、Cohere のドキュメントを参照してください。

埋め込みの操作

このセクションでは、埋め込みモデルと共に Azure AI モデル推論 API を使用します。

モデルを実行するクライアントを作成する

まず、モデルを実行するクライアントを作成します。 次のコードでは、環境変数に格納されているエンドポイント 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 V3 モデルのコンテキスト ウィンドウは 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 V3 モデルでは、一度に 1,024 個のバッチを使用できます。 バッチを作成するときは、この制限を超えないようにしてください。

さまざまな種類の埋め込みを作成する

Cohere Embed V3 モデルでは、予定している使用方法に応じて、同じ入力に対して複数の埋め込みを生成できます。 この機能を使用すると、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 V3 モデルは、そのユース ケースに基づいて埋め込みを最適化できます。

推論のその他の例

説明 Language サンプル
Web 要求 Bash cohere-embed.ipynb
JavaScript 用 Azure AI 推論パッケージ JavaScript リンク
Python 用 Azure AI 推論パッケージ Python リンク
OpenAI SDK (試験段階) Python リンク
LangChain Python リンク
Cohere SDK Python リンク
LiteLLM SDK Python リンク

取得拡張生成 (RAG) とツールの使用サンプル

説明 パッケージ サンプル
Cohere 埋め込みを使用してローカルの Facebook AI 類似性検索 (FAISS) ベクター インデックスを作成する - Langchain langchainlangchain_cohere cohere_faiss_langchain_embed.ipynb
Cohere コマンド R/R+ を使用して、ローカルの FAISS ベクター インデックスのデータから質問に回答する - Langchain langchainlangchain_cohere command_faiss_langchain.ipynb
Cohere コマンド R/R+ を使用して、AI 検索ベクター インデックスのデータから質問に回答する - Langchain langchainlangchain_cohere cohere-aisearch-langchain-rag.ipynb
Cohere コマンド R/R+ を使用して、AI 検索ベクター インデックスのデータから質問に回答する - Cohere SDK cohereazure_search_documents cohere-aisearch-rag.ipynb
LangChain を使用したコマンド R+ ツールおよび関数呼び出し coherelangchainlangchain_cohere command_tools-langchain.ipynb

サーバーレス API エンドポイントとしてデプロイされる Cohere ファミリのモデルのコストとクォータに関する考慮事項

サーバーレス API としてデプロイされた Cohere モデルは、Azure Marketplace を通じて Cohere によって提供され、使用するために Azure AI Studio と統合されます。 モデルをデプロイするときに、Azure Marketplace の価格を確認できます。

プロジェクトが Azure Marketplace から特定のオファーにサブスクライブするたびに、その消費に関連するコストを追跡するための新しいリソースが作成されます。 推論に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。

コストの追跡方法について詳しくは、「Azure Marketplace を通じて提供されるモデルのコストを監視する」をご覧ください。

クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし、現在、プロジェクトのモデルごとに 1 つのデプロイに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。