Open Source Vektordatenbank: Ein praktischer Leitfaden für AI-Enthusiasten
Von Jake Morrison, AI-Automatisierungsenthusiast
Die Welt der KI entwickelt sich schnell, und eine effiziente Datenverwaltung ist unerlässlich. Wenn Sie KI-Anwendungen entwickeln, insbesondere solche, die Ähnlichkeitssuchen beinhalten, sind Ihnen wahrscheinlich vektorielle Einbettungen begegnet. Diese digitalen Darstellungen von Daten sind leistungsstark, aber sie effizient zu speichern und abzufragen, erfordert spezialisierte Werkzeuge. Hier kommt eine **open source vektordatenbank** ins Spiel.
Dieser Artikel räumt mit dem Hype auf und vermittelt Ihnen ein praktisches Verständnis von open source vektordatenbanken. Wir werden erkunden, was sie sind, warum sie wichtig sind und wie Sie eine auswählen und implementieren können für Ihre Projekte. Mein Ziel ist es, Ihnen konkretes Wissen zu bieten, damit Sie diese Werkzeuge nutzen können, um bessere und skalierbarere KI-Systeme zu schaffen.
Was ist eine Vektordatenbank?
Bevor wir den Aspekt der Open Source erkunden, lassen Sie uns klären, was eine Vektordatenbank ist. Vereinfacht gesagt, ist eine Vektordatenbank eine Datenbank, die speziell dafür entwickelt wurde, vektorielle Einbettungen zu speichern, zu verwalten und abzufragen. Im Gegensatz zu traditionellen relationalen Datenbanken, die in strukturierten Daten und exakten Übereinstimmungen glänzen, sind Vektordatenbanken für die Ähnlichkeitssuche optimiert.
Wenn Sie Text, Bilder, Audio oder andere komplexe Daten mithilfe von Modellen wie den Einbettungen von OpenAI oder Sentence-BERT in numerische Vektoren (Einbettungen) umwandeln, erfassen diese Vektoren die semantische Bedeutung der ursprünglichen Daten. Eine Vektordatenbank ermöglicht es Ihnen, Vektoren zu finden, die einem gegebenen Abfragevektor “ähnlich” sind, was bedeutet, dass sie semantisch ähnliche Elemente repräsentieren. Dies ist entscheidend für Anwendungen wie Empfehlungsmaschinen, semantische Suche, Anomalieerkennung und mehr.
Warum sind Open Source Vektordatenbanken wichtig?
Die Wahl zwischen einer proprietären Vektordatenbank und einer **open source vektordatenbank** hängt oft von mehreren Faktoren ab: Kosten, Flexibilität, Community-Support und Kontrolle. Für viele KI-Enthusiasten und Entwickler bietet Open Source erhebliche Vorteile.
Kosten-Nutzen-Verhältnis
Dies ist vielleicht der offensichtlichste Vorteil. Open Source-Software ist in der Regel kostenlos zu nutzen. Während Sie möglicherweise in Infrastruktur und Ingenieurzeit investieren müssen, vermeiden Sie Lizenzgebühren, die bei proprietären Lösungen schnell anfallen können, besonders wenn Ihre Daten wachsen. Dadurch werden open source vektordatenbanken für Einzelpersonen, Startups und Projekte mit begrenztem Budget zugänglich.
Flexibilität und Anpassbarkeit
Open Source bedeutet, dass Sie Zugang zum Quellcode haben. Dieses Maß an Transparenz ermöglicht es Ihnen zu verstehen, wie die Datenbank intern funktioniert. Noch wichtiger ist, dass Sie die Möglichkeit haben, Anpassungen vorzunehmen, zu erweitern oder sogar einen Fork des Projekts zu erstellen, um Ihre spezifischen Bedürfnisse zu erfüllen. Wenn eine bestimmte Funktion fehlt oder Sie für eine einzigartige Arbeitslast optimieren müssen, haben Sie die Freiheit, diese Änderungen umzusetzen.
Community-Support und Innovation
Open Source-Projekte profitieren von den Beiträgen der Community. Dies führt oft zu einem dynamischen Ökosystem aus Entwicklern, Nutzern und Mitwirkenden, die Unterstützung bieten, neue Funktionen entwickeln und Fehler identifizieren und beheben. Die kollektive Intelligenz einer großen Community kann zu schnelleren Innovationen und langlebigerer Software im Laufe der Zeit führen. Sie sind nicht von der Roadmap eines einzelnen Anbieters abhängig.
Vermeidung von Anbieter-Lock-in
Die Wahl einer proprietären Lösung kann zu einem Anbieter-Lock-in führen. Die Migration Ihrer Daten und Anwendungen von einem geschlossenen System zu einem anderen kann ein komplexes und kostspieliges Unterfangen sein. Eine **open source vektordatenbank** bietet einen Ausweg. Wenn sich die Richtung des Projekts ändert oder Sie eine geeignetere Alternative finden, ist der Übergang in der Regel einfacher dank offener Standards und Datenformate.
Schlüsselfunktionen einer effektiven Open Source Vektordatenbank
Bei der Bewertung einer **open source vektordatenbank** sind bestimmte Funktionen für die praktische Nutzung entscheidend.
Skalierbarkeit
Wenn Ihre KI-Anwendungen wachsen, wird auch Ihr Set von vektoriellen Einbettungen wachsen. Die Datenbank muss in der Lage sein, zunehmende Datenmengen und Abfragen effizient zu verwalten. Dies erfordert oft verteilte Architekturen, Sharding und effiziente Indexierungsstrategien.
Leistung (Abfragegeschwindigkeit)
Die Ähnlichkeitssuche muss schnell sein. Die Datenbank sollte auch bei großen Datensätzen Abfragen mit niedriger Latenz bieten. Dies wird in der Regel durch Approximate Nearest Neighbor (ANN)-Algorithmen erreicht. Die genaue Suche nach dem nächstgelegenen Nachbarn ist ressourcenintensiv für hochdimensionale Daten, daher bieten ANN-Algorithmen ein gutes Gleichgewicht zwischen Geschwindigkeit und Genauigkeit.
Indexierungsalgorithmen
Verschiedene ANN-Algorithmen (z.B. HNSW, IVF_FLAT, LSH) bieten verschiedene Kompromisse in Bezug auf Geschwindigkeit, Genauigkeit und Speicherausnutzung. Eine gute Vektordatenbank unterstützt mehrere Indexierungsoptionen, sodass Sie die beste Lösung für Ihren Anwendungsfall und die Eigenschaften Ihrer Daten auswählen können.
Filterfähigkeiten
Über die einfache Ähnlichkeitssuche hinaus müssen Sie oft die Ergebnisse basierend auf Metadaten filtern. Zum Beispiel: „Finde ähnliche Produkte, die auf Lager sind und weniger als 50 $ kosten.“ Die Datenbank sollte eine effektive Filterung parallel zur vektoriellen Suche unterstützen.
Dauerhaftigkeit und Datenspeicherung
Ihre vektoriellen Einbettungen sind wertvoll. Die Datenbank muss die Dauerhaftigkeit der Daten gewährleisten, das heißt, Ihre Daten dürfen nicht verloren gehen, wenn das System ausfällt. Mechanismen zur Datenspeicherung wie Write Ahead Logs (WAL) und Replikation sind wichtig.
Benutzerfreundlichkeit und Integration
Eine gut dokumentierte API, Client-Bibliotheken für gängige Programmiersprachen (Python, Java, Go, Node.js) und einfache Bereitstellungsoptionen (Docker, Kubernetes) verringern die Lernkurve und den Integrationsaufwand erheblich.
Beliebte Open Source Vektordatenbank-Optionen
Lassen Sie uns einige der bekanntesten open source vektordatenbank-Projekte betrachten, die Sie in Betracht ziehen könnten.
Milvus
Milvus ist eine **open source vektordatenbank**, die sehr populär und ausgereift ist, entwickelt für die Ähnlichkeitssuche in großem Maßstab. Sie ist für cloud-native Umgebungen konzipiert und bietet exzellente Skalierbarkeit und Leistung. Milvus unterstützt verschiedene ANN-Algorithmen und bietet starke Filterfähigkeiten. Sie verfügt über eine Microservices-Architektur, die eine flexible Bereitstellung und Skalierung verschiedener Komponenten ermöglicht. Es ist ein starker Mitbewerber für Produktionsanwendungen.
Chroma
Chroma ist eine neuere, aber stark wachsende open source vektordatenbank, die den Fokus auf Benutzerfreundlichkeit legt. Sie wurde entwickelt, um einfach zu bedienen zu sein, insbesondere für Entwickler, die mit LLMs und Einbettungen arbeiten. Chroma kann im Speicher, als Client-Server-Lösung oder als eingebettete Datenbank funktionieren und bietet Flexibilität für verschiedene Projektgrößen. Es ist eine ausgezeichnete Wahl für schnelles Prototyping und kleinere Anwendungen, obwohl sie sich auch für größere Bereitstellungen weiterentwickelt.
Weaviate (Selbst-gehostet)
Obwohl Weaviate einen verwalteten Cloud-Dienst anbietet, ist sein Kern auch als **open source vektordatenbank** verfügbar, die Sie selbst hosten können. Weaviate zeichnet sich dadurch aus, dass es eine „native vektordatenbank“ ist, d.h. es behandelt Vektoren als Erstklassige Bürger und integriert die vektorielle Indexierung und Suche direkt in seinen Kern. Es unterstützt GraphQL-Abfragen, die eine leistungsstarke semantische Suche in Kombination mit Metadatenfilterung ermöglichen. Weaviate ist in Go geschrieben und für Leistung und Skalierbarkeit konzipiert.
Qdrant (Selbst-gehostet)
Qdrant ist eine weitere leistungsstarke Open Source Vektor-Datenbank, die in Rust geschrieben wurde und für ihre Leistung und Speichereffizienz bekannt ist. Sie konzentriert sich darauf, eine produktionsbereite Lösung für die Ähnlichkeitssuche mit erweiterten Filtermöglichkeiten bereitzustellen. Qdrant unterstützt verschiedene Arten von Metriken zur Berechnung der Ähnlichkeit und bietet ein solides Funktionsset für die Verwaltung von Vektor-Kollektionen und ihren zugehörigen Lasten. Wie Weaviate kann sie selbst gehostet werden und ist für großflächige Bereitstellungen konzipiert.
Faiss (Bibliothek, keine vollständige Datenbank)
Es ist wichtig, Faiss (Facebook AI Similarity Search) zu erwähnen. Obwohl es sich nicht um eine vollständige Vektor-Datenbank handelt, ist Faiss eine hochoptimierte Bibliothek für effiziente Ähnlichkeitssuche und Dichtvektor-Clustering. Sie bietet hochmoderne ANN-Algorithmen und wird oft als zugrunde liegende Indizierungsmotor innerhalb größerer Vektor-Datenbanksysteme oder für benutzerdefinierte Implementierungen verwendet, bei denen Sie die Speicherung und andere Datenbankfunktionen selbst verwalten. Wenn Sie eine benutzerdefinierte Lösung erstellen, ist Faiss ein unschätzbarer Baustein.
Die richtige Open Source Vektor-Datenbank auswählen
Die Auswahl der besten **Open Source Vektor-Datenbank** hängt von Ihren spezifischen Projektanforderungen ab. Hier ist ein praktischer Rahmen für diese Entscheidung:
1. Projektskala und Datenvolumen
* **Klein bis Mittel (Prototypen, persönliche Projekte, kleine Anwendungen):** Chroma ist ein hervorragender Ausgangspunkt aufgrund seiner Einfachheit und der leichten Konfiguration. Es ermöglicht einen schnellen Einstieg.
* **Großmaßstab (Produktionsanwendungen, Millionen/Milliarden von Vektoren):** Milvus, Weaviate (selbst gehostet) und Qdrant sind für diese Bedürfnisse ausgelegt. Sie bieten verteilte Architekturen und solide Funktionen zur Skalierung.
2. Leistungsanforderungen
* **Kritische niedrige Latenz:** Alle genannten Datenbanken zielen auf hohe Leistung ab. Bewerten Sie jedoch spezifische Lösungen mit Ihren Daten und Abfrage-Mustern, um herauszufinden, welche in Ihrem genauen Anwendungsfall am besten abschneidet. Qdrant und Weaviate, die respektive in Rust und Go geschrieben wurden, werden oft für ihre Leistungsmerkmale hervorgehoben.
3. Ökosystem und Integrationen
* **Fokus auf LLM/RAG:** Chroma ist explizit mit Blick auf LLM- und RAG-Workflows (Retrieval Augmented Generation) konzipiert und lässt sich oft problemlos mit Frameworks wie LangChain und LlamaIndex integrieren.
* **Breitere AI-Anwendungen:** Milvus, Weaviate und Qdrant sind vielseitiger und fügen sich gut in verschiedene AI-Pipelines ein, die über alleinige LLM hinausgehen.
* **Programmiersprache:** Überprüfen Sie die Client-Bibliotheken in Ihrer bevorzugten Sprache (Python, Java, Go, Node.js). Alle relevanten Optionen unterstützen Python, das im Bereich AI Standard ist.
4. Bereitstellungsumgebung
* **Cloud/Kubernetes-nativ:** Milvus, Weaviate und Qdrant sind gut für Kubernetes-Bereitstellungen geeignet und bieten Helm-Charts und Container-Images.
* **Lokal/Embedded:** Chroma bietet einen eingebetteten Modus, was sehr praktisch für die lokale Entwicklung oder für kleine Standalone-Anwendungen ist.
5. Community und Support
* Schauen Sie sich die Sterne auf GitHub, offene Issues, die Aktivität von Pull-Requests und Community-Foren (Discord, Slack) an. Eine dynamische Community deutet auf laufende Entwicklungen und leicht zugängliche Hilfe hin.
6. Funktionsset
* **Erweiterte Filterung:** Wenn Sie komplexe Metadatenfilterung in Kombination mit Vektor-Suche benötigen, bewerten Sie die Fähigkeiten jeder Option sorgfältig. GraphQL von Weaviate und die erweiterte Filterung von Qdrant sind hier Stärken.
* **Daten- und Metriktypen:** Stellen Sie sicher, dass die Datenbank die vektoriellen Dimensionen und Ähnlichkeitsmetriken (z. B. Kosinusähnlichkeit, euklidische Distanz) unterstützt, die Sie verwenden möchten.
Praktische Schritte zum Starten mit einer Open Source Vektor-Datenbank
Betrachten wir ein häufiges Szenario: Sie haben Textdaten, möchten diese integrieren und dann eine semantische Suche unter Verwendung einer **Open Source Vektor-Datenbank** durchführen.
Schritt 1: Wählen Sie Ihr Integrationsmodell
Bevor Sie eine Vektor-Datenbank verwenden, benötigen Sie Vektor-Integrationen. Beliebte Optionen sind:
* **OpenAI Embeddings:** Hochwertig, einfach über API zu verwenden.
* **Hugging Face Transformers:** Eine Vielzahl von Open Source-Modellen (z. B. `sentence-transformers/all-MiniLM-L6-v2`), die Sie lokal oder auf Ihrer eigenen Infrastruktur ausführen können.
* **Cohere Embeddings:** Eine weitere solide API-basierte Option.
Für dieses Beispiel nehmen wir an, dass Sie ein `sentence-transformers`-Modell verwenden.
Schritt 2: Installieren und starten Sie Ihre gewählte Datenbank
Die meisten Open Source Vektor-Datenbanken bieten Docker-Images an, was die Bereitstellung erheblich erleichtert.
**Beispiel: Ausführen von Chroma mit Docker**
“`bash
docker run -p 8000:8000 chromadb/chroma
“`
Dieser Befehl lädt das Docker-Image von Chroma herunter und führt es aus, sodass es über den Port 8000 zugänglich ist.
**Beispiel: Ausführen von Qdrant mit Docker**
“`bash
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
“`
Dies führt Qdrant aus und stellt dessen gRPC-Ports (6333) und HTTP-Ports (6334) bereit.
Schritt 3: Generieren Sie Embeddings und fügen Sie sie der Datenbank hinzu
Lassen Sie uns jetzt Python-Code schreiben, um Embeddings zu generieren und sie unserer **Open Source Vektor-Datenbank** hinzuzufügen. Wir verwenden Chroma der Einfachheit halber.
“`python
from sentence_transformers import SentenceTransformer
import chromadb
from chromadb.utils import embedding_functions
# 1. Initialisieren Sie Ihr Embedding-Modell
model = SentenceTransformer(‘all-MiniLM-L6-v2’)
# 2. Verbinden Sie sich mit ChromaDB (vorausgesetzt, es läuft über Docker)
client = chromadb.HttpClient(host=”localhost”, port=8000)
# 3. Erstellen Sie eine Sammlung (wie eine Tabelle in einer relationalen Datenbank)
# Sie können eine benutzerdefinierte Integrationsfunktion verwenden oder Chroma sich darum kümmern lassen, wenn Sie einen Modellnamen angeben
# Für dieses Beispiel verwenden wir die standardmäßige Integrationsfunktion von Chroma zur Vereinfachung
# Oder, wenn Sie Ihr lokales SentenceTransformer-Modell verwenden möchten:
# sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=”all-MiniLM-L6-v2″)
# collection = client.get_or_create_collection(name=”my_documents”, embedding_function=sentence_transformer_ef)
# Zur Vereinfachung lassen wir Chroma das Modell selbst herunterladen, falls es nicht vorhanden ist
collection = client.get_or_create_collection(name=”my_documents”)
# 4. Bereiten Sie Ihre Daten vor
documents_to_embed = [
“Der flinke braune Fuchs springt über den faulen Hund.”,
“Eine flauschige Katze schläft auf dem Sofa.”,
“Python ist eine vielseitige Programmiersprache für AI.”,
“Machine Learning-Modelle benötigen Daten.”,
“Deep Learning ist ein Teilbereich von Machine Learning.”
]
ids = [f”doc{i}” for i in range(len(documents_to_embed))]
metadatas = [{“source”: “blog”, “author”: “Jake”} for _ in documents_to_embed]
# 5. Fügen Sie Dokumente zur Sammlung hinzu (Chroma wird sie integrieren, wenn keine benutzerdefinierte Funktion bereitgestellt wurde)
collection.add(
documents=documents_to_embed,
metadatas=metadatas,
ids=ids
)
print(f”{len(documents_to_embed)} Dokumente zur Sammlung hinzugefügt.”)
# 6. Führen Sie eine Ähnlichkeitssuche durch
query_text = “Programmiersprachen für AI”
results = collection.query(
query_texts=[query_text],
n_results=2, # Holen Sie sich die 2 ähnlichsten Ergebnisse
where={“source”: “blog”} # Optional: nach Metadaten filtern
)
print(“\nSuchergebnisse:”)
for i, doc in enumerate(results[‘documents’][0]):
print(f” Ergebnis {i+1}: {doc}”)
print(f” Metadaten: {results[‘metadatas’][0][i]}”)
print(f” Distanz: {results[‘distances’][0][i]}”) # Eine niedrigere Distanz bedeutet mehr Ähnlichkeit
“`
Dieses grundlegende Beispiel demonstriert den Hauptarbeitsablauf:
1. Konfigurieren Sie Ihr Integrationsmodell.
2. Verbinden Sie sich mit Ihrer **Open Source Vektor-Datenbank**.
3. Fügen Sie Ihre Daten hinzu, indem Sie der Datenbank die Integration überlassen oder vorausberechnete Integrationen bereitstellen.
4. Führen Sie eine Ähnlichkeitssuche mit optionaler Metadatenfilterung durch.
Fortgeschrittene Überlegungen und bewährte Praktiken
Wenn Sie Ihre Nutzung einer **Open Source Vektor-Datenbank** ausweiten, behalten Sie diese Punkte im Hinterkopf:
* **Vorberechnung vs. Echtzeit-Integrationen:** Bei großen Datensätzen ist es in der Regel effizienter, Integrationen vorab zu berechnen und zu speichern, als sie zur Anfragezeit zu berechnen. Einige Datenbanken (wie Chroma mit bestimmten Integrationen) können jedoch Echtzeit-Integrationen für die Aufnahme bewältigen.
* **Batching:** Gruppieren Sie bei der Datenaufnahme immer Ihre Hinzufügungen. Das Senden von Tausenden einzelner Anfragen ist viel langsamer als das Senden einer einzigen Anfrage mit Tausenden von Elementen.
* **Indexierungsparameter:** Verstehen Sie die Indexierungsalgorithmen (zum Beispiel die HNSW-Parameter wie `M` und `ef_construction`). Das Anpassen dieser Parameter kann erhebliche Auswirkungen auf den Kompromiss zwischen Suchgeschwindigkeit, Genauigkeit und Speichernutzung haben. Verweisen Sie auf die Dokumentation der gewählten Datenbank.
* **Überwachung:** Richten Sie eine Überwachung für Ihre Vektor-Datenbank ein. Überwachen Sie Metriken wie die Anfragedauer, die Indexierungszeit, die Speichernutzung und den Speicherplatz, um eine optimale Leistung sicherzustellen und Probleme schnell zu identifizieren.
* **Replikation und hohe Verfügbarkeit:** Richten Sie für Produktionssysteme die Replikation ein, um Datenverlust zu vermeiden und hohe Verfügbarkeit bei Knotenfehlern zu gewährleisten. Die meisten guten Open Source Optionen unterstützen dies.
* **Backup und Wiederherstellung:** Sichern Sie regelmäßig Ihre Vektor-Datenbank. Datenverlust kann katastrophal sein.
Die Zukunft der Open Source Vektor-Datenbanken
Der Bereich der Vektor-Datenbanken entwickelt sich schnell weiter. Wir können Folgendes erwarten:
* **Engere Integration mit LLM-Frameworks:** Eine noch nahtlosere Integration mit Werkzeugen wie LangChain, LlamaIndex und potenziell neuen Frameworks, die im Bereich AI erscheinen.
* **Hybride Suchfunktionen:** Verbesserte Möglichkeiten, die Vektorsuche mit traditioneller Keyword-Suche (spärliche Vektoren) zu kombinieren, um noch relevantere Ergebnisse zu erzielen.
* **Multimodale Suche:** Verbesserung des Umgangs mit und der Abfrage von Integrationen aus verschiedenen Modalitäten (Text, Bild, Audio) innerhalb einer einzigen Datenbank.
* **Skalierbarkeit und verbesserte Leistung:** Kontinuierliche Fortschritte in ANN-Algorithmen und verteilten Architekturen, um zunehmend wachsende Datensätze und strengere Latenzanforderungen zu bewältigen.
* **Spezialisierte Funktionen:** Datenbanken könnten beginnen, spezialisiertere Funktionen für spezifische AI-Aufgaben anzubieten, wie graphbasierte Ähnlichkeit oder die Indizierung von Zeitserien-Vektoren.
Die Nutzung einer **Open Source Vektor-Datenbank** bringt Sie an die Spitze dieser spannenden Entwicklung und ermöglicht es Ihnen, leistungsstarke und intelligente Anwendungen ohne proprietäre Beschränkungen zu erstellen.
FAQ
Q1: Was ist der Hauptunterschied zwischen einer traditionellen Datenbank und einer Open Source Vektor-Datenbank?
Eine traditionelle Datenbank (wie PostgreSQL oder MySQL) ist für strukturierte Daten, exakte Übereinstimmungen und komplexe Joins optimiert und verwendet Primärschlüssel und Indizes für einen schnellen Zugriff. Im Gegensatz dazu ist eine Open Source Vektor-Datenbank speziell zum Speichern und Abfragen von hochdimensionalen numerischen Vektoren (Embeddings) für Ähnlichkeitsrecherchen konzipiert, indem sie Elemente findet, die semantisch “nah” beieinander liegen, anstatt exakte Übereinstimmungen.
Q2: Kann ich eine Open Source Vektor-Datenbank für Echtzeitanwendungen verwenden?
Ja, viele Open Source Vektor-Datenbanken wie Milvus, Weaviate und Qdrant sind für hochleistungsfähige und latenzarme Abfragen konzipiert, was sie für Echtzeitanwendungen wie Empfehlungsmaschinen, semantische Suche in Live-Chats oder die Erkennung von Anomalien in Echtzeit geeignet macht. Ihre zugrunde liegenden ANN-Algorithmen sind auf Geschwindigkeit optimiert.
Q3: Soll ich meine eigenen Embeddings generieren, oder kann die Vektor-Datenbank dies tun?
Das hängt von der spezifischen Open Source Vektor-Datenbank ab. Einige, wie Chroma, können sich direkt mit Embedding-Modellen (z. B. von Sentence Transformers oder OpenAI) integrieren und Embeddings für Sie während der Aufnahme generieren, wenn dies konfiguriert ist. Andere, wie Milvus oder Qdrant, erwarten in der Regel, dass Sie vorab berechnete Embeddings bereitstellen. Für groß angelegte Anwendungen bietet das Vorab-Berechnen von Embeddings oft eine bessere Kontrolle und Effizienz.
🕒 Published: