Azure AI Studio を使用して Cohere Embed モデルをデプロイする方法
重要
この記事で説明する機能の一部は、プレビューでのみ使用できる場合があります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
この記事では、Azure AI Studio を使って、トークンベースの従量課金制で Cohere Embed モデルをサーバーレス API としてデプロイする方法について説明します。
Cohere Embed では、Azure AI Studio に 2 つの埋め込みモデルが用意されています。 これらのモデルは、トークンベースの従量課金制でサーバーレス API として使用できます。 Cohere コレクションでフィルタリングすることで、モデル カタログ内の Cohere ファミリのモデルを閲覧できます。
Cohere Embed モデル
このセクションでは、モデル カタログで使用できる次の 2 つの Cohere Embed モデルについて説明します。
- Cohere Embed v3 - English
- Cohere Embed v3 - Multilingual
Cohere コレクションでフィルタリングすることで、モデル カタログ内の Cohere ファミリのモデルを閲覧できます。
Cohere Embed v3 - English
Cohere Embed English は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、マーケットにおいてもトップ クラスのテキスト表現モデルです。 Embed English は、HuggingFace MTEB ベンチマークで最上級のパフォーマンスを示し、財務、法務、汎用コーパスなどのさまざまな業界のユース ケースで優れたパフォーマンスを発揮します。 Embed English には次の属性もあります。
- Embed English には 1,024 個のディメンションがあります。
- モデルのコンテキスト ウィンドウは 512 トークンです
Cohere Embed v3 - Multilingual
Cohere Embed Multilingual は、セマンティック検索、検索拡張生成 (RAG)、分類、クラスタリングに使用される、マーケットでもトップ クラスのテキスト表現モデルです。 Embed Multilingual は 100 以上の言語をサポートしており、言語内 (たとえば、フランス語のドキュメントに対するフランス語クエリを使用した検索) や、言語間での検索 (たとえば、中国語のドキュメントに対する英語クエリを使用した検索) に使用できます。 Embed Multilingual は、Miracl などの多言語ベンチマークで最先端のパフォーマンスを発揮します。 Embed Multilingual には次の属性もあります。
- Embed Multilingual には 1,024 個のディメンションがあります。
- モデルのコンテキスト ウィンドウは 512 トークンです
サーバーレス API としてデプロイする
モデル カタログ内の特定のモデルは、従量課金制のサーバーレス API としてデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
前述の Cohere モデルは、従量課金制のサービスとしてデプロイできるもので、Microsoft Azure Marketplace を通じて Cohere によって提供されます。 Cohere は、これらのモデルの使用条件と価格を変更または更新することがあります。
前提条件
有効な支払い方法を持つ Azure サブスクリプション。 無料または試用版の Azure サブスクリプションは機能しません。 Azure サブスクリプションを持っていない場合は、始めるために有料の Azure アカウントを作成してください。
-
重要
Cohere ファミリ モデルの場合、サーバーレス API のモデル デプロイ オファリングは、EastUS2 またはスウェーデン中部リージョンで作成されたハブでのみ利用できます。
Azure AI Studio の AI Studio プロジェクト。
Azure AI Studio での操作に対するアクセスを許可するには、Azure ロールベースのアクセス制御を使います。 この記事の手順を実行するには、ご自分のユーザー アカウントに、リソース グループの Azure AI 開発者ロールを割り当てる必要があります。 アクセス許可について詳しくは、「Azure AI Studio でのロールベースのアクセス制御」をご覧ください。
新しいデプロイを作成する
以下の手順は、Cohere Embed v3 - English のデプロイを示していますが、モデル名を置き換えることにより、同じ手順を使って Cohere Embed v3 - Multilingual をデプロイすることもできます。
デプロイを作成するには:
Azure AI Studio にサインインします。
左側のサイド バーから [モデル カタログ] を選択します。
Cohere を検索します。
[Cohere-embed-v3-english] を選び、[モデルの詳細] ページを開きます。
[デプロイ] を選び、モデルのサーバーレス API デプロイ ウィンドウを開きます。
または、AI Studio でプロジェクトから開始して、デプロイを始めることもできます。
プロジェクトの左側のサイドバーで、[コンポーネント]>[デプロイ] を選びます。
[+ デプロイの作成] を選びます。
Cohere-embed-v3-english を検索して選びます。 [モデルの詳細] ページを開きます。
[確認] を選び、モデルのサーバーレス API のデプロイ ウィンドウを開きます。
モデルをデプロイするプロジェクトを選びます。 モデルをデプロイするには、プロジェクトが "EastUS2" または "スウェーデン中部" リージョンにある必要があります。
デプロイ ウィザードで、[Azure Marketplace の使用条件] へのリンクを選び、使用条件の詳細を確認します。
選択したモデルの価格について確認するには、[利用料金および使用条件] タブを選びます。
[サブスクライブしてデプロイ] ボタンを選びます。 プロジェクトにモデルを初めてデプロイする場合は、特定のオファリング用のプロジェクトをサブスクライブする必要があります。 この手順では、前提条件に記載されているように、アカウントにリソース グループに対する Azure AI 開発者ロールのアクセス許可が付与されている必要があります。 プロジェクトごとに、モデルの特定の Azure Marketplace オファリングへの固有のサブスクリプションがあり、それを使って支出を管理および監視できます。 現在、プロジェクト内のモデルごとに行うことができるデプロイは 1 つだけです。
特定の Azure Marketplace オファリングのプロジェクトにサブスクライブすると、"同じ" プロジェクト内の "同じ" オファリングの以降のデプロイで再度サブスクライブする必要はありません。 このシナリオが当てはまる場合は、[デプロイを続行する] オプションを選択できます。
デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。
展開 を選択します。 デプロイの準備ができるまで待つと、[デプロイ] ページにリダイレクトされます。
[プレイグラウンドで開く] を選んで、モデルの操作を始めます。
[デプロイ] ページに戻ってデプロイを選び、エンドポイントのターゲット URL とシークレット キーをメモします。 API の使用方法の詳細については、リファレンスのセクションを参照してください。
エンドポイントの詳細、URL、アクセス キーは、[プロジェクトの概要] ページに移動していつでも確認できます。 次に、プロジェクトの左側のサイドバーから [コンポーネント]>[デプロイ] を選びます。
トークンベースの従量課金制でサーバーレス API としてデプロイされた Cohere モデルの課金の詳細については、「サービスとしてデプロイされた Cohere モデルのコストとクォータに関する考慮事項」を参照してください。
Cohere Embed のサービスとしてのモデルを使用する
これらのモデルは、埋め込み API を使って使用できます。
[プロジェクトの概要] ページから、左側のサイドバーに移動し、[コンポーネント]>[デプロイ] を選びます。
作成したデプロイを見つけて選択します。
[ターゲット] URL と [キー] の値をコピーします。
Cohere では、Embed v3 - English と、Embed v3 - Multilingual モデルを使用して、推論用の 2 つのルートを公開しています。
v1/embeddings
は Azure AI Generative Messages API スキーマに対応しており、v1/embed
は Cohere のネイティブ API スキーマをサポートします。API の使用方法の詳細については、リファレンスのセクションを参照してください。
サービスとしてデプロイされた Cohere Embed モデル用の Embed API リファレンス
Cohere Embed v3 - English と Embed v3 - Multilingual では、ルート /embeddings
の Azure AI Model Inference API と、/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 – 関連するドキュメントを検索するためにベクトル データベースに対してクエリを実行するときは、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 |
コストとクォータ
サービスとしてデプロイされたモデルの、コストとクォータに関する考慮事項
従量課金制でサーバーレス API としてデプロイされた Cohere モデルは、Azure Marketplace を通じて Cohere によって提供され、Azure AI Studio と統合して使用されます。 モデルをデプロイするときに、Azure Marketplace の価格を確認できます。
プロジェクトが Azure Marketplace から特定のオファーにサブスクライブするたびに、その消費に関連するコストを追跡するための新しいリソースが作成されます。 推論に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。
コストの追跡方法について詳しくは、「Azure Marketplace を通じて提供されるモデルのコストを監視する」をご覧ください。
クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし、現在、プロジェクトのモデルごとに 1 つのデプロイに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。
コンテンツのフィルター処理
サーバーレス API としてデプロイされたモデルは、Azure AI Content Safety によって保護されます。 Azure AI Content Safety を使用すると、プロンプトと入力候補の両方が、有害なコンテンツ出力の検出と防止を目的とした一連の分類モデルを通過します。 コンテンツ フィルタリング システムは、入力プロンプトと (出力される) 入力候補の両方で、有害な可能性があるコンテンツ特有のカテゴリを検出し、アクションを実行します。 コンテンツフィルタリングの詳細については、こちらを参照してください。
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示