Qdrant

Qdrant to wyszukiwarka podobieństwa wektorów, zaprojektowana w celu przyspieszenia przepływów pracy AI i uczenia maszynowego. Jest szczególnie potężna w połączeniu z dedykowaną infrastrukturą serwerową GPU, taką jak oferowana przez Trooper.AI, umożliwiając szybkie prototypowanie i wdrażanie złożonych rozwiązań AI.

Dashboard of Qdrant
Panel sterowania Qdrant

Qdrant doskonale sprawdza się w znajdowaniu najbardziej podobnych wektorów do danego wektora zapytania, co czyni go idealnym rozwiązaniem dla aplikacji takich jak wyszukiwanie semantyczne, systemy rekomendacji oraz wyszukiwanie obrazów i wideo.

Dlaczego Qdrant z serwerami GPU?

Tradycyjne systemy baz danych mają problemy z wysoką wymiarowością i złożonymi obliczeniami podobieństwa obecnymi w osadzaniu wektorowym. Qdrant, zoptymalizowany pod kątem danych wektorowych, w połączeniu z równoległą mocą obliczeniową GPU, zapewnia znaczące zyski wydajności. Serwer GPU Trooper.AI zapewnia niezbędną moc obliczeniową do obsługi dużych zbiorów danych wektorowych i dostarczania wyników wyszukiwania z niskimi opóźnieniami.

Przyspieszenie za pomocą GPU jest włączone domyślnie w naszym gotowym szablonie Qdrant, zapewniając optymalną wydajność dla Twoich wyszukiwań.

Przykłady użycia

Oto kilka konkretnych zastosowań, w których Qdrant, zasilany serwerami GPU Trooper.AI, sprawdza się doskonale:

  • Wyszukiwanie semantyczne: Zamiast dopasowywania słów kluczowych, Qdrant umożliwia wyszukiwanie dokumentów lub treści na podstawie ich znaczenia. Wektory kontekstowe (embeddings) uchwycają istotę semantyczną tekstu, a Qdrant znajduje najbardziej podobne wyniki pod względem znaczeniowym. Na przykład, szukając frazy «sposoby poprawy dokładności modelu», otrzymasz wyniki omawiające regularyzację (regularization), dostosowywanie hiperparametrów oraz augmentację danych – nawet jeśli te konkretne słowa nie występują.
  • Systemy rekomendacji: Przedstaw użytkowników i przedmioty jako wektory. Qdrant może szybko identyfikować podobne pozycje do tych, z którymi użytkownik wcześniej wchodził w interakcję, dostarczając spersonalizowanych poleceń. To ma zastosowanie w handlu elektronicznym (e-commerce), strumieniowaniu treści oraz wielu innych dziedzinach.
  • Wyszukiwanie obrazów i wideo: Wyciągaj wektory cech (embeddings) z obrazów i filmików za pomocą modeli takich jak CLIP. Qdrant umożliwia wyszukiwanie treści wzrokowo podobnych. Wyobraź sobie wyszukanie frazy „kot bawi się piłką” i otrzymanie odpowiednich obrazków oraz filmików, nawet jeśli nie posiadają one tych dokładnie opisanych tagów.

API

Oto przykład typowego przepływu pracy API z Qdrant, po którym następuje przykład w Pythonie do wyszukiwania podobnych wektorów:

Standardowy przepływ pracy z API w Qdrant:

  1. Autoryzacja: Większość wdrożeń Qdrant wymaga klucza API do uwierzytelniania. Klucz ten powinien być umieszczony w nagłówku Authorization Twoich żądań.
  2. Wybór endpointów: Qdrant udostępnia różne endpointy dla różnych operacji, takich jak wyszukiwanie, dodawanie (upsert) wektorów oraz zarządzanie kolekcjami.
  3. Formatowanie żądań: Dane są zazwyczaj wysyłane i odbierane w formacie JSON.
  4. Obsługa odpowiedzi: API zwraca odpowiedzi w formacie JSON zawierające wyniki Twojego żądania lub komunikaty o błędach, jeśli coś pójdzie nie tak.

Oto przykład wywołania Python do Qdrant w celu wyszukiwania podobnych wektorów:

python
import requests
import json
import numpy as np

# Qdrant API endpoint and collection name
QDRANT_API_URL = "https://SECURE-TROOPER-APP-URL"  # Replace with your Qdrant endpoint
QDRANT_COLLECTION_NAME = "my_collection"

# Your API Key
API_KEY = "YOUR_QDRANT_API_KEY" # Replace with your Qdrant API key

# Payload for the search request
payload = {
    "vectors": (np.random.rand(128).tolist()),  # Replace with your query vector
    "limit": 10  # Number of results to return
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

try:
    response = requests.post(f"{QDRANT_API_URL}/collections/{QDRANT_COLLECTION_NAME}/search",
                             headers=headers,
                             data=json.dumps(payload))

    response.raise_for_status()  # Raise HTTPError for bad responses (4xx or 5xx)

    results = response.json()
    print(json.dumps(results, indent=2))

except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
    print(f"Response text: {response.text}")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

Ten przykład pokazuje, jak zapytanie o podobne wektory w Qdrant. Pamiętaj, aby zastąpić "https://SECURE-TROOPER-APP-URL", "my_collection", "YOUR_QDRANT_API_KEY" oraz podany wektor przykładowy swoimi rzeczywistymi danymi końcowymi Qdrant, nazwą kolekcji, kluczem API i wektorem zapytania. Aby uzyskać więcej informacji na temat dostępnych punktów końcowych i funkcjonalności, zobacz dokumentację API Qdrant: https://qdrant.tech/documentation/

Panel Qdrant

Dashboard Startscreen
Ekran startowy panelu

Qdrant zapewnia przyjazny interfejs webowy do zarządzania Twoimi wektorami i kolekcjami. Panel umożliwia:

  • Wizualizacja danych wektorowych: Przeglądaj swoje wektory w przestrzeni o wysokiej wymiarowości za pomocą wykresów rozrzutu i innych wizualizacji.
  • Zarządzaj kolekcjami: Twórz, modyfikuj i usuwaj kolekcje w celu organizowania danych wektorowych.
  • Wyszukiwanie i filtrowanie: Wykonuj szybkie wyszukiwania oraz stosuj filtry, aby znaleźć konkretne wektory.
  • Monitorowanie wydajności: Śledź kluczowe wskaźniki, takie jak opóźnienie zapytania i zużycie zasobów.
  • Przeglądaj wektory: Wyświetl szczegółowe informacje na temat indywidualnych wektorów, w tym ich embeddings i payloady.

Jak uzyskać dostęp do panelu sterowania

Możesz uzyskać dostęp do panelu sterowania Qdrant przez interfejs webowy Twojej instalacji Qdrant.

Dodaj /dashboard do swojego adresu URL API, aby uzyskać do niego dostęp.

Zobacz dokumentację Qdrantu dla szczegółowych instrukcji dotyczących dostępu i korzystania z panelu sterowania: https://qdrant.tech/documentation/. Korzystanie z panelu w połączeniu z serwerem GPU Trooper.AI zapewnia płynne i responsywne działanie przy pracy z dużymi zestawami danych wektorowych.