Aracılığıyla paylaş


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

Önemli

İkili veri türleri, Ek Kullanım Koşulları altında genel önizleme aşamasındadır. 2024-05-01-preview REST API'leri ve sonraki önizleme API'leri yeni veri türünü sağlar.

2024-05-01-preview REST API'siyle başlayan Azure AI Search, vektör verilerinin Collection(Edm.Byte) depolama ve bellek ayak izini daha da azaltmak için paketlenmiş ikili türünü destekler. Bu veri türünü Cohere'in Embed v3 ikili ekleme modelleri gibi modellerden elde edilen çıktılar 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
  • İkili alan tanımınıza vektör profilini ekleme

Bu makalede, Azure AI Search'te dizin oluşturma konusunda bilgi sahibi olduğunuz varsayılır. Her adımı göstermek için REST API'lerini kullanır, ancak Azure portalında bir dizine ikili alan da ekleyebilirsiniz.

Önkoşullar

  • Boyut başına 1 bit olan ikili vektörler, değer başına 8 bit ile uint8 değerlerinde paketlenmiş. Bunlar, doğrudan "paketlenmiş ikili" vektörler oluşturan modeller kullanılarak veya dizin oluşturma ve arama sırasında vektörleri ikili vektör istemci tarafında ölçülerek elde edilebilir.

Sınırlamalar

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şturmak için kullanılır. İkili vektör alanları için vektör karşılaştırmaları Hamming uzaklığı ölçümü kullanılarak gerçekleştirilir.

  1. Dizine ikili alan eklemek için 2024-05-01-preview REST API'sini veya Azure portalını kullanarak bir Create or Update Index istek ayarlayın.

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

  3. benzerlik ölçümüne hammingsahip bir veya daha fazla vektör arama algoritması ekleyin. Hiyerarşik Gezinilebilir Küçük Dünyalar 'ı (HNSW) kullanmak yaygın bir durum olsa da, en kapsamlı K-en yakın komşularla Hamming mesafesini de kullanabilirsiniz.

  4. Algoritmayı belirten bir veya daha fazla vektör profili ekleyin. Bu önizlemede skaler sıkıştırma veya vektörleştirici belirtemezsiniz.

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 alanlar türündedir Collection(Edm.Byte) ve paketlenmiş biçimde eklemeler içerir. Örneğin, özgün ekleme boyutu ise 1024, paketlenmiş ikili vektör uzunluğu olur ceiling(1024 / 8) = 128. Alandaki özelliği ayarlayarak vectorEncoding paketlenmiş formu alırsınız.

  1. Alanlar koleksiyonuna bir alan ekleyin ve ona bir ad verin.
  2. Veri türünü olarak Collection(Edm.Byte)ayarlayın.
  3. İkili kodlama için olarak packedBit ayarlayınvectorEncoding.
  4. dimensions seçeneğini 1024 olarak ayarlayın. Özgün (paketlenmemiş) vektör boyutunu belirtin.
  5. Önceki adımda tanımladığınız bir profil olarak ayarlayın vectorSearchProfile .

Bir alan koleksiyonunun en düşük tanımı aşağıdaki örneğe benzer olmalıdır:

  "fields": [ 
    { 
      "name": "Id", 
      "type": "Edm.String", 
      "key": true, 
      "searchable": true 
    }, 
    { 
      "name": "my-binary-vector-field", 
      "type": "Collection(Edm.Byte)", 
      "vectorEncoding": "packedBit", 
      "dimensions": 1024, 
      "vectorSearchProfile": "myHnswProfile" 
    } 
  ]

Ayrıca bkz.

azure-search-vector-samples deposundaki kod örnekleri şema tanımı, vektörleştirme, dizin oluşturma ve sorgular içeren uçtan uca iş akışlarını gösterir.

Python, C# ve JavaScript için tanıtım kodu vardır.