Azure Machine Learning スタジオを使用して Cohere Embed V3 モデルを使用する方法
この記事では、Cohere Embed V3 モデルと、それらを Azure Machine Learning スタジオで使用する方法について説明します。 Cohere のモデル ファミリには、チャット入力候補、埋め込み、再ランク付けなど、さまざまなユース ケースに最適化されたモデルがあります。 Cohere のモデルは、推論、要約、質問応答など、さまざまなユース ケースに最適化されています。
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
Cohere 埋め込みモデル
埋め込み用の Cohere ファミリのモデルには、次のモデルが含まれています。
Cohere Embed English は、セマンティック検索、取得拡張生成 (RAG)、分類、クラスタリングに使用される、マルチモーダル (テキストおよび画像) 表現モデルです。 Embed English は、HuggingFace (大規模なテキスト埋め込み) MTEB ベンチマークと、財務、法務、汎用コーパスなど、さまざまな業界のユース ケースで優れたパフォーマンスを発揮します。 Embed English には次の属性もあります。
- Embed English には 1,024 個のディメンションがあります
- モデルのコンテキスト ウィンドウは 512 トークンです
- Embed English は、base64 エンコードされたデータ URL として画像を受け取ります
画像埋め込みでは、画像ごとに一定数のトークン (1 画像あたり 1,000 トークン) が消費されます。これは価格に変換すると、埋め込み画像 1 つあたり 0.0001 ドルとなります。 画像が許容されるディメンション、ファイル サイズ、形式に収まる場合、画像のサイズや解像度は、消費されるトークンの数には影響しません。
前提条件
Azure Machine Learning スタジオで Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。
モデル デプロイ
サーバーレス API へのデプロイ
Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。
サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure Machine Learning スタジオ、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 トークンです
- Embed English は、base64 エンコードされたデータ URL として画像を受け取ります
画像埋め込みでは、画像ごとに一定数のトークン (1 画像あたり 1,000 トークン) が消費されます。これは価格に変換すると、埋め込み画像 1 つあたり 0.0001 ドルとなります。 画像が許容されるディメンション、ファイル サイズ、形式に収まる場合、画像のサイズや解像度は、消費されるトークンの数には影響しません。
前提条件
Azure Machine Learning スタジオで Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。
モデル デプロイ
サーバーレス API へのデプロイ
Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。
サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure Machine Learning スタジオ、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 トークンです
- Embed English は、base64 エンコードされたデータ URL として画像を受け取ります
画像埋め込みでは、画像ごとに一定数のトークン (1 画像あたり 1,000 トークン) が消費されます。これは価格に変換すると、埋め込み画像 1 つあたり 0.0001 ドルとなります。 画像が許容されるディメンション、ファイル サイズ、形式に収まる場合、画像のサイズや解像度は、消費されるトークンの数には影響しません。
前提条件
Azure Machine Learning で Cohere Embed V3 チャット モデルを使用するには、次の前提条件を満たす必要があります。
モデル デプロイ
サーバーレス API へのデプロイ
Cohere Embed V3 チャット モデルは、従量課金制でサーバーレス API エンドポイントにデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。
サーバーレス API エンドポイントへのデプロイでは、サブスクリプションからのクォータは必要ありません。 モデルがまだデプロイされていない場合は、Azure Machine Learning スタジオ、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 | langchain 、langchain_cohere |
cohere_faiss_langchain_embed.ipynb |
Cohere コマンド R/R+ を使用して、ローカルの FAISS ベクター インデックスのデータから質問に回答する - Langchain | langchain 、 langchain_cohere |
command_faiss_langchain.ipynb |
Cohere コマンド R/R+ を使用して、AI 検索ベクター インデックスのデータから質問に回答する - Langchain | langchain 、 langchain_cohere |
cohere-aisearch-langchain-rag.ipynb |
Cohere コマンド R/R+ を使用して、AI 検索ベクター インデックスのデータから質問に回答する - Cohere SDK | cohere 、azure_search_documents |
cohere-aisearch-rag.ipynb |
LangChain を使用したコマンド R+ ツールおよび関数呼び出し | cohere 、langchain 、langchain_cohere |
command_tools-langchain.ipynb |
サーバーレス API エンドポイントとしてデプロイされる Cohere モデルのコストとクォータに関する考慮事項
サーバーレス API としてデプロイされた Cohere モデルは、Azure Marketplace 経由で Cohere によって提供され、使用するために Azure Machine Learning スタジオと統合されます。 モデルをデプロイするときに、Azure Marketplace の価格を確認できます。
プロジェクトが Azure Marketplace から特定のオファーにサブスクライブするたびに、その消費に関連するコストを追跡するための新しいリソースが作成されます。 推論に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。
コストの追跡方法について詳しくは、「Azure Marketplace を通じて提供されるモデルのコストを監視する」をご覧ください。
クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし、現在、プロジェクトのモデルごとに 1 つのデプロイに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。