Aracılığıyla paylaş


İsteğe bağlı vektör örneklerini depolama alanından kaldırma

Azure AI Search, belirli iş yüklerinde kullanılan vektör alanlarının birden çok kopyasını depolar. Sorgu yanıtında ham vektörleri döndürme gibi belirli bir davranışı desteklemeniz gerekmiyorsa, dizinde söz konusu iş yükü için depolamayı atlayan özellikleri ayarlayabilirsiniz.

Önkoşullar

Vektör alanları nasıl depolanır?

Her vektör alanı için, her biri farklı bir amaca hizmet eden üç vektör kopyası olabilir:

Örnek Kullanım Kullanılarak denetlendi
Belge dizin oluşturma sırasında alınan JSON dosyasını depolayan kaynak vektörleri Belge dizini oluşturma sırasında veya mergeOrUpload ile merge artımlı veri yenileme için kullanılır. Sorgu yanıtında "alınabilir" vektörlerin döndürülmesini istiyorsanız da kullanılır. stored vektör alanlarındaki özellik
Özgün tam duyarlık vektörleri Mevcut dizinlerde bunlar iç dizin işlemleri ve kapsamlı KNN araması için kullanılır. Sıkıştırma kullanan vektörler için, skaler veya ikili niceleme sıkıştırması kullanılarak vektör alanlarında ANN aramasından eldeilen aşırı örneklenmiş aday sonuç kümesinde yeniden puanlama (etkinse) için de kullanılır. rescoringOptions.rescoreStorageMethod özelliğine sahiptir vectorSearch.compressions. API sürümleri ve sonraki sürümlerle 2024-11-01-Preview oluşturulan dizinlerde sıkıştırılmamış vektör alanları için, arama etkinlikleri veya kalite üzerinde hiçbir etkisi olmadan bu varsayılan olarak atlanır.
Yaklaşık En Yakın Komşular (ANN) araması için HNSW grafiğindeki vektörler ANN sorgu yürütmesi için kullanılır. Tam duyarlıklı vektörlerden (sıkıştırma uygulanmadığında) veya nicelenmiş vektörlerden (sıkıştırma uygulandığında) oluşur Yalnızca HNSW için geçerlidir. Bu veri yapıları verimli ANN araması için gereklidir.

Vektör depolamadan ilk iki örneği kalıcı olarak atabilecek özellikler ayarlayabilirsiniz.

ANN vektör sorgu yürütmesi için son örnek (vektörler ve graf) gereklidir. Skaler veya ikili niceleme gibi sıkıştırma teknikleri kullanılırsa, bunlar bu veri kümesine uygulanır. Kayıplı sıkıştırmayı dengelemek istiyorsanız, ANN arama kalitesini geliştirmek için yeniden puanlama amacıyla ikinci örneği tutmanız gerekir.

stored Özelliğini ayarlama

stored özelliği, bir vektör alanı tanımında depolamanın alınabilir vektör alanı içeriği (kaynak örnek) için ayrılıp ayrılmadığını belirleyen bir boole özelliğidir. stored özelliği varsayılan olarak true değeridir. Sorgu yanıtında ham vektör içeriğine ihtiyacınız yoksa false olarak değiştirerek stored alan başına yüzde 50'ye kadar depolama alanı kaydedebilirsiniz.

False olarak ayarlamak stored için dikkat edilmesi gerekenler:

  • Vektörler insan tarafından okunamadığından, BUNLARı RAG senaryolarında LLM'lere gönderilen sonuçlardan ve bir arama sayfasında işlenen sonuçlardan atlayabilirsiniz. Ancak vektörleri vektör içeriğini kullanan bir aşağı akış işleminde kullanıyorsanız bunları koruyun.

  • Ancak, dizin oluşturma stratejiniz var olan bir belgede "merge" veya "mergeOrUpload" gibi kısmi belge güncelleştirmeleri içeriyorsa, ayar stored=false birleştirme sırasında bu alanlarda içerik güncelleştirmelerini engeller. Arama belgesine yapılan her "birleştirme" veya "mergeOrUpload" işleminde vektör alanlarını, güncelleştirdiğiniz seçici olmayan alanlarla birlikte sağlamanız gerekir; aksi durumda vektör bırakılır.

Önemli

İlişkilendirmeyi stored=false ayarlamak geri alınamaz. Bu özellik yalnızca dizini oluşturduğunuzda ayarlanabilir ve yalnızca vektör alanlarında izin verilir. Var olan bir dizini yeni vektör alanlarıyla güncelleştirmek bu özelliği olarak falseayarlayamaz. Vektör içeriğini daha sonra almak istiyorsanız, dizini bırakmanız ve yeniden oluşturmanız veya yeni ilişkilendirmeye sahip yeni bir alan oluşturup yüklemeniz gerekir.

Arama dizinindeki yeni vektör alanları için, vektör alanının alınabilir depolama alanını kalıcı olarak kaldırmak için false olarak ayarlayın stored . Aşağıdaki örnekte özelliğiyle bir vektör alanı tanımı gösterilmektedir stored .

PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-07-01 
  Content-Type: application/json  
  api-key: [admin key]  

    { 
      "name": "demo-index", 
      "fields": [ 
        { 
          "name": "vectorContent", 
          "type": "Collection(Edm.Single)", 
          "retrievable": false, 
          "stored": false, 
          "dimensions": 1536, 
          "vectorSearchProfile": "vectorProfile" 
        } 
      ] 
    } 

Önemli noktaların özeti

  • Vektör veri türüne sahip alanlar için geçerlidir.

  • Disk üzerindeki depolamayı etkiler, belleği etkilemez ve sorgular üzerinde hiçbir etkisi yoktur. Sorgu yürütme özelliğinden stored etkilenmeyen ayrı bir vektör dizini kullanır çünkü bu vektör kopyası her zaman depolanır.

  • stored özelliği vektör alanlarında dizin oluşturma sırasında ayarlanır ve geri alınamaz. İçeriği daha sonra almak istiyorsanız, dizini bırakmanız ve yeniden oluşturmanız veya yeni ilişkilendirmeye sahip yeni bir alan oluşturup yüklemeniz gerekir.

  • Varsayılanlar stored true ve retrievable false olarak ayarlanır. Varsayılan yapılandırmada, alınabilir bir kopya depolanır, ancak sonuçlarda otomatik olarak döndürülemez. True olduğunda stored , bir dizini yeniden oluşturmak zorunda kalmadan istediğiniz zaman true ile false arasında geçiş retrievable yapabilirsiniz. False olduğunda stored false retrievable olmalıdır ve değiştirilemez.

rescoreStorageMethod Özelliğini ayarlama

Not

Bu özellik şu anda genel önizlemededir. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

özelliği, rescoreStorageMethod sıkıştırma kullanıldığında tam duyarlıklı vektörlerin depolanmasını denetler.

API sürümleri ve sonraki sürümlerle 2024-11-01-Preview oluşturulan dizinlerde sıkıştırılmamış vektör alanları için, arama etkinlikleri veya kalite üzerinde hiçbir etkisi olmadan bu varsayılan olarak atlanır. Bu API sürümünden önce oluşturulan mevcut vektör alanları için bu veri kopyasını kaldırma olanağı yoktur.

Vektör sıkıştırmada rescoreStorageMethod , özellik varsayılan olarak olarak ayarlanır preserveOriginals ve bu özellik, HNSW grafiğinde kayıplı sıkıştırmanın etkisini azaltmak için aşırı örnekleme ve yeniden puanlama özellikleri içintam duyarlıklı vektörleri korur. Bu özellikleri kullanmıyorsanız, olarak ayarlayarak rescoreStorageMethod discardOriginalsvektör depolama alanını azaltabilirsiniz.

Önemli

Özelliğin rescoreStorageMethod ayarlanması geri alınamaz ve sıkıştırma yöntemine bağlı olarak farklı arama kalitesi kaybı düzeyleri olacaktır. Bu, dizin oluşturma veya yeni vektör alanları ekleme sırasında veya daha sonra oluşturulan 2024-11-01-Preview dizinlerde ayarlanabilir.

Skaler veya ikili niceleme kullanmayı planlıyorsanız, arama kalitesini en üst düzeye preserveOriginals çıkarmak için ayarının olarak tutulmasını rescoreStorageMethod öneririz.

Bu özelliği ayarlamak için:

  1. Dizin Oluştur veya Dizin Oluştur veya Güncelleştir 2024-11-01-preview REST API'lerini veya özelliği sağlayan bir Azure SDK beta paketini kullanın.

  2. Profiller, algoritmalar ve sıkıştırmalarla dizininize bir vectorSearch bölüm ekleyin.

  3. Sıkıştırmalar altında, rescoringOptions enableRescoring öğesini true olarak ayarla, defaultOversampling pozitif bir tamsayı olarak ayarla ve rescoreStorageMethod olarak preserveOriginalsayarlayın.

    PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-11-01-preview
    
    {
        "name": "demo-index",
        "fields": [. . . ],
        . . .
        "vectorSearch": {
            "profiles": [
                {
                "name": "myVectorProfile",
                "algorithm": "myHnsw",
                "compression": "myScalarQuantization"
                }
            ],
            "algorithms": [
              {
                "name": "myHnsw",
                "kind": "hnsw",
                "hnswParameters": {
                  "metric": "cosine",
                  "m": 4,
                  "efConstruction": 400,
                  "efSearch": 500
                },
                "exhaustiveKnnParameters": null
              }
            ],
            "compressions": [
                {
                    "name": "myScalarQuantization",
                    "kind": "scalarQuantization",
                    "rescoringOptions": {
                        "enableRescoring": true,
                        "defaultOversampling": 10,
                        "rescoreStorageMethod": "preserveOriginals"
                    },
                    "scalarQuantizationParameters": {
                        "quantizedDataType": "int8"
                    },
                    "truncationDimension": null
                }
            ]
        }
    }