如何搭配 Azure AI Foundry 使用 Cohere 內嵌 V3 模型
重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
在本文中,您將瞭解 Cohere 內嵌 V3 模型,以及如何與 Azure AI Foundry 搭配使用。 Cohere 系列的模型包含已針對不同使用案例 (包括聊天完成、內嵌及重新排名) 最佳化的各種模型。 Cohere 模型已針對各種使用案例 (包括推理、摘要及問題解答) 進行最佳化。
重要
處於預覽狀態的模型會在模型目錄中的模型卡片上標示為 預覽 。
Cohere 內嵌模型
適用於內嵌的 Cohere 系列模型包括下列模型:
Cohere Embed English 是用於語意搜尋、擷取增強產生(RAG)、分類和群集的多模式(文字和影像)表示模型。 Embed English 在 HuggingFace (大型文字內嵌) MTEB 基準上擁有出色效能,且在金融、法律和一般用途語料庫等多個產業的使用案例中表現優秀。 Embed 英文版還具有以下屬性:
- 內嵌英文有 1,024 個維度
- 模型的內容視窗是 512 個權杖
- 內嵌英文接受影像作為base64編碼的數據URL
映射內嵌會取用每個映像的固定令牌數目—每個映射 1,000 個令牌—這可轉譯為每個影像內嵌 0.0001 美元的價格。 影像的大小或解析度不會影響取用的令牌數目,前提是影像位於可接受的維度、檔案大小和格式內。
必要條件
若要搭配 Azure AI Foundry 使用 Cohere 內嵌 V3 模型,您需要下列必要條件:
模型部署
部署至無伺服器 API
您可以透過隨用隨付計費,將 Cohere Embed V3 模型部署至無伺服器 API 端點。 這種部署可讓您以 API 的形式取用模型,而不必在您的訂用帳戶上裝載模型,同時讓組織保持所需的企業安全性和合規性。
部署至無伺服器 API 端點不需要您訂用帳戶的配額。 如果您的模型尚未部署,請使用 Azure AI Foundry 入口網站、適用於 Python 的 Azure 機器學習 SDK、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 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 模型一次可以接受 1024 的批次。 建立批次時,請確定您未超過此限制。
建立不同類型的內嵌
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 英文版還具有以下屬性:
- 內嵌英文有 1,024 個維度
- 模型的內容視窗是 512 個權杖
- 內嵌英文接受影像作為base64編碼的數據URL
映射內嵌會取用每個映像的固定令牌數目—每個映射 1,000 個令牌—這可轉譯為每個影像內嵌 0.0001 美元的價格。 影像的大小或解析度不會影響取用的令牌數目,前提是影像位於可接受的維度、檔案大小和格式內。
必要條件
若要搭配 Azure AI Foundry 使用 Cohere 內嵌 V3 模型,您需要下列必要條件:
模型部署
部署至無伺服器 API
您可以透過隨用隨付計費,將 Cohere Embed V3 模型部署至無伺服器 API 端點。 這種部署可讓您以 API 的形式取用模型,而不必在您的訂用帳戶上裝載模型,同時讓組織保持所需的企業安全性和合規性。
部署至無伺服器 API 端點不需要您訂用帳戶的配額。 如果您的模型尚未部署,請使用 Azure AI Foundry 入口網站、適用於 Python 的 Azure 機器學習 SDK、Azure CLI 或 ARM 範本,將模型部署為無伺服器 API。
已安裝推斷套件
您可以使用 npm
的 @azure-rest/ai-inference
套件來取用此模型的預測。 若要安裝此套件,您需要下列先決條件:
- 具有
npm
的Node.js
LTS 版本。 - 端點 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 模型一次可以接受 1024 的批次。 建立批次時,請確定您未超過此限制。
建立不同類型的內嵌
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 英文版還具有以下屬性:
- 內嵌英文有 1,024 個維度
- 模型的內容視窗是 512 個權杖
- 內嵌英文接受影像作為base64編碼的數據URL
映射內嵌會取用每個映像的固定令牌數目—每個映射 1,000 個令牌—這可轉譯為每個影像內嵌 0.0001 美元的價格。 影像的大小或解析度不會影響取用的令牌數目,前提是影像位於可接受的維度、檔案大小和格式內。
必要條件
若要搭配 Azure AI Foundry 使用 Cohere 內嵌 V3 模型,您需要下列必要條件:
模型部署
部署至無伺服器 API
您可以透過隨用隨付計費,將 Cohere Embed V3 模型部署至無伺服器 API 端點。 這種部署可讓您以 API 的形式取用模型,而不必在您的訂用帳戶上裝載模型,同時讓組織保持所需的企業安全性和合規性。
部署至無伺服器 API 端點不需要您訂用帳戶的配額。 如果您的模型尚未部署,請使用 Azure AI Foundry 入口網站、適用於 Python 的 Azure 機器學習 SDK、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 模型一次可以接受 1024 的批次。 建立批次時,請確定您未超過此限制。
建立不同類型的內嵌
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 模型可以根據其使用案例對內嵌進行最佳化。
更多推斷範例
描述 | 語言 | 範例 |
---|---|---|
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) 和工具使用範例
描述 | Packages | 範例 |
---|---|---|
使用 Cohere 內嵌建立本機 Facebook AI 相似性搜尋 (FAISS) 向量索引 - Langchain | langchain , langchain_cohere |
cohere_faiss_langchain_embed.ipynb (英文) |
使用 Cohere Command R/R+ 回答本機 FAISS 向量索引的資料問題 - Langchain | langchain , langchain_cohere |
command_faiss_langchain.ipynb (英文) |
使用 Cohere Command R/R+ 回答 AI 搜尋向量索引的資料問題 - Langchain | langchain , langchain_cohere |
cohere-aisearch-langchain-rag.ipynb (英文) |
使用 Cohere Command R/R+ 回答 AI 搜尋向量索引的資料問題 - Cohere SDK | cohere , azure_search_documents |
cohere-aisearch-rag.ipynb (英文) |
使用 LangChain 呼叫 Command R+ 工具/函式 | cohere 、 、 langchain langchain_cohere |
command_tools-langchain.ipynb (英文) |
部署為無伺服器 API 端點的 Cohere 系列模型的成本和配額考量
Cohere 透過 Azure Marketplace 提供部署為無伺服器 API 的 Cohere 模型,並與 Azure AI Foundry 整合以供使用。 您可以在部署模型時找到 Azure Marketplace 價格。
每次專案訂閱來自 Azure Marketplace 的指定供應項目時,都會建立新的資源,以便追蹤與其使用量相關聯的成本。 使用相同的資源來追蹤與推斷相關聯的成本;不過,可以使用多個計量獨立追蹤每個案例。
如需如何追蹤成本的詳細資訊,請參閱監視透過 Azure Marketplace 提供的模型成本 (部分機器翻譯)。
配額會根據每個部署管理。 每個部署的速率限制為每分鐘 200,000 個權杖,每分鐘 1,000 個 API 要求。 不過,我們目前限制每個專案的每個模型為一個部署。 如果目前的速率限制無法滿足您的情節,請連絡 Microsoft Azure 支援。
相關內容
- Azure AI 模型推斷 API
- [將模型部署為無伺服器 API]
- 從不同的 Azure AI Foundry 專案或中樞取用無伺服器 API 端點
- 無伺服器 API 端點中模型的區域可用性
- [規劃和管理成本 (Marketplace)]