Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 2451|Odpowiedź: 0

【AI】(14) Krótkie wprowadzenie do open source baz danych wektorowych

[Skopiuj link]
Opublikowano 2025-3-25 11:29:25 | | | |
Wymagania: Ostatnio organizowaliśmy wybór modeli osadzających, a przy konwersji modelu na wektory musimy rozważyć zapisanie tych wektorów. Istnieje wiele baz wektorowych, takich jak: LanceDB, Astra DB, Pinecone, Chroma, Weaviate, QDrant, Milvus, Zilliz, PGVector, Redis, Elasticsearch, Redis, FAISS, SQL Server 2025 itd.

Czym jest baza wektorowa?

Baza wektorowa to zorganizowany zbiór osadzeń wektorowych, które zawierają osadzenia wektorowe, które można tworzyć, czytać, aktualizować i usuwać w dowolnym momencie. Osadzenia wektorowe reprezentują bloki danych, takie jak tekst czy obrazy, jako wartości liczbowe. Baza wektorowa to system bazodanowy zaprojektowany do przechowywania i pobierania wektorów o wysokich wymiarach. Szybko znajduje najbliższy wektor docelowy, obliczając podobieństwo między wektorami (takie jak podobieństwo cosinusowe, odległość euklidesowa itp.). Technika ta jest często stosowana do przetwarzania danych opartych na osadzaniu, takich jak tekst, obrazy, dźwięk lub wideo reprezentacje cech.

Baza wektorowa to zbiór danych przechowywanych w formie matematycznej. Bazy wektorowe ułatwiają modelom uczenia maszynowego zapamiętywanie wcześniejszych danych, umożliwiając wykorzystanie uczenia maszynowego do wspierania takich przypadków użycia jak wyszukiwanie, rekomendacje i generowanie tekstu. Dane można identyfikować na podstawie metryk podobieństwa, a nie dokładnych dopasowani, co pozwala modelom komputerowym zrozumieć kontekst danych.

Gdy klient odwiedza sklep obuwniczy, sprzedawca może polecić buty podobne do tych, które mu się podobają. Podobnie, podczas zakupów w sklepie e-commerce, sklep może polecać podobne produkty pod nagłówkami takimi jak "Klient również kupił...". Bazy wektorowe umożliwiają modelom uczenia maszynowego identyfikację podobnych obiektów, tak jak sprzedawca może znaleźć podobne buty, a sklep e-commerce może polecać powiązane produkty. (W rzeczywistości sklepy e-commerce mogą wykorzystywać takie modele uczenia maszynowego do realizacji zadania).

Podsumowując, bazy wektorowe umożliwiają programom komputerowym dokonywanie porównań, identyfikowanie zależności i zrozumienie kontekstu. Umożliwia to tworzenie zaawansowanych programów sztucznej inteligencji (AI), takich jak duże modele językowe (LLM).

Chroma

Miejsce:Logowanie do linku jest widoczne.



Chroma to wydajna, oparta na Pythonie otwartoźródłowa baza danych do wyszukiwania podobieństw na dużą skalę. Został zaprojektowany, aby rozwiązać problem wyszukiwania podobieństw w dużych zbiorach danych, zwłaszcza w przypadku danych o wysokich wymiarach. Dostępnych jest wiele opcji hostingu: bezserwerowe/osadzone, samodzielnie hostowane (klient-serwer) oraz rozproszone rozwiązania SaaS natywne w chmurze, obejmujące zarówno modele wbudowane, jak i klient-serwer.
Świetnie sprawdza się w prototypowaniu i produkcji. Ze względu na efemeryczny charakter przechowywania danych, Chroma jest idealna do szybkiego prototypowania skryptów. Dzięki prostej konfiguracji użytkownicy mogą łatwo tworzyć kolekcje i ponownie je wykorzystywać, ułatwiając kolejne dodawanie danych. Dodatkowo Chroma umożliwia automatyczne ładowanie i zapisywanie danych. Po uruchomieniu klienta automatycznie ładuje dane użytkownika; Po zamknięciu dane są automatycznie zapisywane, co znacznie upraszcza proces zarządzania danymi. Ta funkcja sprawia, że Chroma jest bardzo popularna na etapach prototypowania i rozwoju.
Chroma otrzymała rundę początkową finansowania w maju 2022 roku oraz drugą rundę w wysokości 1 800 dolarów.

Zalety: Chroma oferuje klientom ponad tuzin języków programowania, potrafi szybko uruchomić pamięć wektorową i jest pierwszą bazą wektorową na rynku, która domyślnie oferuje tryb osadzania. Jest stosunkowo przyjazny dla deweloperów i łatwy do integracji.
Wady: Funkcjonalność jest stosunkowo prosta, zwłaszcza w aplikacjach wymagających bardziej złożonych funkcji. Obsługiwane jest tylko obliczenia CPU, co może ograniczać wzrost wydajności w sytuacjach wymagających znacznych zasobów obliczeniowych.

LanceDB

Miejsce:Logowanie do linku jest widoczne.



LanceDB to otwartoźródłowa baza wektorowa zaprojektowana do multimodalnych danych AI do przechowywania, zarządzania, zapytań i pobierania dużych wielosystemowych osadzeń danych. Jej rdzeń jest napisany w Rust i oparty na Lance, kolumnowym formacie danych, który optymalizuje szybki dostęp do losowego dostępu i zarządzanie zbiorami danych AI, takimi jak wektory, dokumenty i obrazy. Jest odpowiedni do różnych zastosowań AI, które muszą przetwarzać wysokowymiarowe dane wektorowe, takich jak rozpoznawanie obrazów, przetwarzanie języka naturalnego, systemy rekomendacji itp. LanceDB oferuje dwa tryby: usługi wbudowane i hostowane w chmurze.

Zalety: LanceDB eliminuje potrzebę zarządzania serwerami, obniżając koszty O&M deweloperów i poprawiając efektywność rozwoju. Jest zoptymalizowany pod kątem danych multimodalnych i obsługuje różne typy danych, takie jak obrazy, tekst i dźwięk, poprawiając efektywność bazy danych przy przetwarzaniu złożonych danych. Zapewnia przyjazny interfejs API oraz narzędzia wizualizacyjne, pozwalając deweloperom łatwo integrować i korzystać z baz danych.
Wady: Zostanie uruchomiona dopiero w 2023 roku, co jest bardzo nową bazą danych, która nie jest wystarczająco dojrzała pod względem rozwoju funkcji i funkcjonowania społeczności.

PGVector

Miejsce:Logowanie do linku jest widoczne.



PGVector to rozszerzenie oparte na PostgreSQL, zaprojektowane w celu zapewnienia potężnych możliwości przechowywania wektorowego i zapytań. Wykorzystuje język C do implementacji różnych typów i algorytmów wektorowych oraz może efektywnie przechowywać i zapytywać osadzenia AI wyrażone w wektorach. PGVector obsługuje precyzyjne i przybliżone wyszukiwanie najbliższych sąsiadów, umożliwiając szybki dostęp do podobnych punktów danych w przestrzeni o wysokich wymiarach. Obsługuje także różne algorytmy i typy danych do obliczeń wektorowych, takie jak odległość L2, iloczyn skalny i odległość cosinusowa, między innymi. Nadaje się do sytuacji, gdy funkcja wyszukiwania wektorowego nie jest rdzeniem systemu lub projekt jest szybko uruchamiany na wczesnym etapie.

Zalety: PGVector bezproblemowo integruje się z istniejącymi bazami PostgreSQL, pozwalając użytkownikom zacząć korzystać z możliwości wyszukiwania wektorowego bez konieczności migracji istniejących baz danych. Ponieważ jest to wtyczka PostgreSQL, PGVector dziedziczy jej niezawodność i odporność dzięki długoterminowemu rozwojowi i optymalizacji PostgreSQL, jednocześnie ulepszając przetwarzanie wektoryzacji.
Wady: W porównaniu z dedykowanymi bazami wektorowymi, optymalizacja wydajności i wykorzystania zasobów jest nieco niewystarczająca.

Qdrant

Miejsce:Logowanie do linku jest widoczne.



Qdrant to otwartoźródłowa wektorowa baza danych oraz usługa hostowana w chmurze, uruchomiona w 2021 roku i zaprojektowana z myślą o aplikacjach AI nowej generacji. Udostępniane są wygodne API do przechowywania, wyszukiwania i zarządzania punktami (tj. wektorami) wraz z dodatkowymi ładunkami w celu rozszerzenia wsparcia filtrowania. Wiele typów indeksów, w tym indeksy ładunku, indeksy pełnotekstowe oraz indeksy wektorowe, umożliwiają efektywną obsługę danych o wysokich wymiarach. Dodatkowo Qdrant wykorzystuje niestandardowy algorytm HNSW do szybkich i precyzyjnych wyszukiwań oraz umożliwia filtrowanie wyników na podstawie odpowiednich ładunków wektorowych. Te funkcje sprawiają, że Qdrant jest przydatny w sieciach neuronowych lub dopasowaniu semantycznym, wyszukiwaniu wieloaspektowym i innych zastosowaniach. Siłą Qdrant jest jego wyszukiwanie semantyczne i funkcje dopasowywania podobieństw, które ułatwiają wdrażanie scenariuszy biznesowych, takich jak wyszukiwanie obrazów, głosu i wideo, a także systemów rekomendacji.

Zalety: Doskonała dokumentacja pomagająca deweloperom łatwo uruchomić Docker. Jest całkowicie zbudowany w Rust i oferuje API, z których deweloperzy mogą korzystać za pośrednictwem klientów Rust, Python i Golang, które są dziś najpopularniejszymi językami dla backendowych deweloperów. Qdrant wspiera różne strategie optymalizacji, takie jak optymalizacja indeksów i optymalizacja zapytań. Wspiera także rozproszone wdrażanie i skalowanie poziome, aby sprostać potrzebom przetwarzania danych na dużą skalę.
Wady: Projekt jest stosunkowo nowy i nie ma wystarczająco dużo czasu na weryfikację. W odpowiedzi na wzrost wolumenu biznesu może on skalować się tylko poziomo na poziomie usług. Obsługiwane jest tylko statyczne odłamki. Według raportu Zilliz, wraz ze wzrostem liczby elementów danych nieustrukturyzowanych w bazach wektorowych, ilość przechowywanych danych jest duża, co może obniżyć efektywność zapytań.

Chmura Milvus/Zilliz

Strona internetowa Milvus:Logowanie do linku jest widoczne.
Strona internetowa Zilliz:Logowanie do linku jest widoczne.



Milvus to otwartoźródłowa baza danych z 2019 roku, czysta wektorowa, oparta na znanych bibliotekach wyszukiwania wektorowego, takich jak FAISS, Annoy i HNSW, i zoptymalizowana pod kątem scenariuszy wymagających szybkich wyszukiwań podobieństw. Zilliz Cloud to chmurowa natywna usługa wektorowej bazy danych opracowana w oparciu o Milvus, mająca na celu zapewnienie wygodniejszego i wydajniejszego zarządzania oraz skalowania. Krótko mówiąc, Zilliz to komercyjna wersja hostingu chmurowego firmy Milvus, która jest również bardziej udanym modelem biznesowym w dziedzinie baz danych.

Zalety: Dzięki długiemu istnieniu w ekosystemie baz wektorowych, baza danych jest bardzo dojrzała i posiada dużą liczbę algorytmów. Dostępnych jest wiele opcji indeksowania wektorowego, a system jest zbudowany od podstaw w Golangu dla ekstremalnej skalowalności. Na rok 2023 jest jedynym głównym dostawcą oferującym wykonalną implementację DiskANN, która uważana jest za najwydajniejsze indeksowanie wektorów dysku.
Wady: Milvus wydaje się rozwiązaniem, które na pełen nacisk angażuje się w kwestie skalowalności – jest wysoce skalowalny dzięki połączeniu proxy, load balancerów, message brokerów, Kafki i Kubernetes 7, co sprawia, że cały system jest bardzo skomplikowany i zasobożerny. API po stronie klienta, takie jak Python, również nie są tak czytelne ani intuicyjne jak nowsze bazy danych, takie jak Weaviate i Qdrant, które są bardziej nastawione na doświadczenie programisty. Milvus powstał z myślą o przesyłaniu danych do indeksów wektorowych dla ogromnej skalowalności, a w wielu przypadkach wydaje się trochę przesadzony, gdy ilość danych nie jest zbyt duża. Do bardziej statycznych i rzadkich dużych sytuacji alternatywy takie jak Qdrant czy Weaviate mogą być tańsze i szybciej uruchomić produkcję.

inny

Redis:Logowanie do linku jest widoczne.
Pinecone:Logowanie do linku jest widoczne.
Weaviate:Logowanie do linku jest widoczne.
FAISS:Logowanie do linku jest widoczne.Logowanie do linku jest widoczne.
Elasticsearch:Logowanie do linku jest widoczne.
SQL Server:Logowanie do linku jest widoczne.

Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.





Poprzedni:[AI] (13) Krótkie wprowadzenie do podobieństwa wektorowego i odległości
Następny:[AI] (15) Wektorowa baza danych Qdrant jest łatwa w obsłudze
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com