註
Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。
重要
標記(預覽)的功能、能力或屬性不受服務等級協議涵蓋,也不建議用於生產工作負載,且在正式上架前可能會有所變動或受限。 Azure AI 搜尋服務 預覽條款適用於所有預覽功能,無論是獨立功能還是正式推出功能的一部分。
在本文中,您將學習如何在 Azure AI 搜尋服務 的索引與查詢執行中,使用 Microsoft Foundry 模型目錄模型進行整合向量化(預覽)。
工作流程要求你從目錄中部署模型,其中包含 Microsoft 及其他公司的嵌入模型。 部署模型會依照各提供者的計費結構進行計費。
模型部署後,你可以搭配 AML 技能進行索引時的整合向量化,或搭配 Microsoft Foundry 模型目錄向量器進行查詢。
提示
使用 匯入資料 精靈 產生包含 AML 技能的技能組,用於 Foundry 部署的嵌入模型。 AML 技能定義的輸入、輸出和映射由精靈產生,讓你在撰寫任何程式碼前能輕鬆測試模型。
先決條件
任何地區、任何價格層級的 Azure AI 搜尋服務 服務。
支援的嵌入模型
模型目錄中支援的嵌入模型依使用方式而異:
有關程式支援的最新模型清單,請參閱 AML 技能 及 Microsoft Foundry 模型目錄向量器參考資料。
關於Azure入口網站支援的最新模型清單,請參見Azure入口網站的
快速入門:向量搜尋,以及Azure入口網站的快速入門:多模態搜尋 快速入門:多模態搜尋。
從模型目錄中部署一個嵌入模型
請依 照這些入口網站的指示 ,將支援的模型部署到你的專案中。
記下目標 URI、鍵和型號名稱。 你需要這些值來定義搜尋索引中的向量器,以及在索引時呼叫模型端點的技能組。
如果你偏好 權杖認證 而非基於金鑰的認證,只需複製型號名稱即可。 不過,請註明模型部署的地區。
設定搜尋索引與索引器以使用已部署的模型。
若要在索引時使用模型,請參閱 如何使用整合向量化。 務必使用 AML 技能,而非 Azure OpenAI 嵌入技能。 下一節將介紹技能配置。
要在查詢時將模型用作向量器,請參見 「配置向量器」。 此步驟請務必使用 Microsoft Foundry 模型目錄向量器。
將嵌入模型部署為無伺服器架構
AML 技能與 Microsoft Foundry 模型庫向量化工具只接受 Cohere 嵌入模型的無伺服器部署。 這些模型不支援透過 Microsoft Foundry 入口網站進行無伺服器部署,因此請使用 Azure CLI 來建立部署。 欲了解更多資訊,請參閱 「部署模型作為無伺服器 API 部署」。
建立 Cohere 無伺服器部署的方法是:
用
ml擴充功能安裝 Azure CLI。az extension add -n ml登入 Azure 並設定預設值。
az login az account set --subscription <subscription-id> az configure --defaults workspace=<project-name> group=<resource-group>建立一個
subscribe.yaml檔案以訂閱該模型的市場訂閱。name: cohere-embed-v3-english-subscription model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english對於其他支援的模型,請將模型 ID 替換為以下其中一個值。
模型 型號識別碼 Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-englishCohere-embed-v3-multilingual azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingualCohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4執行以下指令建立訂閱。
az ml marketplace-subscription create --file subscribe.yaml建立
endpoint.yaml一個檔案來建立無伺服器端點。name: cohere-embed-v3-english-endpoint model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english執行以下指令建立端點。
az ml serverless-endpoint create --file endpoint.yaml如為金鑰型驗證,請取得端點 URI 和金鑰,以便用於技能或向量化工具。
az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri" az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
範例 AML 技能承載
當你從模型目錄部署嵌入模型時,你會使用 Azure AI 搜尋服務 中的 AML 技能來連結它們來索引工作負載。
本節說明反洗錢技能定義及指數映射。 它包含一個已設定為可與相應的已部署端點配合使用的範例承載。 欲了解更多資訊,請參閱 技能上下文與輸入註解語言。
Cohere嵌入模型
此 AML 技能載荷可搭配以下嵌入模型運作:
- Cohere-embed-v3-english
- Cohere-embed-v3-multilingual
- Cohere-embed-v4
它假設你是用文字分割技能來分塊內容,因此要向量化的文字會放在路徑上 /document/pages/* 。 如果您的文本來自不同的路徑,請相應地更新所有對該 /document/pages/* 路徑的參考。
你必須將 /v1/embed 路徑加到你從 Foundry 部署複製的網址末尾。 你也可以調整 input_type、truncate 和 embedding_types 輸入的值,以更符合你的使用情境。 欲了解更多可用選項,請參閱 Cohere Embed API 參考資料。
URI 和金鑰會在你從目錄部署模型時產生。 欲了解更多關於這些值的資訊,請參閱 如何與 Foundry 部署 Cohere 嵌入模型。
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"context": "/document/pages/*",
"uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
"key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
"inputs": [
{
"name": "texts",
"source": "=[$(/document/pages/*)]"
},
{
"name": "input_type",
"source": "='search_document'"
},
{
"name": "truncate",
"source": "='NONE'"
},
{
"name": "embedding_types",
"source": "=['float']"
}
],
"outputs": [
{
"name": "embeddings",
"targetName": "aml_vector_data"
}
]
}
此外,Cohere 模型的輸出並非直接嵌入陣列,而是包含該陣列的 JSON 物件。 你需要在透過indexProjections或outputFieldMappings將其映射到索引定義時適當選擇它。 以下是範例 indexProjections 承載,可讓您實作此對應。
如果你在技能定義中選擇了不同的embedding_types類型,請將float路徑中的source更改為你選擇的類型。
"indexProjections": {
"selectors": [
{
"targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
"parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
"sourceContext": "/document/pages/*",
"mappings": [
{
"name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
"source": "/document/pages/*/aml_vector_data/float/0"
}
]
}
],
"parameters": {}
}
樣本向量器有效載荷
Microsoft Foundry 模型目錄向量器,與 AML 技能不同,僅針對可透過模型目錄部署的嵌入模型進行設計。 主要差別在於你不必擔心請求與回應的有效負載。 不過,你必須提供 modelName,這對應於你部署模型後複製的「Model ID」。
以下是範例承載,說明在已複製 Foundry 屬性的情況下,您要如何在索引定義上設定向量化工具。
對於 Cohere 模型,不應該像在使用技能時那樣在網址末尾加上 /v1/embed 路徑。
"vectorizers": [
{
"name": "<YOUR_VECTORIZER_NAME_HERE>",
"kind": "aml",
"amlParameters": {
"uri": "<YOUR_URL_HERE>",
"key": "<YOUR_PRIMARY_KEY_HERE>",
"modelName": "<YOUR_MODEL_ID_HERE>"
},
}
]
使用令牌認證連接
如果您無法使用基於金鑰的驗證,可以在 Azure 上透過角色型存取控制,設定 AML 技能與 Microsoft Foundry 模型目錄向量器連接,來實現令牌驗證。
你的搜尋服務必須擁有 系統或使用者指定的管理身份,且該身份必須擁有 專案的擁有者 或 貢獻者 權限。 接著你可以從技能和向量器定義中移除該 key 欄位,改為 resourceId。 如果你的專案和搜尋服務位於不同地區,也請提供該 region 欄位。
"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service
註
此整合目前不支援 Cohere 模型的令牌認證。 你必須使用基於金鑰的驗證。