Vektör araması için dizin ikili vektörleri

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.

Azure Yapay Zeka Arama, vektör verilerinin depolama ve bellek ayak izini daha da azaltmak için Collection(Edm.Byte) paketlenmiş ikili türünü destekler. Bu veri türünü , Cohere'in Embed v3 ikili ekleme modelleri veya vektörleri ikili bayt olarak veren başka bir ekleme modeli veya işlemi gibi modellerin çıkışı için kullanabilirsiniz.

İkili vektörler için dizin yapılandırmanın üç adımı vardır:

  • İkili vektör karşılaştırması için Hamming uzaklığı belirten bir vektör arama algoritması ekleme
  • Algoritmaya işaret eden bir vektör profili ekleme
  • Türünde Collection(Edm.Byte) bir vektör alanı ekleyin ve Hamming uzaklığı atayın

Bu makalede çizim için REST API'leri kullanılır, ancak dizine ikili alan eklemek için bir Azure SDK veya Azure portalı da kullanabilirsiniz. Dizinler - Oluştur veya Dizinler - REST API'leri Oluşturveya Güncelleştir'i kullanarak alanlara ikili veri türünü atarsınız.

Ipucu

Daha küçük ayak izi için ikili vektör desteğini araştırıyorsanız, Azure Yapay Zeka Arama vektör niceleme ve depolama azaltma özelliklerini de göz önünde bulundurabilirsiniz. Girişler float32 veya float16 eklemeleridir. Çıktı, verilerin çok daha küçük bir biçimde depolandığı formattır. Daha fazla bilgi için bkz. İkili veya skaler niceleme kullanarak sıkıştırma ve Dar veri türleri atama.

Önkoşullar

  • Dizin oluşturma ve vektör alanları ekleme hakkında bilgi.

  • Boyut başına bir bit olan ikili vektörler, değer başına sekiz bit ile uint8 değerlerinde paketlenmiş. Bu vektörleri, doğrudan paketlenmiş ikili vektörler oluşturan modelleri kullanarak veya dizin oluşturma ve alma sırasında istemci uygulamanızda vektörleri ikili vektörler halinde ölçerek alabilirsiniz.

Sınırlama

  • Veri İçe Aktar sihirbazında Azure portalı için destek yoktur.

  • AML yeteneği Microsoft Foundry model kataloğundaki modellerin entegre vektörleştirilmesi için kullanılan binär alanlar için destek yoktur.

Vektör arama algoritması ve vektör profili ekleme

Vektör arama algoritmaları, dizin oluşturma sırasında sorgu gezinti yapılarını oluşturur. İkili vektör alanları için sistem, vektör karşılaştırmaları gerçekleştirmek için Hamming uzaklığı ölçümünü kullanır.

İkili vektörler için vektör araması yapılandırmak için:

  1. Dizinler - Oluşturma veya Güncelleştirme (REST API) isteği ayarlayın.

  2. Dizin şemasında, profilleri ve algoritmaları belirten bir vectorSearch bölüm ekleyin.

  3. benzerlik ölçümünü kullanan bir veya daha fazla hamming ekleyin. Hiyerarşik Gezinilebilir Küçük Dünyalar (HNSW) algoritması yaygındır, ancak en kapsamlı K-En Yakın Komşular (KNN) ile Hamming mesafesini de kullanabilirsiniz.

  4. Algoritmayı belirten bir veya daha fazla vektör profili ekleyin.

Aşağıdaki örnekte temel vectorSearch bir yapılandırma gösterilmektedir.

  "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" 
        } 
      } 
    ] 
  }

Dizine ikili alan ekleme

Bir dizinin alan koleksiyonu belge anahtarı için bir alan, vektör alanları ve karma arama senaryoları için ihtiyacınız olan diğer alanları içermelidir.

İkili veri alanları Collection(Edm.Byte) türünü kullanır ve paketlenmiş biçimde gömülü veriler içerir. Örneğin, özgün ekleme boyutu ise 1024, paketlenmiş ikili vektör uzunluğu olur ceiling(1024 / 8) = 128. vectorEncoding özelliğini alanda ayarlayarak paketlenmiş formu elde edersiniz.

Dizine ikili vektör alanı eklemek için:

  1. Alanlar koleksiyonuna bir alan ekleyin ve bir ad verin.

  2. Veri türünü olarak Collection(Edm.Byte)ayarlayın.

  3. vectorEncoding, ikili kodlama için packedBit olarak ayarlayın.

  4. dimensions 1024 olarak ayarla. Özgün (paketlenmemiş) vektör boyutunu belirtin.

  5. Önceki adımda tanımladığınız bir profil olarak ayarlayın vectorSearchProfile .

  6. searchable true olarak ayarla.

Aşağıdaki alan tanımı, dizin şemasındaki ikili vektör alanı örneğidir.

  "fields": [ 
    . . . 
    { 
      "name": "my-binary-vector-field", 
      "type": "Collection(Edm.Byte)", 
      "vectorEncoding": "packedBit", 
      "dimensions": 1024, 
      "vectorSearchProfile": "myHnswProfile",
      "searchable": true
    },
   . . . 
  ]
  • Şema tanımı, vektörleştirme, dizin oluşturma ve sorgular içeren uçtan uca iş akışları için azure-search-vector-samples deposunu gözden geçirin.

  • C#, Python ve JavaScript için vektör arama tanıtım kodunu gözden geçirin.