Definitie: Een vectordatabase is een database die gegevens opslaat als vectoren: reeksen getallen die de betekenis van tekst, beeld of geluid weergeven. Daardoor kun je zoeken op betekenis in plaats van op exacte woorden, wat de basis is van veel AI-toepassingen zoals chatbots op eigen documenten.

In het kort

  • Een AI-model zet een tekst om in een embedding: een vector die de betekenis vastlegt. Teksten met een vergelijkbare betekenis krijgen vectoren die dicht bij elkaar liggen.
  • Een vectordatabase vindt snel de vectoren die het meest lijken op een zoekvraag, ook bij miljoenen records.
  • Bekende vectordatabases zijn Pinecone, Weaviate, Qdrant, Milvus en Chroma; met pgvector kun je ook een PostgreSQL-database gebruiken.
  • Vectordatabases zijn een kernonderdeel van RAG, de techniek waarmee een taalmodel antwoorden baseert op je eigen informatie.

Wat is een vectordatabase?

Een gewone database zoekt op exacte waarden. Je vraagt om alle klanten in Utrecht, of alle orders met status “verzonden”, en de database geeft precies die records. Dat werkt uitstekend voor gestructureerde gegevens, maar niet voor vragen als “welke documenten gaan over het terugsturen van een product?” Een document waarin “retourneren” staat, of “ruilen”, wordt dan niet gevonden als je alleen op het woord “terugsturen” zoekt.

Een vectordatabase lost dat op door te zoeken op betekenis. De term vector komt uit de wiskunde: een vector is een reeks getallen die een richting en positie in een ruimte aangeeft. Hier wordt die ruimte gebruikt om betekenis te ordenen. Elke tekst wordt vooraf omgezet in een vector, een lange reeks getallen die door een AI-model is berekend. Die getallen leggen vast waar een tekst over gaat. Een zoekvraag wordt op dezelfde manier omgezet, en de database zoekt de vectoren die er het dichtst bij liggen.

Hoe werkt een vectordatabase?

  1. Embeddings maken. Een embeddingmodel zet elke tekst, afbeelding of ander stuk inhoud om in een vector.
  2. Opslaan. De vectoren worden opgeslagen, samen met de originele tekst en metadata zoals bron, datum of categorie.
  3. Indexeren. De database bouwt een index, zodat zoeken ook bij grote aantallen snel gaat. Vaak wordt een methode voor benaderend zoeken gebruikt, zoals HNSW.
  4. Zoeken. Een vraag wordt omgezet in een vector, en de database zoekt de meest vergelijkbare vectoren op basis van een afstandsmaat zoals cosinusgelijkenis.
  5. Resultaat. De database geeft de best passende stukken tekst terug, eventueel gefilterd op metadata.

Een eenvoudig voorbeeld

Stel dat een klantenservice een kennisbank heeft met tweehonderd artikelen. Een klant typt: “Mijn bestelling klopt niet, er zat een verkeerde maat in.” In een gewone zoekfunctie wordt gezocht op de woorden “bestelling”, “klopt” en “maat”, en verschijnen er artikelen die die woorden toevallig bevatten.

In een vectordatabase wordt de vraag omgezet in een vector en vergeleken met de vectoren van alle artikelen. Het artikel “Een product ruilen voor een andere maat” komt bovenaan, ook al staat het woord “klopt” er niet in, omdat de betekenis het dichtst bij de vraag ligt. Een chatbot kan dat artikel vervolgens gebruiken om een antwoord te formuleren.

Wat is een embedding precies?

Een embedding is de vertaling van een tekst naar getallen. Een embeddingmodel heeft geleerd van grote hoeveelheden tekst en plaatst elke tekst als een punt in een ruimte met honderden of duizenden dimensies. Je kunt je dat voorstellen als een kaart: teksten over hetzelfde onderwerp liggen dicht bij elkaar, teksten over iets anders liggen verder weg. “Factuur betalen” ligt dicht bij “rekening voldoen”, en ver van “wachtwoord vergeten”. Het mooie is dat dit ook over talen heen kan werken: bij goede meertalige modellen ligt een Nederlandse en Engelse zin met dezelfde betekenis vlak bij elkaar.

Heb je altijd een aparte vectordatabase nodig?

Niet per se. Voor een beperkte hoeveelheid documenten is een uitbreiding op een bestaande database vaak genoeg. Met pgvector kun je vectoren opslaan in PostgreSQL, naast je gewone gegevens. Dat houdt de opzet eenvoudig: één database, één back-up, één plek voor rechten. Een gespecialiseerde vectordatabase wordt interessant bij grote hoeveelheden vectoren, hoge eisen aan zoeksnelheid of geavanceerde filtermogelijkheden. Ook veel AI-diensten en zoekplatforms bieden ingebouwde vectorzoekfuncties, zodat je zelf geen database hoeft te beheren.

Vectordatabase of gewone database?

Relationele database Vectordatabase
Zoekt op Exacte waarden en voorwaarden Betekenis en gelijkenis
Gegevens Tabellen met rijen en kolommen Vectoren met metadata
Voorbeeldvraag Alle orders van klant 123 Documenten die lijken op deze vraag
Sterk in Administratie, transacties, rapportages Semantisch zoeken, aanbevelingen, AI
Voorbeelden PostgreSQL, MySQL, SQL Server Pinecone, Weaviate, Qdrant, Milvus

In veel applicaties werken beide samen. De relationele database bewaart klanten, orders en rechten; de vectordatabase maakt het mogelijk om in documenten en teksten op betekenis te zoeken.

Toepassingen van vectordatabases

  • Chatbots op eigen documenten. Het systeem zoekt de relevante passages en een taalmodel formuleert het antwoord. Dit heet RAG.
  • Semantisch zoeken in een kennisbank, helpdesk of documentarchief.
  • Aanbevelingen, zoals vergelijkbare producten, artikelen of profielen.
  • Duplicaten vinden, bijvoorbeeld dubbele tickets of vergelijkbare klachten.
  • Zoeken op beeld, zoals vergelijkbare foto’s of productafbeeldingen.
  • Classificatie en clustering van grote hoeveelheden tekst.

Wat kost een vectordatabase?

Open source vectordatabases zoals Qdrant, Weaviate, Milvus en Chroma kun je zonder licentiekosten zelf draaien; je betaalt dan voor de server en het beheer. Beheerde diensten rekenen meestal op basis van het aantal opgeslagen vectoren, de opslagruimte en het aantal zoekopdrachten, vaak met een gratis instap voor kleine projecten. Daarnaast betaal je voor het maken van de embeddings, bij een AI-dienst per verwerkt token. Bij een kennisbank van een paar honderd documenten zijn die kosten doorgaans beperkt. Bij miljoenen documenten en veel zoekopdrachten wordt de keuze tussen beheerd en zelf hosten belangrijker.

Bekende vectordatabases

Naam Kenmerk
Pinecone Volledig beheerde clouddienst
Weaviate Open source, ook als beheerde dienst
Qdrant Open source, gericht op snelheid en filtering
Milvus Open source, voor zeer grote hoeveelheden
Chroma Open source, eenvoudig om mee te beginnen
pgvector Uitbreiding op PostgreSQL, zodat je geen aparte database nodig hebt

DataCamp bespreekt onder meer Chroma, Pinecone, Weaviate, Faiss, Qdrant, Milvus en pgvector. Faiss is strikt genomen een bibliotheek voor vectorzoeken en geen volledige database.

Een vectordatabase in een RAG-toepassing

In een chatbot op eigen documenten speelt de vectordatabase een vaste rol:

  1. Voorbereiding. Documenten worden in stukken verdeeld, omgezet in embeddings en opgeslagen in de vectordatabase, met verwijzing naar het brondocument.
  2. Vraag. Een gebruiker stelt een vraag, die ook wordt omgezet in een embedding.
  3. Ophalen. De vectordatabase zoekt de stukken tekst die het meest op de vraag lijken, gefilterd op wat de gebruiker mag zien.
  4. Antwoord. Een taalmodel krijgt de vraag en de gevonden stukken, en formuleert een antwoord op basis daarvan, met een verwijzing naar de bron.
  5. Bijwerken. Wijzigt een document, dan worden de bijbehorende vectoren vervangen.

De kwaliteit van het antwoord hangt sterk af van stap 3. Als de vectordatabase niet de juiste passages vindt, kan ook het beste taalmodel geen goed antwoord geven.

Waar let je op?

  • Kwaliteit van de embeddings. Het embeddingmodel bepaalt hoe goed betekenis wordt herkend, ook in het Nederlands.
  • Opdelen van documenten. Lange documenten worden in stukken verdeeld. Te groot en het resultaat is vaag, te klein en de context gaat verloren.
  • Metadata en rechten. Zorg dat een gebruiker alleen resultaten krijgt uit documenten die hij mag zien.
  • Actualiteit. Bij gewijzigde documenten moeten de vectoren worden bijgewerkt.
  • Kosten en schaal. Beheerde diensten zijn makkelijk, maar de kosten groeien mee met het aantal vectoren en zoekopdrachten.
  • Combinatie met trefwoorden. Soms werkt een combinatie van zoeken op betekenis en op exacte woorden het best, bijvoorbeeld bij productcodes. Dit heet hybride zoeken en wordt door veel vectordatabases ondersteund.
  • Testen met echte vragen. Verzamel een set vragen die gebruikers werkelijk stellen en controleer of de juiste documenten bovenaan komen. Zo zie je of aanpassingen in het opdelen of het embeddingmodel echt helpen.
  • Privacy. Embeddings zijn afgeleid van de originele tekst. Behandel ze met dezelfde zorg als de documenten zelf.

Wat betekent dit voor jouw project?

Bij een AI-toepassing op eigen informatie stel ik eerst de vraag wie welke informatie nodig heeft. Dat bepaalt welke documenten in een vectordatabase komen en wie welke resultaten mag zien. De techniek is daarna vaak de eenvoudigste stap. Voor veel kleinere toepassingen is een uitbreiding op een bestaande database al genoeg.

Wil je dat medewerkers of klanten op betekenis kunnen zoeken in je documenten? Stuur me welke informatie het is en wie ermee werkt. Dan bepalen we samen de logische eerste stap.

Veelgestelde vragen over vectordatabases

Wat is een vectordatabase?

Een vectordatabase slaat gegevens op als vectoren, reeksen getallen die de betekenis van tekst, beeld of geluid weergeven. Daardoor kun je zoeken op betekenis in plaats van op exacte woorden.

Waarvoor gebruik je een vectordatabase?

Een vectordatabase wordt gebruikt voor chatbots op eigen documenten, semantisch zoeken, aanbevelingen, het vinden van duplicaten en zoeken op beeld. Het is een kernonderdeel van RAG.

Wat is een embedding?

Een embedding is een vector, een reeks getallen, die een AI-model berekent om de betekenis van een tekst of afbeelding vast te leggen. Teksten met een vergelijkbare betekenis krijgen embeddings die dicht bij elkaar liggen.

Verwante termen

RAG (Retrieval Augmented Generation) · Chatbot op eigen data · Embeddings · Large Language Model (LLM) · AI-chatbot · Fine-tuning

← Terug naar de kennisbank