MRL sıkıştırma kullanarak boyutları kesme

Not

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Metin ekleme-3 modellerinde daha az boyut kullanma özelliğini kullanın. Azure OpenAI'de metin ekleme-3 modelleri, farklı sıkıştırma düzeylerinde birden çok vektör gösterimi üreten Matryoshka Temsili Öğrenmesi (MRL) tekniğinde yeniden eğitilir. Bu yaklaşım, en az anlam bilgisi kaybıyla daha hızlı aramalar ve daha düşük depolama maliyetleri oluşturur.

Azure Yapay Zeka Arama'te MRL, skaler ve ikili niceleme desteği sağlar. Niceleme yöntemlerinden birini kullandığınızda, metin eklemelerin boyutsallığını azaltmak için vektör alanlarınızda bir truncationDimension özellik belirtebilirsiniz.

MRL çok düzeyli sıkıştırma, vektör depolamada tasarruf sağlar ve metin eklemelerine göre vektör sorguları için sorgu yanıt sürelerini iyileştirir. Azure Yapay Zeka Arama'te MRL desteği yalnızca başka bir niceleme yöntemiyle birlikte sunulur. MRL ile ikili niceleme kullanılması maksimum vektör dizini boyutunun azaltılmasını sağlar. Maksimum depolama azaltması elde etmek için MRL ile binary niceleme kullanın ve stored değerini false olarak ayarlayın.

Uyarı

Eğer stored'i false olarak ayarlarsanız, her güncellemede vektörlerin tamamını sağlamadığınız sürece, vektör verileri kısmi belge güncellemeleri sırasında kaybolur. Bu sorundan kaçınmak için stored değerini true olarak ayarlayın. Daha fazla bilgi için bkz . İsteğe bağlı vektör örneklerini depolamadan kaldırma.

Önkoşullar

Desteklenen istemciler

MRL sıkıştırması uygulamak için REST API'leri veya Azure SDK paketlerini kullanabilirsiniz. Şu anda Azure portalı veya Microsoft Foundry desteği yoktur.

  • Özellik desteği için her Azure SDK paketinin değişiklik günlüklerini denetleyin: Python, .NET, Java, JavaScript.

MRL-genişletilmiş metin eklemelerini kullan

MRL, kullanmakta olduğunuz metin ekleme modelinde yerleşiktir. Azure Yapay Zeka Arama'te MRL özelliklerini kullanmak için:

  1. Dizin şemasını belirtmek için Dizin Oluştur veya Güncelleştir'i veya eşdeğer bir API'yi kullanın.

  2. Dizin tanımına vektör alanları ekleyin.

  3. Dizin tanımınızda bir vectorSearch.compressions nesne belirtin.

  4. Skaler veya ikili (önerilir) olmak üzere bir niceleme yöntemi ekleyin.

  5. parametresini truncationDimension ekleyin ve 512 olarak ayarlayın. Text-embedding-3-large modelini kullanıyorsanız, 256'ya kadar düşük olarak ayarlayabilirsiniz.

  6. HNSW algoritmasını ve vektör sıkıştırma nesnesini belirten bir vektör profili ekleyin.

  7. Vektör profilini türündeki Edm.Half veya Edm.Single alan koleksiyonundaki bir vektör alanına atayın.

MRL özellikli metin ekleme modelini kullanmak için sorgu tarafı değişiklikleri yoktur. MRL desteği, tümleşik vektörleştirmeyi, sorgu zamanında metinden sorguya dönüşümleri, anlamsal sıralamayı ve orijinal vektörlerle yeniden sıralama ve aşırı örnekleme gibi diğer bağlam geliştirme özelliklerini etkilemez.

Ek adımlar nedeniyle dizin oluşturma daha yavaş olsa da sorgular daha hızlıdır.

Örnek: MRL'i destekleyen vektör arama yapılandırması

Aşağıdaki örnekte MRL gereksinimlerini ve önerilerini karşılayan bir vektör arama yapılandırması gösterilmektedir.

truncationDimension bir sıkıştırma özelliğidir. Skaler veya ikili sıkıştırma gibi bir sıkıştırma yöntemiyle birlikte bellekteki vektör grafiğinin ne kadar küçültülmesini belirtir. truncationDimension için 1.024 veya üstünü öneririz ikili niceleme ile. 1.000'den az boyutluluk, MRL ve ikili sıkıştırma kullanılırken arama sonuçlarının kalitesini düşürür.

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

Aşağıdaki JSON, bu profili kullanan vektör alanı tanımını gösterir:

  • Veri türü ya Collection(Edm.Half) ya da Collection(Edm.Single) şeklindedir.

  • alanında algoritmayı ve sıkıştırma ayarlarını belirten bir vectorSearchProfile özellik vardır.

  • alanı, puanlama ve derecelendirme sonuçları için boyut sayısını belirten bir dimensions özelliğe sahiptir. Değeri, kullanmakta olduğunuz modelin boyut sınırı olmalıdır (metin ekleme-3-küçük için 1.536).

{
    "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": []
}