使用 Azure AI Foundry 模型目錄中的內嵌模型進行整合向量化
重要
此功能在補充使用規定下處於公開預覽狀態。 2024-05-01-Preview REST API 支援此功能。
在本文中,瞭解如何在 Azure AI Foundry 模型目錄中存取內嵌模型,以在編製索引期間以及在 Azure AI 搜尋中的查詢中轉換向量。
工作流程包含模型部署步驟。 模型目錄包含來自Microsoft和其他公司的內嵌模型。 模型部署可根據每個提供者的計費結構進行計費。
部署模型之後,您可以在編製索引期間使用它進行 整合向量化 ,或使用 Azure AI Foundry 向量化工具 進行查詢。
提示
使用匯 入和向量化數據 精靈來產生技能集,其中包含在 Azure AI Foundry 上部署內嵌模型的 AML 技能。 精靈會產生輸入、輸出和對應的 AML 技能定義,讓您在撰寫任何程式碼之前輕鬆測試模型。
必要條件
Azure AI 搜尋服務,任何區域和階層。
Azure AI Foundry 和 Azure AI Foundry 專案。
支援的內嵌模型
整合向量化和匯 入和向量化數據精靈 支援下列內嵌模型在模型目錄中:
針對文字內嵌:
- Cohere-embed-v3-english
- Cohere-embed-v3-multilingual
針對映像內嵌:
- Facebook-DinoV2-Image-Embeddings-ViT-Base
- Facebook-DinoV2-Image-Embeddings-ViT-Giant
從 Azure AI Foundry 模型目錄部署內嵌模型
開啟 Azure AI Foundry 模型目錄。 如果您還沒有專案,請建立專案。
套用篩選,只顯示內嵌模型。 在 [推斷工作] 下,選取 [內嵌]:
選取支援的模型,然後選取 [ 部署]。
視需要接受預設值或修改,然後選取 [ 部署]。 部署詳細資料會根據您選取的模型而有所不同。
監視 [佈建狀態],等候模型完成部署。 狀態應該會從「正在佈建」變更為「正在更新」,再變更為「已成功」。 您可能需要每隔幾分鐘選取 [重新整理],才能看到狀態更新。
記下目標 URI、金鑰和模型名稱。 針對搜尋索引中的向量化工具定義,以及在編製索引期間呼叫模型端點的技能集,您需要這些值。
您可以選擇性地將端點變更為使用權杖驗證,而不是金鑰驗證。 如果您啟用令牌驗證,您只需要複製 URI 和模型名稱,但請記下模型要部署到哪個區域。
您現在可以設定搜尋索引和索引子來使用已部署的模型。
若要在編製索引期間使用模型,請參閱啟用整合向量化的步驟。 請務必使用 Azure Machine Learning (AML) 技能,不要使用 AzureOpenAIEmbedding 技能。 下一節說明技能設定。
若要在查詢時間使用模型作為向量化工具,請參閱設定向量化工具。 請務必針對此步驟使用 Azure AI Foundry 模型目錄向量化程式 。
範例 AML 技能承載
當您從 Azure AI Foundry 模型目錄 部署內嵌模型時,您會使用 Azure AI 搜尋服務中的 AML 技能 來連線到這些模型,以編制工作負載的索引。
本節說明 AML 技能定義和索引對應。 包含已設定為使用其對應已部署端點的範例承載。 如需這些承載運作方式的技術詳細資料,請參閱技能內容和輸入註釋語言。
此 AML 技能承載適用於下列影像,內嵌來自 Azure AI Foundry 的模型:
- Facebook-DinoV2-Image-Embeddings-ViT-Base
- Facebook-DinoV2-Image-Embeddings-ViT-Giant
假設您的影像來自藉由啟用內建影像擷取而建立的 /document/normalized_images/*
路徑。 如果您的影像來自不同的路徑,或儲存為 URL,請據以更新 /document/normalized_images/*
路徑的所有參考。
當您從目錄部署模型時,會產生 URI 和金鑰。 如需這些值的詳細資訊,請參閱 如何使用 Azure AI Foundry 部署大型語言模型。
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"context": "/document/normalized_images/*",
"uri": "https://myproject-1a1a-abcd.eastus.inference.ml.azure.com/score",
"timeout": "PT1M",
"key": "bbbbbbbb-1c1c-2d2d-3e3e-444444444444",
"inputs": [
{
"name": "input_data",
"sourceContext": "/document/normalized_images/*",
"inputs": [
{
"name": "columns",
"source": "=['image', 'text']"
},
{
"name": "index",
"source": "=[0]"
},
{
"name": "data",
"source": "=[[$(/document/normalized_images/*/data), '']]"
}
]
}
],
"outputs": [
{
"name": "image_features"
}
]
}
範例 Azure AI Foundry 向量化工具承載
Azure AI Foundry 向量化工具與 AML 技能不同,其量身定做,僅適用於可透過 Azure AI Foundry 模型目錄部署的內嵌模型。 主要差異在於您不需要擔心要求和響應承載,但您必須提供 modelName
,其會對應至您在 Azure AI Foundry 入口網站中部署模型之後複製的「模型標識碼」。
以下是假設從 Azure AI Foundry 複製的屬性,如何在索引定義上設定向量工具的範例承載。
針對 Cohere 模型,您不應該像使用技能一樣,將 /v1/embed
路徑新增至 URL 結尾。
"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 技能與 Azure AI Foundry 向量化工具連線來進行 令牌驗證 。 搜尋服務必須具有系統或使用者指派的受控識別,且身分識別必須具有 AML 專案工作區的擁有者或參與者權限。 然後,您可以從技能與向量化工具定義中移除金鑰欄位,並將其取代為 resourceId 欄位。 如果您的 AML 專案和搜尋服務位於不同的區域,也請提供區域欄位。
"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 need if AML project lives in different region from search service