Note
Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。
Azure AI 搜尋服務 支援 Collection(Edm.Byte) 打包二進位型態,以進一步減少向量資料的儲存與記憶體佔用。 你可以用這個資料型態輸出模型,例如 Cohere 的 Embed v3 二進位嵌入模型 ,或任何其他以二進位位元組形式輸出向量的嵌入模型或流程。
配置二元向量索引有三個步驟:
- 新增一個向量搜尋演算法,指定用於二元向量比較的漢明距離
- 加入一個指向演算法的向量剖面
- 加入一個型態
Collection(Edm.Byte)為的向量場,並指派漢明距離
本文以 REST API 作為說明,但你也可以使用 Azure SDK 或 Azure 入口網站,將二進位欄位加入索引。 你可以透過使用 Indexes - Create 或 Indexes - Create 或 Update REST API 來指派二進位資料類型給欄位。
提示
如果你正在研究二進位向量的支援,因為它體積較小,也可以考慮 Azure AI 搜尋服務 中的向量量化和儲存減少功能。 輸入為 float32 或 float16 型別的內嵌。 輸出會以更小的格式儲存資料。 欲了解更多資訊,請參閱 使用二進位或純量量化壓縮 及 指派狹義資料型別。
先決條件
二元向量,每個維度為一位元,以uint8值包裝,每個值為八位元。 你可以使用直接產生 打包式二進位 向量的模型,或在客戶端應用程式中將向量量化成二進位向量來取得這些向量。
限制
Import data 精靈不支援 Azure 入口網站。
AML 技能 不支援二進位欄位,該技能用於整合向量化 Microsoft Foundry 模型目錄中的模型。
新增向量搜尋演算法與向量剖面
向量搜尋演算法在索引過程中建立查詢導覽結構。 對於二元向量場,系統使用漢明距離度量來進行向量比較。
要設定二元向量的向量搜尋:
設定 Indexes – Create or Update (REST API) 要求。
在索引結構中,新增
vectorSearch一個指定設定檔與演算法的區塊。加入一個或多個使用相似度指標的
hamming。 分層可導航小世界 (Hierarchical Navigable Small Worlds,HNSW) 演算法相當常見,但您也可以搭配窮舉式 K 最近鄰 (KNN) 使用漢明距離。加入一個或多個向量剖面來指定演算法。
以下範例展示了一個基本 vectorSearch 配置。
"vectorSearch": {
"profiles": [
{
"name": "myHnswProfile",
"algorithm": "myHnsw",
"compression": null,
"vectorizer": null
}
],
"algorithms": [
{
"name": "myHnsw",
"kind": "hnsw",
"hnswParameters": {
"metric": "hamming"
}
},
{
"name": "myExhaustiveKnn",
"kind": "exhaustiveKnn",
"exhaustiveKnnParameters": {
"metric": "hamming"
}
}
]
}
在索引中加入二元欄位
索引的欄位集合必須包含文件鍵、向量欄位,以及你在混合搜尋情境中所需的其他欄位。
二進位欄位使用 Collection(Edm.Byte) 型別,並以打包形式包含嵌入。 例如,若原始嵌入維度為 1024,則填充二元向量長度為 ceiling(1024 / 8) = 128。 只需在欄位上設定 vectorEncoding 屬性即可獲得打包格式。
要將二元向量場加入索引:
在欄位集合中新增一個欄位並命名。
將資料型別設為
Collection(Edm.Byte)。設定
vectorEncoding為packedBit二進位編碼。設定
dimensions為1024。 指定原始(解包後)向量維度。將
vectorSearchProfile設定為您在前一步驟中定義的設定檔。設定
searchable為true。
以下欄位定義是索引模式中二元向量場的範例。
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
相關內容
請參閱 azure-search-vector-samples 資料庫,了解端到端工作流程,包括結構定義、向量化、索引及查詢。
請檢視向量搜尋示範程式碼,分別是
C# 、Python 以及 JavaScript 。