Milvus, 2019 yılında, derin sinir ağları ve diğer makine öğrenimi (ML) modelleri tarafından oluşturulan büyük ölçekli gömme vektörlerini depolamak, indekslemek ve yönetmek amacıyla oluşturulmuştur.

Milvus, giriş vektör sorgularını işlemek için özel olarak tasarlanmış bir veritabanı olarak on milyarlarca ölçekte vektörleri indeksleyebilir. Varolan ilişkisel veritabanlarının genellikle önceden tanımlanmış desenler ve yapılandırılmış verilerle uğraşmasının aksine, Milvus, yapılandırılmamış verilerden türetilen gömme vektörleriyle ilgilenmek üzere baştan aşağıya tasarlanmıştır.

İnternetin sürekli genişlemesi ile e-posta, makaleler, IoT sensör verileri, Facebook fotoğrafları, protein yapıları gibi yapılandırılmamış veriler giderek yaygınlaşmıştır. Bilgisayarların yapılandırılmamış verileri anlamasını ve işlemesini sağlamak için bu verilerin gömme teknikleri kullanılarak vektörlere dönüştürülmesi gerekmektedir. Milvus, bu vektörleri depolar ve indeksler. Milvus, iki vektör arasındaki benzerlik mesafesini analiz ederek, onların korelasyonunu çıkarabilir. Eğer iki gömme vektörü çok benzerse, bu, orijinal veri kaynaklarının da benzer olduğunu gösterir.

Milvus Çalışma Akışı:

Çalışma Akışı

Temel Kavramlar

Eğer vektör veritabanları ve benzerlik aramaları konusunda aşina değilseniz, aşağıdaki temel kavramlar size yardımcı olabilir.

Milvus terimleri hakkında daha fazla bilgi edinin.

Yapılandırılmamış Veri

Yapılandırılmamış veri, resimler, videolar, ses ve doğal dil gibi önceden belirlenmiş bir model veya yapısal yapı izlemediği bilgiyi ifade eder. Bu veri türü küresel verilerin yaklaşık %80'ini oluşturur ve çeşitli yapay zeka (AI) ve makine öğrenimi (ML) modelleri kullanılarak vektörlere dönüştürülebilir.

Gömme Vektörler

Gömme vektörleri, yapılandırılmamış verilerin (e-posta, IoT sensör verileri, Instagram fotoğrafları, protein yapıları vb.) özellik soyutlamalarıdır. Matematiksel bir bakış açısından, gömme vektörleri kayan noktalı sayılar veya ikili dizilerden oluşur. Modern gömme teknikleri, yapılandırılmamış verileri gömme vektörlerine dönüştürmek için kullanılır.

Vektör Benzerlik Araması

Vektör benzerlik araması, bir vektörü veritabanıyla karşılaştırarak sorgu vektörüne en benzer vektörü bulmayı içerir. Yaklaşık en yakın komşuluk (ANN) arama algoritmaları kullanarak arama süreci hızlandırılabilir. Eğer iki gömme vektörü çok benzerse, bu, orijinal veri kaynağının da benzer olduğunu gösterir.

Neden Milvus'u Seçmelisiniz?

  • Büyük ölçekli veri kümelerinde vektör araması için yüksek performans.
  • Çoklu dil ve araç zinciri desteği ile geliştirici odaklı topluluk desteği sağlar.
  • Bulut ortamında ölçeklenebilirlik ve yüksek güvenilirlik sağlar, hatta arızalar durumunda dahi stabil kalır.
  • Skaler filtreleme ile vektör benzerlik aramasını birleştirerek karma aramayı sağlar.

Hangi İndeksler ve Metrik Standartlar Desteklenmektedir?

İndeksler, verinin organizasyon birimleridir. Eklenti varlıklarını araştırmadan veya sorgulamadan önce, indeks türünü ve benzerlik metrik standardını belirtmelisiniz. Eğer indeks türünü belirtmezseniz, Milvus, kaba kuvvetli arama kullanımını varsayarak kullanacaktır.

İndeks Türleri

Milvus, yaklaşık en yakın komşu arama (ANNS) için çoğu vektör indeks türünü destekler, bunlar arasında:

  • FLAT: Küçük ölçekli (milyonlar) veri kümelerinde tamamen doğru ve kesin arama sonuçları arayan senaryolar için uygundur.
  • IVF_FLAT: Quantization indeksine dayalı, doğruluk ve sorgu hızı arasında ideal bir denge arayan senaryolar için uygundur. Ayrıca GPU_IVF_FLAT adında bir GPU sürümü bulunmaktadır.
  • IVF_SQ8: Quantization indeksine dayalı, disk, CPU ve GPU bellek tüketiminde büyük bir azalma arayan senaryolar için uygundur.
  • IVF_PQ: Quantization indeksine dayalı, doğruluk pahasına yüksek sorgu hızı arayan senaryolar için uygundur. Ayrıca GPU_IVF_PQ adında bir GPU sürümü bulunmaktadır.
  • HNSW: Grafik indeksine dayalı, arama verimliliği için çok yüksek gereksinimleri olan senaryolar için uygundur.

Daha detaylı bilgi için, Vektör İndeksi'ne bakınız.

Benzerlik Metrikleri

Milvus'ta benzerlik metrikleri, vektörler arasındaki benzerliği ölçmek için kullanılır. İyi bir mesafe metriği seçmek, sınıflandırma ve kümeleme performansını önemli ölçüde artırabilir. Giriş verisinin biçimine bağlı olarak, en iyi performansı elde etmek için belirli benzerlik metrikleri seçilir.

Kayan noktalı gömme için yaygın olarak kullanılan metrikler:

  • Öklid uzaklığı (L2): Bu metrik, bilgisayar görüşü alanında yaygın olarak kullanılır.
  • İç Çarpım (IP): Bu metrik, doğal dil işleme alanında yaygın olarak kullanılır.

İkili gömme için yaygın olarak kullanılan metrikler:

  • Hamming uzaklığı: Bu metrik, doğal dil işleme alanında yaygın olarak kullanılır.
  • Jaccard benzerliği: Bu metrik, moleküler benzerlik araması için yaygın olarak kullanılır.

Örnek Uygulamalar

Milvus, uygulamalarınıza benzerlik araması eklemeyi kolaylaştırır. Milvus'un örnek uygulamaları şunları içerir:

  • Görüntü benzerlik araması: Görüntüleri aranabilir hale getirir ve büyük bir veritabanından en benzer görüntüleri neredeyse anında döndürür.
  • Video benzerlik araması: Ana kareleri vektörlere dönüştürerek ve ardından sonuçları Milvus'a girdi olarak vererek, milyarlarca videoyu neredeyse gerçek zamanlı olarak arayabilir ve önerir.
  • Ses benzerlik araması: Konuşma, müzik, ses efektleri ve benzer sesler gibi büyük miktarda ses verisini hızlı bir şekilde sorgular.
  • Öneri sistemleri: Kullanıcı davranışları ve ihtiyaçlarına dayalı olarak bilgi veya ürün önerir.
  • Soru-cevap sistemleri: Kullanıcı sorularını otomatik olarak yanıtlayabilen etkileşimli dijital soru-cevap sohbet botları.
  • DNA dizisi sınıflandırması: Benzer DNA dizilerini karşılaştırarak milisaniyeler içinde doğru bir şekilde genleri sınıflandırır.
  • Metin arama motorları: Anahtar kelimeleri metin veritabanıyla karşılaştırarak kullanıcıların aradığı bilgileri bulmalarına yardımcı olur.

Milvus Tasarım Konsepti

Bir bulut tabanlı vektör veritabanı olarak, Milvus depolamayı hesaplamadan ayırır. Esneklik ve elastikiyeti artırmak için Milvus'taki tüm bileşenler durumsuzdur.

Sistem dört katmana ayrılır:

  • Erişim Katmanı: Kullanıcılar için sistem ön uç katmanı ve uç noktalar olarak hizmet veren durumsuz proxy'lerden oluşur.
  • Koordinasyon Servisi: Bu servis görevleri işçi düğümlerine atar ve sistemin merkezi merkezi olur.
  • İşçi Düğümleri: Bu düğümler, koordinasyon servisinden gelen talimatları izleyerek ve kullanıcılar tarafından tetiklenen DML/DDL komutlarını körü körüne yürütür.
  • Depolama: Bu, veri kalıcılığından sorumlu sistem omurgasıdır. Meta veri depolama, günlük ajanları ve nesne depolama içerir.

Milvus Mimarisi.

Geliştirici Araçları

Milvus, gelişim ve işletme için zengin bir dizi API ve araç sağlar.

API Erişimi

Milvus, uygulama kodundan veri eklemek, silmek ve sorgulamak için programlı olarak kullanılabilecek Milvus API etrafında sarılmış istemci kütüphaneleri sağlar:

  • PyMilvus
  • Node.js SDK
  • Go SDK
  • Java SDK

Milvus Ekosistem Araçları

Milvus ekosistemi, şunları içeren birkaç kullanışlı araç sunar:

  • Milvus CLI
  • Attu: Milvus için grafiksel bir yönetim sistemidir.
  • MilvusDM (Milvus Veri Göçü): Milvus ile özellikle veri aktarımı ve dışa aktarımı için açık kaynaklı bir araçtır.
  • Milvus Kapasite Planlama Aracı: Çeşitli indeks türleri aracılığıyla gereken ham dosya boyutu, bellek boyutu ve stabil disk boyutunu tahmin etmeye yardımcı olur.

Milvus Sınırlamaları

Milvus, yapay zeka uygulamalarını ve benzerlik aramalarını yönlendirmek için en iyi vektör veritabanını sağlamaya adamıştır. Ancak, ekip sürekli olarak kullanıcı deneyimini geliştirmek için daha fazla özellik ve optimal araçlar sunmak için çalışmaktadır. Bu sayfa, kullanıcıların Milvus'u kullanırken karşılaşabileceği bazı bilinen sınırlamaları listeler.

Kaynak İsim Uzunluğu

Kaynak Limit
Koleksiyon 255 karakter
Alan 255 karakter
İndeks 255 karakter
Parçalanma 255 karakter

Adlandırma Kuralları

Kaynak isimleri sayılar, harfler ve alt çizgiler (_) içerebilir. İsimler bir harf veya alt çizgi ile başlamalıdır.

Kaynakların Sayısı

Kaynak Limit
Koleksiyon 65,536
Bağlantılar/Ajanlar 65,536

Koleksiyonlardaki Kaynak Sayısı

Kaynak Limit
Parçalanma 4,096
Parça 64
Alan 64
İndeks 1
Varlık Sınırsız

Dize Uzunluğu

Veri Türü Limit
VARCHAR 65,535

Vektör Boyutu

Atıf Limit
Boyut 32,768

Her RPC İçin Giriş ve Çıkış

İşlem Limit
Ekleme İşlemi 512 MB
Arama İşlemi 512 MB
Sorgulama İşlemi 512 MB

Yükleme Sınırlaması

Mevcut sürümde, yüklenmesi gereken verinin, işleme motoru için bellek kaynaklarını ayırmak amacıyla sorgu düğümlerinin toplam bellek kaynaklarının %90'ı içinde olması gerekir.

Arama Sınırlaması

Vektör Sınırlama
topk (en benzer sonuçların sayısı) 16,384
nq (arama talebi sayısı) 16,384