milvus-logo
LFAI
Home
  • Los geht's
    • Milvus installieren

Lokale Ausführung von Milvus Lite

Diese Seite veranschaulicht, wie Milvus lokal mit Milvus Lite ausgeführt werden kann. Milvus Lite ist die schlanke Version von Milvus, einer Open-Source-Vektordatenbank, die KI-Anwendungen mit Vektoreinbettungen und Ähnlichkeitssuche unterstützt.

Überblick

Milvus Lite kann in Ihre Python-Anwendung importiert werden und bietet die zentralen Vektorsuchfunktionen von Milvus. Milvus Lite ist bereits im Python-SDK von Milvus enthalten. Es kann einfach mit pip install pymilvus eingesetzt werden.

Mit Milvus Lite können Sie innerhalb weniger Minuten eine KI-Anwendung mit vektorieller Ähnlichkeitssuche erstellen! Milvus Lite kann in den folgenden Umgebungen eingesetzt werden:

  • Jupyter Notebook / Google Colab
  • Laptops
  • Edge-Geräte

Milvus Lite nutzt dieselbe API wie Milvus Standalone und Distributed und deckt die meisten Funktionen ab, wie z. B. die Persistenz und Verwaltung von Vektordaten, Vektor-CRUD-Operationen, Sparse- und Dense-Vektor-Suche, Metadatenfilterung, Multi-Vektor- und Hybrid-Suche. Zusammen bieten sie eine konsistente Erfahrung über verschiedene Arten von Umgebungen hinweg, von Edge-Geräten bis hin zu Clustern in der Cloud, passend zu Anwendungsfällen unterschiedlicher Größe. Mit demselben clientseitigen Code können Sie GenAI-Anwendungen mit Milvus Lite auf einem Laptop oder Jupyter Notebook, Milvus Standalone auf einem Docker-Container oder Milvus Distributed auf einem Kubernetes-Cluster mit Milliarden von Vektoren in der Produktion ausführen.

Voraussetzungen

Milvus Lite unterstützt derzeit die folgenden Umgebungen:

  • Ubuntu >= 20.04 (x86_64 und arm64)
  • MacOS >= 11.0 (Apple Silicon M1/M2 und x86_64)

Bitte beachten Sie, dass Milvus Lite nur für kleine Anwendungsfälle der Vektorsuche geeignet ist. Für große Anwendungsfälle empfehlen wir Milvus Standalone oder Milvus Distributed. Sie können auch das vollständig verwaltete Milvus auf der Zilliz Cloud in Betracht ziehen.

Milvus Lite einrichten

pip install -U pymilvus

Wir empfehlen die Verwendung von pymilvus. Da milvus-lite in pymilvus Version 2.4.2 oder höher enthalten ist, können Sie pip install mit -U verwenden, um ein Update auf die neueste Version zu erzwingen. milvus-lite wird automatisch installiert.

Wenn Sie das Paket milvus-lite explizit installieren möchten, oder wenn Sie eine ältere Version von milvus-lite installiert haben und diese aktualisieren möchten, können Sie pip install -U milvus-lite verwenden.

Verbindung zu Milvus Lite

Wenn Sie in pymilvus einen lokalen Dateinamen als uri-Parameter von MilvusClient angeben, wird Milvus Lite verwendet.

from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")

Nach Ausführung des obigen Codeausschnitts wird eine Datenbankdatei mit dem Namen milvus_demo.db im aktuellen Ordner erstellt.

HINWEIS: Beachten Sie, dass die gleiche API auch für Milvus Standalone, Milvus Distributed und Zilliz Cloud gilt. Der einzige Unterschied besteht darin, dass der lokale Dateiname durch den Endpunkt des Remote-Servers und die Anmeldeinformationen ersetzt wird, z. B.client = MilvusClient(uri="http://localhost:19530", token="username:password").

Beispiele

Im Folgenden finden Sie eine einfache Demo, die zeigt, wie Milvus Lite für die Textsuche verwendet wird. Es gibt umfangreichere Beispiele für die Verwendung von Milvus Lite zur Erstellung von Anwendungen wie RAG, Bildsuche und die Verwendung von Milvus Lite in beliebten RAG-Frameworks wie LangChain und LlamaIndex!

from pymilvus import MilvusClient
import numpy as np

client = MilvusClient("./milvus_demo.db")
client.create_collection(
    collection_name="demo_collection",
    dimension=384  # The vectors we will use in this demo has 384 dimensions
)

# Text strings to search from.
docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]
# For illustration, here we use fake vectors with random numbers (384 dimension).

vectors = [[ np.random.uniform(-1, 1) for _ in range(384) ] for _ in range(len(docs)) ]
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
res = client.insert(
    collection_name="demo_collection",
    data=data
)

# This will exclude any text in "history" subject despite close to the query vector.
res = client.search(
    collection_name="demo_collection",
    data=[vectors[0]],
    filter="subject == 'history'",
    limit=2,
    output_fields=["text", "subject"],
)
print(res)

# a query that retrieves all entities matching filter expressions.
res = client.query(
    collection_name="demo_collection",
    filter="subject == 'history'",
    output_fields=["text", "subject"],
)
print(res)

# delete
res = client.delete(
    collection_name="demo_collection",
    filter="subject == 'history'",
)
print(res)

Begrenzungen

Wenn Sie Milvus Lite verwenden, beachten Sie bitte, dass einige Funktionen nicht unterstützt werden. Die folgenden Tabellen fassen die Nutzungsgrenzen von Milvus Lite zusammen.

Sammlung

Methode/ParameterUnterstützt in Milvus Lite
create_collection()Unterstützung mit begrenzten Parametern
collection_nameY
dimensionY
primary_field_nameY
id_typeY
vector_field_nameY
metric_typeY
auto_idY
schemaY
index_paramsY
enable_dynamic_fieldY
num_shardsN
partition_key_fieldN
num_partitionsN
consistency_levelN (unterstützt nur Strong; jede andere Konfiguration wird als Strong behandelt).
get_collection_stats()Unterstützt das Abrufen von Sammlungsstatistiken.
collection_nameY
timeoutY
describe_collection()num_shards, consistency_level und collection_id in der Antwort sind ungültig.
timeoutY
has_collection()Unterstützt die Prüfung, ob eine Sammlung existiert.
collection_nameY
timeoutY
list_collections()Unterstützt die Auflistung aller Sammlungen.
drop_collection()Unterstützt das Fallenlassen einer Sammlung.
collection_nameY
timeoutY
rename_collection()Das Umbenennen einer Sammlung wird nicht unterstützt.

Feld & Schema

Methode/ParameterUnterstützt in Milvus Lite
create_schema()Unterstützung mit begrenzten Parametern
auto_idY
enable_dynamic_fieldY
primary_fieldY
partition_key_fieldN
add_field()Unterstützung mit begrenzten Parametern
field_nameY
datatypeY
is_primaryY
max_lengthY
element_typeY
max_capacityY
dimY
is_partition_keyN
Methode/ParameterUnterstützt in Milvus Lite
suchen()Unterstützung mit begrenzten Parametern
collection_nameY
dataY
filterY
limitY
output_fieldsY
search_paramsY
timeoutY
partition_namesN
anns_fieldY
Abfrage()Unterstützung mit begrenzten Parametern
collection_nameY
filterY
output_fieldsY
timeoutY
idsY
partition_namesN
get()Unterstützung mit begrenzten Parametern
collection_nameY
idsY
output_fieldsY
timeoutY
partition_namesN
löschen()Unterstützung mit begrenzten Parametern
collection_nameY
idsY
timeoutY
filterY
partition_nameN
einfügen()Unterstützung mit begrenzten Parametern
collection_nameY
dataY
timeoutY
partition_nameN
upsert()Unterstützung mit begrenzten Parametern
collection_nameY
dataY
timeoutY
partition_nameN

Laden & Freigeben

Verfahren/ParameterUnterstützt in Milvus Lite
load_collection()Y
collection_nameY
timeoutY
release_collection()Y
collection_nameY
timeoutY
get_load_state()Die Abfrage des Ladestatus wird nicht unterstützt.
refresh_load()Das Laden der entladenen Daten einer geladenen Sammlung wird nicht unterstützt.
close()Y

Index

Methode/ParameterUnterstützt in Milvus Lite
list_indexes()Das Auflisten von Indizes wird unterstützt.
collection_nameY
field_nameY
create_index()Unterstützt nur den Index-Typ FLAT.
index_paramsY
timeoutY
drop_index()Das Löschen von Indizes wird unterstützt.
collection_nameY
index_nameY
timeoutY
describe_index()Das Beschreiben von Indizes wird unterstützt.
collection_nameY
index_nameY
timeoutY

Vektor-Index-Typen

Milvus Lite unterstützt nur den Index-Typ FLAT. Es verwendet den FLAT-Typ unabhängig vom angegebenen Index-Typ in der Sammlung.

Suchfunktionen

Milvus Lite unterstützt Sparse Vector, Multi-Vector, Hybrid Search.

Partitionierung

Milvus Lite unterstützt keine Partitionen und partitionierungsbezogene Methoden.

Benutzer & Rollen

Milvus Lite unterstützt keine Benutzer und Rollen und damit verbundene Methoden.

Alias

Milvus Lite unterstützt keine Aliasnamen und aliasbezogene Methoden.

Migration von Daten aus Milvus Lite

Alle in Milvus Lite gespeicherten Daten können einfach exportiert und in andere Milvus-Bereitstellungsarten geladen werden, wie Milvus Standalone auf Docker, Milvus Distributed auf K8s oder vollständig verwaltetes Milvus auf Zilliz Cloud.

Milvus Lite bietet ein Kommandozeilen-Tool, das Daten in eine json-Datei ausgeben kann, die in Milvus und Zilliz Cloud(der vollständig verwaltete Cloud-Service für Milvus) importiert werden kann. Der Befehl milvus-lite wird zusammen mit dem Python-Paket milvus-lite installiert.

# Install
pip install -U "pymilvus[bulk_writer]"

milvus-lite dump -h

usage: milvus-lite dump [-h] [-d DB_FILE] [-c COLLECTION] [-p PATH]

optional arguments:
  -h, --help            show this help message and exit
  -d DB_FILE, --db-file DB_FILE
                        milvus lite db file
  -c COLLECTION, --collection COLLECTION
                        collection that need to be dumped
  -p PATH, --path PATH  dump file storage dir

Das folgende Beispiel exportiert alle Daten aus der Sammlung demo_collection, die in ./milvus_demo.db (Milvus Lite Datenbankdatei) gespeichert sind

Zum Exportieren von Daten:

milvus-lite dump -d ./milvus_demo.db -c demo_collection -p ./data_dir
# ./milvus_demo.db: milvus lite db file
# demo_collection: collection that need to be dumped
#./data_dir : dump file storage dir

Mit der Dump-Datei können Sie Daten über Data Import in die Zilliz-Cloud hochladen oder über Bulk Insert auf die Milvus-Server hochladen.

Wie geht es weiter?

Nachdem Sie sich mit Milvus Lite verbunden haben, können Sie:

Übersetzt vonDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?