Aracılığıyla paylaş


Redis için Azure Cache'da Vektör Ekleme ve Vektör Arama nedir?

Vektör benzerlik araması (VSS), yapay zeka destekli akıllı uygulamalar için popüler bir teknoloji haline geldi. Redis için Azure Cache gibi modeller birleştirilerek vektör veritabanı olarak kullanılabilirAlma Artırılmış Üretken Yapay Zeka ve analiz senaryoları için Azure OpenAI. Bu makale vektör eklemeleri, vektör benzerliği araması ve Redis'in akıllı uygulamaları destekleyen bir vektör veritabanı olarak nasıl kullanılabileceğini gösteren üst düzey bir giriş niteliğindedir.

Vektör benzerliği araması yapmak için Redis için Azure Cache ve Azure OpenAI kullanma öğreticileri ve örnek uygulamalar için aşağıdakilere bakın:

Kullanılabilirlik Kapsamı

Redis'teki vektör arama özellikleri için Redis Stack, özellikle rediSearch modülü gerekir. Bu özellik yalnızca Redis için Azure Cache Kurumsal katmanlarında kullanılabilir.

Bu tablo, farklı katmanlarda vektör arama kullanılabilirliği bilgilerini içerir.

Katman Temel / Standart Premium Kurumsal Kurumsal Flash
Kullanılabilir Hayır Hayır Evet Evet (önizleme)

Vektör ekleme nedir?

Konsept

Vektör ekleme, makine öğrenmesi ve doğal dil işlemede, sözcükler, belgeler veya görüntüler gibi verilerin yüksek boyutlu vektör alanında sayısal vektörler olarak temsil edilmesine olanak tanıyan temel bir kavramdır. Vektör eklemelerin ardındaki birincil fikir, verilerin temel ilişkilerini ve semantiğini bu vektör boşluğundaki noktalara eşleyerek yakalamaktır. Bu, metninizi veya görüntülerinizi verileri temsil eden bir sayı dizisine dönüştürmek ve ardından farklı sayı dizilerini karşılaştırmak anlamına gelir. Bu, karmaşık verilerin matematiksel olarak işlenip analiz edilmesini sağlayarak benzerlik karşılaştırması, öneri ve sınıflandırma gibi görevleri gerçekleştirmeyi kolaylaştırır.

Her makine öğrenmesi modeli verileri sınıflandırır ve vektörleri farklı bir şekilde üretir. Ayrıca, her vektör boyutunun tam olarak hangi anlamsal anlamı temsil ettiği genellikle belirlenmeyebilir. Ancak model her giriş veri bloğu arasında tutarlı olduğundan benzer sözcükler, belgeler veya görüntüler de benzer vektörlere sahiptir. Örneğin, sözcüklerin basketball ve baseball eklemelerinin vektörleri gibi rainforestbir sözcükten çok daha yakındır.

Vektör karşılaştırması

Vektörler çeşitli ölçümler kullanılarak karşılaştırılabilir. Vektörleri karşılaştırmanın en popüler yolu, çok boyutlu bir alanda iki vektör arasındaki açının kosinüsünü ölçen kosinüs benzerliğini kullanmaktır. Vektörler ne kadar yakın olursa açı o kadar küçük olur. Diğer yaygın mesafe ölçümleri arasında Öklid uzaklığı ve iç ürün yer alır.

Ekleme oluşturma

Birçok makine öğrenmesi modeli ekleme API'lerini destekler. Azure OpenAI Hizmetini kullanarak vektör eklemeleri oluşturma örneği için bkz . Azure OpenAI ile ekleme oluşturmayı öğrenin.

Vektör veritabanı nedir?

Vektör veritabanı, vektörleri depolayan, yönetebilen, alabilen ve karşılaştırabilen bir veritabanıdır. Vektör veritabanlarının yüksek boyutlu vektörleri verimli bir şekilde depolayabilmesi ve en düşük gecikme süresi ve yüksek aktarım hızıyla alabilmesi gerekir. PostgreSQL gibi ilişkisel veritabanlarını örneğin pgvector uzantısıyla kullanmak mümkün olsa da, ilişkisel olmayan veri depoları en yaygın olarak vektör veritabanları olarak kullanılır.

Dizin ve arama yöntemi

Vektör veritabanlarının hızlı arama ve alma için verileri dizine alması gerekir. Ayrıca vektör veritabanı, basitleştirilmiş programlama deneyimleri için yerleşik arama sorgularını desteklemelidir.

Aşağıdakiler gibi birkaç dizin oluşturma yöntemi vardır:

  • FLAT - Deneme yanılma dizini
  • HNSW - Hiyerarşik Gezinilebilir Küçük Dünya graflarını kullanarak verimli ve yaklaşık en yakın komşu arama güçlü

Aşağıdakiler de dahil olmak üzere çeşitli yaygın arama yöntemleri vardır:

  • K-En Yakın Komşular (KNN) - en hassas ancak daha yüksek hesaplama maliyetine sahip kapsamlı bir yöntemdir.
  • Yaklaşık En Yakın Komşular (ANN) - daha yüksek hız ve daha düşük işlem yükü için alım satım duyarlılığı ile daha verimlidir.

Arama özellikleri

Son olarak, vektör veritabanları en benzer vektörleri döndürmek için seçilen vektör karşılaştırma yöntemini kullanarak vektör aramalarını yürütür. Bazı vektör veritabanları, vektör aramasını gerçekleştirmeden önce ilk olarak sonuçları veritabanında depolanan özelliklere veya meta veriler temelinde daraltarak karma aramalar da gerçekleştirebilir. Bu, vektör aramasını daha etkili ve özelleştirilebilir hale getirmenin bir yoludur. Örneğin, vektör araması yalnızca veritabanında belirli bir etikete sahip vektörlerle veya belirli bir bölgedeki coğrafi konum verilerine sahip vektörlerle sınırlı olabilir.

Vektör arama anahtarı senaryoları

Vektör benzerlik araması birden çok uygulamada kullanılabilir. Bazı yaygın kullanım örnekleri şunlardır:

  • Anlamsal Soru-Cevap Kendi verilerinizle ilgili sorulara yanıt verebilen bir sohbet botu oluşturun. Örneğin, çalışanların sağlık hizmetleri kapsamındaki sorularına yanıt verebilen bir sohbet botu. Yüzlerce sayfalık yoğun sağlık kapsamı belgeleri öbeklere ayrılabilir, ekleme vektörlerine dönüştürülebilir ve vektör benzerliğine göre aranabilir. Daha sonra elde edilen belgeler, başka bir büyük dil modeli (LLM) kullanılarak çalışanlar için özetlenebilir. Anlamsal Soru-Cevap Örneği
  • Belge Alma. Geleneksel anahtar sözcük tabanlı aramanın kısa olduğu daha zengin bir belge arama deneyimi sağlamak için LLM'ler tarafından sağlanan metnin daha derin anlamsal anlayışını kullanın. Belge Alma Örneği
  • Ürün Önerisi. Arama geçmişi veya önceki satın almalar gibi geçmiş kullanıcı etkinliklerine göre önerecek benzer ürünler veya hizmetler bulun. Ürün Önerisi Örneği
  • Görsel Arama. Bir kullanıcı tarafından çekilen bir resme veya başka bir ürünün resmine benzeyen ürünleri arayın. Görsel Arama Örneği
  • Anlamsal Önbelleğe Alma. LLM tamamlamalarını önbelleğe alarak LLM'lerin maliyetini ve gecikme süresini azaltın. LLM sorguları vektör benzerliği kullanılarak karşılaştırılır. Yeni bir sorgu daha önce önbelleğe alınmış bir sorguya benzerse, önbelleğe alınan sorgu döndürülür. LangChain kullanarak anlamsal önbelleğe alma örneği
  • LLM Konuşma Belleği. Bir LLM ile konuşma geçmişini bir vektör veritabanına ekleme olarak kalıcı hale getirebilirsiniz. Uygulamanız, LLM'den gelen yanıta ilgili geçmişi veya "bellekleri" çekmek için vektör araması kullanabilir. LLM Konuşma Belleği örneği

Vektörleri depolamak ve aramak için neden Redis için Azure Cache seçin?

Redis için Azure Cache, ekleme vektörlerini depolamak ve vektör benzerliği aramaları yapmak için vektör veritabanı olarak etkili bir şekilde kullanılabilir. Vektör depolama ve arama desteği, aşağıdakiler gibi birçok önemli makine öğrenmesi çerçevesinde kullanılabilir:

Bu çerçeveler Redis ile zengin tümleştirmeler sağlar. Örneğin, Redis LangChain tümleştirmesi , Redis'i vektör deposu olarak kullanırken geçirilen meta veriler için otomatik olarak bir dizin şeması oluşturur. Bu, sonuçları meta verilere göre filtrelemeyi çok daha kolay hale getirir.

Redis, Redis için Azure Cache Kurumsal katmanında bulunan RediSearch modülü aracılığıyla çok çeşitli arama özelliklerine sahiptir. Bu modüller şunlardır:

  • , Cosineve Internal Productdahil olmak üzere Euclideanbirden çok uzaklık ölçümü.
  • Hem KNN (kullanarak FLAT) hem de ANN (kullanarak HNSW) dizin oluşturma yöntemleri için destek.
  • Karma veya JSON veri yapılarında vektör depolama
  • En çok kullanılan K sorguları
  • Vektör aralığı sorguları (belirli bir vektör uzaklığındaki tüm öğeleri bulma)
  • Şunlar gibi güçlü sorgu özelliklerine sahip karma arama:
    • Jeo-uzamsal filtreleme
    • Sayısal ve metin filtreleri
    • Ön ek ve benzer eşleştirme
    • Fonetik eşleştirme
    • Boole sorguları

Ayrıca Redis genellikle ekonomik bir seçimdir çünkü zaten önbelleğe alma veya oturum deposu uygulamaları için çok yaygın olarak kullanılır. Bu senaryolarda, vektör arama uygulamalarını aynı anda işlerken tipik bir önbelleğe alma rolü sunarak çift görev çekebilir.

Vektörleri depolamak ve aramak için diğer seçeneklerim nelerdir?

Azure'da vektör depolama ve arama için birden fazla çözüm daha vardır. Diğer çözümler şunlardır:

Eklemeleri ve vektör aramasını kullanmaya başlamanın en iyi yolu kendiniz denemektir!