Zurück zum Glossar

Begriff

Chroma

Chroma (ChromaDB) ist eine quelloffene Vektordatenbank zum Speichern und Durchsuchen von Embeddings. Sie wird vor allem in RAG-Systemen genutzt, um relevante Textpassagen per Ähnlichkeitssuche an Sprachmodelle zu liefern.

Chroma — ausführlich erklärt

Chroma, oft als ChromaDB bezeichnet, ist eine quelloffene Vektor-Datenbank. Ihre Aufgabe ist es, Embeddings — numerische Vektor-Repräsentationen von Texten, Bildern oder anderen Daten — gemeinsam mit den zugehörigen Inhalten und Metadaten zu speichern und nach Ähnlichkeit durchsuchbar zu machen.

Technisch nutzt Chroma den HNSW-Algorithmus (Hierarchical Navigable Small World) für die Indizierung. Dieser baut einen Graphen auf, in dem ähnliche Vektoren als Nachbarn verbunden sind, und ermöglicht so eine Suche in annähernd logarithmischer statt linearer Zeit. Für die lokale, persistente Speicherung setzt Chroma standardmäßig auf SQLite; für den Produktivbetrieb steht ein Client-Server-Modus zur Verfügung.

Chroma lässt sich über Python- und JavaScript-Clients ansprechen und integriert sich in gängige LLM-Frameworks wie LangChain und LlamaIndex. Standardmäßig erzeugt es Embeddings über Sentence Transformers, kann aber auch Modelle von OpenAI, Cohere oder eigene Einbettungsfunktionen verwenden. Eine 2025 erfolgte Neufassung des Kerns in Rust beseitigte Engpässe durch Pythons Global Interpreter Lock und verbesserte den Durchsatz bei Schreib- und Leseoperationen spürbar.

Beispiel / Praxisbezug

Ein typischer Einsatz ist Retrieval Augmented Generation (RAG): Eine Wissensbasis — etwa Handbücher oder Support-Artikel — wird in Abschnitte zerlegt, jeder Abschnitt in ein Embedding umgewandelt und in Chroma abgelegt. Stellt ein Nutzer eine Frage, wird auch diese als Vektor codiert, die ähnlichsten Abschnitte werden aus Chroma abgerufen und dem Sprachmodell als Kontext mitgegeben. So antwortet das Modell auf Basis konkreter Quellen statt allein aus seinem Trainingswissen.

Abgrenzung zu ähnlichen Begriffen

Chroma ist eine eigenständige Datenbank, die speziell auf Vektor-Suche ausgelegt ist. Im Gegensatz dazu ist pgvector eine Erweiterung für die relationale Datenbank PostgreSQL, die Vektor-Funktionen in eine bestehende SQL-Datenbank einbettet. Chroma ist oft schneller einsatzbereit für Prototypen und kleinere Projekte, während pgvector punktet, wenn Vektor-Daten eng mit vorhandenen relationalen Daten verzahnt werden sollen. Beide arbeiten mit denselben Embeddings, unterscheiden sich aber in Architektur und Betriebsmodell.

Entdecke mehr