Azure Machine Learning スタジオを使用して Cohere Embed モデルをデプロイする方法
Cohere では、Azure Machine Learning スタジオの中で 2 つの埋め込みモデルが使用できます。 これらのモデルは、トークンベースの従量課金制でサーバーレス API として使用できます。
- Cohere Embed v3 - English
- Cohere Embed v3 - Multilingual
Cohere コレクションでフィルタリングすることで、モデル カタログ内の Cohere ファミリのモデルを閲覧できます。
モデル
この記事では、Azure Machine Learning スタジオを使用し、従量課金制の請求を利用するサーバーレス API として Cohere モデルをデプロイする方法を学びます。
Cohere Embed v3 - English
Cohere Embed English は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、マーケットにおいてもトップ クラスのテキスト表現モデルです。 Embed English は、HuggingFace MTEB ベンチマークで最上級のパフォーマンスを発揮しており、財務、法務、汎用コーパスなどのさまざまな業界で優れたパフォーマンスを提供します。
- Embed English には 1,024 個のディメンションがあります。
- モデルのコンテキスト ウィンドウは 512 トークンです。
Cohere Embed v3 - Multilingual
Cohere Embed Multilingual は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、マーケットでもトップ クラスのテキスト表現モデルです。 Embed Multilingual は 100 以上の言語をサポートしており、言語内 (たとえば、フランス語のドキュメントに対するフランス語クエリを使用した検索) や、言語間での検索 (たとえば、中国語のドキュメントに対する英語クエリを使用した検索) に使用できます。 Embed Multilingual では、多言語ベンチマークでの SOTA パフォーマンスにおいて、Miracl の評価を得ています。
- Embed Multilingual には 1,024 個のディメンションがあります。
- モデルのコンテキスト ウィンドウは 512 トークンです。
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
サーバーレス API としてデプロイする
モデル カタログ内の特定のモデルは、従量課金制の請求でサーバーレス API としてデプロイでき、企業のセキュリティとコンプライアンス組織のニーズを維持しながら、サブスクリプションでホストせずに API として使用する方法が提供されます。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
前述の Cohere モデルは、従量課金制のサービスとしてデプロイできるもので、Microsoft Azure Marketplace を通じて Cohere によって提供されます。 Cohere は、このモデルの使用条件と価格を変更または更新することがあります。
前提条件
有効な支払い方法を持つ Azure サブスクリプション。 無料または試用版の Azure サブスクリプションは機能しません。 Azure サブスクリプションを持っていない場合は、始めるために有料の Azure アカウントを作成してください。
Azure Machine Learning ワークスペース。 これらを所有していない場合は、クイックスタート: ワークスペース リソースの作成に関する記事の手順に従って作成してください。
重要
従量課金制のモデル デプロイのオファリングは、EastUS2 またはスウェーデン中部のリージョンで作成されたワークスペースでのみ利用できます。
Azure ロールベースのアクセス制御 (Azure RBAC) は、操作へのアクセスを許可するために使用されます。 この記事の手順を実行するには、ユーザー アカウントに、リソース グループの Azure AI 開発者ロールを割り当てる必要があります。
アクセス許可の詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
新しいデプロイを作成する
デプロイを作成するには:
[Azure Machine Learning Studio] に移動します。
モデルをデプロイするワークスペースを選択します。 従量課金制のモデル デプロイのオファリングを使用するには、対象のワークスペースが EastUS2 またはスウェーデン中部リージョンに属している必要があります。
デプロイするモデルをモデル カタログから選択します。
別の方法として、ワークスペースに移動し、[エンドポイント]>[Serverless endpoints] (サーバーレス エンドポイント)>[作成] を選択して、デプロイを開始することもできます。
モデル カタログのモデルの概要ページで、[デプロイ] を選びます。
デプロイ ウィザードで、[Azure Marketplace の使用条件] へのリンクを選び、使用条件の詳細を確認します。
[Marketplace オファーの詳細] タブを選択して、選択したモデルの価格について確認することもできます。
ワークスペースにモデルを初めてデプロイする場合は、そのモデルの特定のオファリングに対し、ワークスペースをサブスクライブする必要があります。 この手順では、前提条件に記載されているように、ご自分のアカウントにリソース グループに対する Azure AI 開発者ロールのアクセス許可が付与されている必要があります。 各ワークスペースには、特定の Azure Marketplace オファリングへのそれぞれのサブスクリプションがあり、これにより支出を制御および監視できます。 [サブスクライブしてデプロイ] を選択します。 現在、ワークスペース内の各モデルに対して 1 つのデプロイしかできません。
特定の Azure Marketplace オファリング用にワークスペースをサブスクライブすると、"同じ" ワークスペース内の "同じ" オファリングの以降のデプロイで再度サブスクライブする必要はありません。 このシナリオが当てはまる場合は、[デプロイを続行する] オプションを選択できます。
デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。
展開 を選択します。 デプロイが完了し、サーバーレス エンドポイント ページにリダイレクトされるまで待ちます。
エンドポイントを選択してその [詳細] ページを開きます。
[テスト] タブを選択して、モデルの操作を開始します。
エンドポイントの詳細、URL、アクセス キーは、[ワークスペース]>[エンドポイント]>[Serverless endpoints] (サーバーレス エンドポイント) に移動することでいつでも確認できます。
ターゲット URL とシークレット キーを書き留めます。 API の使用方法の詳細については、「[リファレンス](#embed-api-reference-for-cohere-embed-models-deployed-as-a-serverless-api)」セクションを参照してください。
従量課金制でデプロイされたモデルの課金について知るには、「サービスとしてデプロイされた Cohere モデルのコストとクォータに関する考慮事項」を参照してください。
サーバーレス API としてデプロイされたモデルを使用する
前述の Cohere モデルは、チャット API により使用することができます。
[ワークスペース] で、[エンドポイント]>[Serverless endpoints] (サーバーレス エンドポイント) を選択します。
作成したデプロイを見つけて選択します。
[ターゲット] URL と [キー] のトークン値をコピーします。
Cohere では、Embed v3 - English と、Embed v3 - Multilingual モデルを使用して、推論用の 2 つのルートを公開しています。
v1/embeddings
は Azure AI Generative Messages API スキーマに対応しており、v1/embed
は Cohere のネイティブ API スキーマをサポートします。API の使用方法の詳細については、リファレンスのセクションを参照してください。
サーバーレス API としてデプロイされた Cohere Embed モデル用の Embed API リファレンス
Cohere Embed v3 - English と Embed v3 - Multilingual では、ルート /embeddings
上の Azure AI Model Inference API (テキストの場合) と /images/embeddings
(画像の場合) の両方、および、/embed
のネイティブの Cohere Embed v3 API を受け入れます。
Azure AI Model Inference API
Azure AI Model Inference API スキーマについては、次の記事を参照してください。
OpenAPI 仕様は、エンドポイント自体から取得できます。
Cohere Embed v3
以下に、Cohere Embed v3 API の詳細を示します。
要求
POST /v1/embed HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json
v1/embed の要求スキーマ
Cohere Embed v3 - English と Embed v3 - Multilingual では、v1/embed
API 呼び出しにおいて、次のパラメーターを受け入れます。
キー | Type | Default | 説明 |
---|---|---|---|
texts |
array of strings |
必須 | 埋め込むモデルの文字列の配列。 呼び出しあたりのテキストの最大数は 96 です。 最適な品質を得るために、各テキストの長さを 512 トークン未満にすることをお勧めします。 |
input_type |
enum string |
必須 | それぞれの型を区別するために、特殊なトークンを先頭に追加します。 検索と取得のために型を混在させる場合を除き、異なる型を混在させることはできません。 この場合は、search_document 型と、search_query 型を持つ埋め込みクエリを使用してコーパスを埋め込みます。 search_document – 検索のユース ケースでは、ベクトル データベースに格納している埋め込み用にドキュメントをエンコードするときに、search_document を使用します。 search_query – 関連するドキュメントを検索するためにベクトル DB に対してクエリを実行するときは、search_query を使用します。 classification – テキスト分類子への入力として埋め込みを使用する場合は、classification を使用します。 clustering – 埋め込みをクラスター化するには、clustering を使用します。 |
truncate |
enum string |
NONE |
NONE – 入力が最大入力トークン長を超えた場合にエラーを返します。 START – 入力の開始を破棄します。 END – 入力の終了を破棄します。 |
embedding_types |
array of strings |
float |
取得したい埋め込みの型を指定します。 次のうち、1 つ以上の型にできます。 float 、int8 、uint8 、binary 、ubinary |
v1/embed の応答スキーマ
Cohere Embed v3 - English とEmbed v3 - Multilingual は、応答内に次のフィールドを含みます。
キー | Type | 説明 |
---|---|---|
response_type |
enum |
応答の種類。 embedding_types が指定されていない場合は embeddings_floats を返し、embeddings_types が指定されている場合は embeddings_by_type を返します。 |
id |
integer |
応答の識別子です。 |
embeddings |
array または array of objects |
埋め込みの配列です。ここで各埋め込みは 1,024 個の要素を持つ浮動小数点の配列です。 埋め込みの配列の長さは、元のテキストの配列の長さと同じです。 |
texts |
array of strings |
埋め込みが返されたテキストのエントリです。 |
meta |
string |
現在のバージョンと課金対象のトークンを含む、API の利用状況データです。 |
詳細については、https://docs.cohere.com/reference/embedを参照してください。
v1/embed の例
Embeddings_floats の応答
要求:
{
"input_type": "clustering",
"truncate": "START",
"texts":["hi", "hello"]
}
応答:
{
"id": "da7a104c-e504-4349-bcd4-4d69dfa02077",
"texts": [
"hi",
"hello"
],
"embeddings": [
[
...
],
[
...
]
],
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 2
}
},
"response_type": "embeddings_floats"
}
Embeddings_by_types の応答
要求:
{
"input_type": "clustering",
"embedding_types": ["int8", "binary"],
"truncate": "START",
"texts":["hi", "hello"]
}
応答:
{
"id": "b604881a-a5e1-4283-8c0d-acbd715bf144",
"texts": [
"hi",
"hello"
],
"embeddings": {
"binary": [
[
...
],
[
...
]
],
"int8": [
[
...
],
[
...
]
]
},
"meta": {
"api_version": {
"version": "1"
},
"billed_units": {
"input_tokens": 2
}
},
"response_type": "embeddings_by_type"
}
その他の推論の例
Package | サンプル ノートブック |
---|---|
CURL および Python Web 要求を使用した CLI | cohere-embed.ipynb |
OpenAI SDK (試験段階) | openaisdk.ipynb |
LangChain | langchain.ipynb |
Cohere SDK | cohere-sdk.ipynb |
LiteLLM SDK | litellm.ipynb |
取得拡張生成 (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 |
コストとクォータ
サービスとしてデプロイされたモデルの、コストとクォータに関する考慮事項
サービスとしてデプロイされた Cohere モデルは、Azure Marketplace を通じて Cohere により提供され、Azure Machine Learning スタジオと統合されて使用されます。 Azure Marketplace の価格は、モデルをデプロイするときに確認できます。
ワークスペースが Azure Marketplace から特定のモデル オファリングにサブスクライブするたびに、その消費に関連するコストを追跡するための新しいリソースが作成されます。 推論に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。
コストを追跡する方法の詳細については、「Azure Marketplace を通じて提供されるモデルのコストを監視する」を参照してください。
クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし現在、ワークスペースのモデルごとにデプロイを 1 つに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。
コンテンツのフィルター処理
従量課金制でサービスとしてデプロイされたモデルは、Azure AI Content Safety によって保護されます。 Azure AI Content Safety を有効にすると、プロンプトと入力候補の両方が、有害なコンテンツ出力の検出と防止を目的とした一連の分類モデルを通過します。 コンテンツ フィルタリング システムは、入力プロンプトと (出力される) 入力候補の両方で、有害な可能性があるコンテンツ特有のカテゴリを検出し、アクションを実行します。 Azure AI Content Safety の詳細を確認します。
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示