共用方式為


使用 MRL 壓縮截斷維度 (預覽)

重要

此功能在補充使用規定下處於公開預覽狀態。 預覽 REST API 支援此功能。

練習在文字內嵌-3 模型上使用較少維度的能力。 在 Azure OpenAI 上,文字內嵌-3 模型會重新訓練 Matryoshka 表示法學習 (MRL) 技術,以在不同壓縮層級產生多個向量表示法。 這種方法會產生更快的搜尋並降低儲存成本,且語意資訊遺失最少。

在 Azure AI 搜尋中,MRL 支援補充 純量和二進位量化。 當您使用任一 truncationDimension 量化方法時,也可以指定向量欄位上的屬性,以減少文字內嵌的維度。

MRL 多層次壓縮可節省向量儲存空間,並根據文字內嵌改善向量查詢的查詢回應時間。 在 Azure AI 搜尋中,MRL 支援只會與另一個量化方法一起提供。 搭配 MRL 使用二進位量化可提供最大向量索引大小縮減。 若要達到最大的記憶體縮減,請使用二進位量化搭配 MRL,並將 stored 設定為 false。

此功能處於預覽。 其可在以預覽 API 版本為目標的 Beta SDK 套件中和 中取得 2024-09-01-preview

必要條件

支援的用戶端

您可以使用 REST API 或 Azure SDK Beta 套件來實作 MRL 壓縮。

目前沒有 Azure 入口網站 或 Azure AI Studio 支援。

如何使用 MRL 擴充文字內嵌

MRL 是內建至您已使用之文字內嵌模型的功能。 若要受益於 Azure AI 搜尋中的這些功能,請遵循下列步驟。

  1. 使用建立 或更新索引 (預覽) 或對等 API 來指定索引架構。

  2. 將向量欄位 新增至索引定義。

  3. vectorSearch.compressions在索引定義中指定物件。

  4. 包含量化方法,可以是純量或二進位 (建議的)。

  5. truncationDimension使用文字內嵌-3-large 模型時,請包含設定為 512 的參數,或最低為 256。

  6. 指定指定 HNSW 演算法和向量壓縮物件的向量配置檔。

  7. 將向量配置檔指派給類型 Edm.HalfEdm.Single 欄位集合中的向量欄位。

使用支援 MRL 的文字內嵌模型沒有任何查詢端修改。 在查詢時間進行整合向量化、文字到查詢轉換、語意排名和其他相關性增強功能,例如使用原始向量重新調整,以及過度取樣不受 MRL 支持影響。

由於額外的步驟,索引編製速度較慢,但查詢速度較快。

支援 MRL 的向量搜尋組態範例

下列範例說明符合 MRL 需求和建議的向量搜尋組態。

truncationDimension 是壓縮屬性。 它會指定將記憶體中的向量圖形壓縮多少,以及純量或二進位壓縮等壓縮方法。 針對二進位量化,我們建議使用1,024或更高版本 truncationDimension 。 使用 MRL 和二進位壓縮時,小於 1,000 的維度會降低搜尋結果的品質。

{ 
  "vectorSearch": { 
    "profiles": [ 
      { 
        "name": "use-bq-with-mrl", 
        "compression": "use-mrl,use-bq", 
        "algorithm": "use-hnsw" 
      } 
    ],
    "algorithms": [
       {
          "name": "use-hnsw",
          "kind": "hnsw",
          "hnswParameters": {
             "m": 4,
             "efConstruction": 400,
             "efSearch": 500,
             "metric": "cosine"
          }
       }
    ],
    "compressions": [ 
      { 
        "name": "use-mrl", 
        "kind": "truncation", 
        "rerankWithOriginalVectors": true, 
        "defaultOversampling": 10, 
        "truncationDimension": 1024
      }, 
      { 
        "name": "use-bq", 
        "kind": "binaryQuantization", 
        "rerankWithOriginalVectors": true,
        "defaultOversampling": 10
       } 
    ] 
  } 
} 

以下是符合 MRL 需求之完整指定向量欄位定義的範例

回想一下,向量欄位的類型必須是 Edm.HalfEdm.Single。 向量欄位必須具有 vectorSearchProfile 可決定演算法和壓縮設定的屬性。 向量欄位具有 dimensions 屬性,可用來指定評分和排名結果的維度數目。 其值應該是您所使用之模型的維度限制(1,536 用於文字內嵌-3-small)。

{
    "name": "text_vector",
    "type": "Collection(Edm.Single)",
    "searchable": true,
    "filterable": false,
    "retrievable": false,
    "stored": false,
    "sortable": false,
    "facetable": false,
    "key": false,
    "indexAnalyzer": null,
    "searchAnalyzer": null,
    "analyzer": null,
    "normalizer": null,
    "dimensions": 1536,
    "vectorSearchProfile": "use-bq-with-mrl",
    "vectorEncoding": null,
    "synonymMaps": []
}