Co to jest Baza Danych Wektorów Milvus?

Milvus powstał w 2019 roku z głównym celem przechowywania, indeksowania i zarządzania wektorami osadzającymi na dużą skalę, generowanymi przez głębokie sieci neuronowe i inne modele uczenia maszynowego (ML).

Jako baza danych specjalnie zaprojektowana do obsługi zapytań wektorowych, Milvus może indeksować wektory na skalę dziesiątek miliardów. W odróżnieniu od istniejących baz danych relacyjnych, które głównie zajmują się z góry określonymi wzorcami i strukturalnymi danymi, Milvus został zaprojektowany od podstaw, by obsłużyć wektory osadzające pochodzące z danych niestrukturalnych.

Wraz ze stale rosnącym zasięgiem internetu dane niestrukturalne stały się coraz powszechniejsze, obejmując takie obiekty jak e-maile, dokumenty, dane z czujników internetu rzeczy, zdjęcia na Facebooku, struktury białkowe itp. Aby umożliwić komputerom zrozumienie i przetwarzanie danych niestrukturalnych, te dane muszą być przekształcone w wektory za pomocą technik osadzania. Milvus przechowuje i indeksuje te wektory. Milvus jest w stanie analizować odległość podobieństwa między dwoma wektorami, obliczając ich odległość podobieństwa i wnioskując o ich korelacji. Jeśli dwa wektory osadzające są bardzo podobne, oznacza to, że również oryginalne źródła danych są podobne.

Przepływ pracy Milvus:

Przepływ pracy

Kluczowe Pojęcia

Jeśli nie jesteś zaznajomiony z światem baz danych wektorowych i wyszukiwania podobieństw, poniższe kluczowe pojęcia mogą być pomocne.

Dowiedz się więcej o terminach Milvus.

Dane Niestrukturalne

Dane niestrukturalne, w tym obrazy, filmy, dźwięk i język naturalny, odnoszą się do informacji, które nie podlegają z góry określonemu modelowi lub strukturze organizacyjnej. Ten rodzaj danych stanowi około 80% globalnych danych i może być przekształcony w wektory za pomocą różnych modeli sztucznej inteligencji (AI) i uczenia maszynowego (ML).

Wektory Osadzające

Wektory osadzające to abstrakcje cech danych niestrukturalnych (takich jak e-maile, dane z czujników IoT, zdjęcia na Instagramie, struktury białkowe, itp.). Z matematycznego punktu widzenia wektory osadzające składają się z liczb zmiennoprzecinkowych lub tablic binarnych. Współczesne techniki osadzania są wykorzystywane do przekształcania danych niestrukturalnych w wektory osadzające.

Wyszukiwanie Podobieństwa Wektorów

Wyszukiwanie podobieństwa wektorów polega na porównywaniu wektora z bazą danych w celu znalezienia najbardziej podobnego wektora do zapytania. Użycie algorytmów wyszukiwania przybliżonego najbliższego sąsiada (ANN) może przyspieszyć proces wyszukiwania. Jeśli dwa wektory osadzające są bardzo podobne, oznacza to, że również oryginalne źródło danych jest podobne.

Dlaczego Wybrać Milvus?

  • Wysoka wydajność wyszukiwania wektorowego na dużych zbiorach danych.
  • Wsparcie społeczności zorientowanej na deweloperów z obsługą wielu języków i narzędzi.
  • Osiąga skalowalność i wysoką niezawodność w chmurze, utrzymując stabilność nawet w przypadku awarii.
  • Umożliwia mieszane wyszukiwanie przez połączenie filtrowania skalarnego z wyszukiwaniem podobieństwa wektorowego.

Jakie Indeksy i Standardy Metrykowe Są Obsługiwane?

Indeksy są jednostkami organizacyjnymi danych. Przed wyszukiwaniem lub zapytaniem o wstawione elementy, należy zadeklarować typ indeksu i standard miary podobieństwa. Jeśli nie określisz typu indeksu, Milvus domyślnie użyje wyszukiwania brute-force.

Typy Indeksów

Milvus obsługuje większość typów indeksów wektorowych dla przybliżonego wyszukiwania najbliższych sąsiadów (ANNS), w tym:

  • FLAT: Nadaje się do scenariuszy poszukujących całkowicie dokładnych i precyzyjnych wyników wyszukiwania na niewielkich (milionowych) zbiorach danych.
  • IVF_FLAT: Opiera się na indeksie kwantyzacji, nadaje się do scenariuszy poszukujących idealnej równowagi między dokładnością a prędkością zapytań. Istnieje także wersja GPU o nazwie GPU_IVF_FLAT.
  • IVF_SQ8: Opiera się na indeksie kwantyzacji, nadaje się do scenariuszy poszukujących znacznego zmniejszenia zużycia dysku, CPU i pamięci GPU ze względu na bardzo ograniczone zasoby.
  • IVF_PQ: Opiera się na indeksie kwantyzacji, nadaje się do scenariuszy dążących do wysokiej prędkości zapytań nawet kosztem dokładności. Istnieje także wersja GPU o nazwie GPU_IVF_PQ.
  • HNSW: Opiera się na indeksie graficznym, nadaje się do scenariuszy o bardzo wysokich wymaganiach dotyczących efektywności wyszukiwania.

Aby uzyskać bardziej szczegółowe informacje, prosimy odnieść się do Indeksu Wektorowego.

Standardy Miary Podobieństwa

W Milvus standardy miary podobieństwa są używane do mierzenia podobieństwa między wektorami. Wybór dobrej miary odległości może znacząco poprawić wydajność klasyfikacji i grupowania. W zależności od formy danych wejściowych wybiera się konkretne standardy miary podobieństwa, aby osiągnąć najlepszą wydajność.

Powszechne standardy stosowane dla osadzeń zmiennoprzecinkowych to:

  • Odległość euklidesowa (L2): Ta miara jest powszechnie używana w dziedzinie przetwarzania obrazów.
  • Iloczyn skalarny (IP): Ta miara jest powszechnie używana w dziedzinie przetwarzania języka naturalnego.

Powszechne standardy stosowane dla osadzeń binarnych to:

  • Odległość Hamminga: Ta miara jest powszechnie używana w dziedzinie przetwarzania języka naturalnego.
  • Podobieństwo Jaccarda: Ta miara jest powszechnie używana do wyszukiwania podobieństw molekularnych.

Przykładowe zastosowania

Milvus ułatwia dodanie wyszukiwania podobieństw do aplikacji. Przykładowe zastosowania Milvus obejmują:

  • Wyszukiwanie podobieństw obrazów: Umożliwia wyszukiwanie obrazów i zwraca najbardziej podobne obrazy z dużych baz danych praktycznie natychmiast.
  • Wyszukiwanie podobieństw wideo: Poprzez konwersję klatek kluczowych na wektory, a następnie wprowadzenie wyników do Milvus, system może wyszukiwać i rekomendować miliardy wideo w czasie rzeczywistym.
  • Wyszukiwanie podobieństw dźwięku: Szybko przeszukuje duże ilości danych audio, takie jak mowy, muzyka, efekty dźwiękowe i podobne dźwięki.
  • Systemy rekomendacyjne: Rekomendują informacje lub produkty na podstawie zachowań i potrzeb użytkownika.
  • Systemy odpowiadające na pytania: Interaktywne cyfrowe chatboty, które mogą automatycznie odpowiadać na pytania użytkowników.
  • Klasyfikacja sekwencji DNA: Dokładnie klasyfikuje geny w milisekundach przez porównywanie podobnych sekwencji DNA.
  • Silniki wyszukiwania tekstu: Pomaga użytkownikom znaleźć poszukiwane informacje poprzez porównywanie słów kluczowych z bazą tekstu.

Koncepcja projektowa Milvus

Jako bazodanowy system wektorowy w chmurze, Milvus oddziela przechowywanie od obliczeń w swoim projekcie. Aby zwiększyć elastyczność i elastyczność, wszystkie komponenty w systemie Milvus są bezstanowe.

System podzielony jest na cztery warstwy:

  • Warstwa dostępu: Składająca się z grupy bezstanowych proxy, które pełnią rolę warstwy frontowej systemu i stanowią punkty końcowe dla użytkowników.
  • Usługa koordynacyjna: Ta usługa przypisuje zadania do węzłów roboczych i działa jako centralna pięta systemu.
  • Węzły robocze: Te węzły działają jako ramiona i nogi systemu, wykonując polecenia DML/DDL wywołane przez użytkowników w bezmyślny sposób.
  • Przechowywanie: To podstawa systemu odpowiedzialna za trwałość danych. Obejmuje przechowywanie metadanych, agentów logów i przechowywanie obiektów.

Architektura Milvus.

Narzędzia dla programistów

Milvus zapewnia bogaty zestaw interfejsów API oraz narzędzi do rozwoju i działania.

Dostęp do interfejsu API

Milvus udostępnia biblioteki klienta opakowujące interfejs API Milvus, które można wykorzystać do programowego wstawiania, usuwania i wyszukiwania danych z kodu aplikacyjnego:

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

Narzędzia ekosystemu Milvus

Ekosystem Milvus oferuje kilka przydatnych narzędzi, w tym:

  • Milvus CLI
  • Attu: System zarządzania graficznego dla Milvus.
  • MilvusDM (Migracja danych Milvus): Otwarte narzędzie przeznaczone specjalnie do importowania i eksportowania danych z Milvus.
  • Narzędzie planowania pojemności Milvus: Pomaga oszacować wymagany rozmiar pliku źródłowego, rozmiar pamięci i stabilny rozmiar dysku dla różnych typów indeksów.

Ograniczenia Milvus

Milvus zobowiązuje się do dostarczenia najlepszej bazy danych wektorowych do zasilania aplikacji opartych na sztucznej inteligencji oraz wyszukiwania podobieństw wektorowych. Jednak zespół ciągle pracuje nad wprowadzaniem nowych funkcji i optymalnych narzędzi w celu usprawnienia doświadczenia użytkownika. Ta strona zawiera listę niektórych znanych ograniczeń, z którymi użytkownicy mogą się spotkać podczas korzystania z Milvus.

Długość nazw zasobów

Zasób Ograniczenie
Kolekcja 255 znaków
Pole 255 znaków
Indeks 255 znaków
Partycja 255 znaków

Zasady nazewnictwa

Nazwy zasobów mogą składać się z cyfr, liter i podkreślników (_). Nazwy muszą zaczynać się od litery lub podkreślenia.

Liczba zasobów

Zasób Ograniczenie
Kolekcja 65 536
Połączenia/Agenci 65 536

Liczba zasobów w kolekcjach

Zasób Ograniczenie
Partycja 4 096
Partycja 64
Pole 64
Indeks 1
Jednostka Bez ograniczeń

Długość łańcucha znaków

Typ danych Ograniczenie
VARCHAR 65 535

Wymiar wektorowy

Atrybut Ograniczenie
Wymiar 32 768

Wejście i wyjście dla każdej operacji RPC

Operacja Ograniczenie
Operacja wstawiania 512 MB
Operacja wyszukiwania 512 MB
Operacja zapytania 512 MB

Ograniczenie obciążenia

W bieżącej wersji dane do załadowania muszą być w granicach 90% zasobów pamięci wszystkich węzłów zapytań, aby zachować zasoby pamięci dla silnika wykonawczego.

Ograniczenia wyszukiwania

Wektor Limit
topk (liczba najbardziej podobnych wyników do zwrócenia) 16 384
nq (liczba żądań wyszukiwania) 16 384