Delen via


Opensource vectordatabases

VAN TOEPASSING OP: MongoDB vCore

Wanneer ontwikkelaars vectordatabases selecteren, bieden de opensource-opties tal van voordelen. 'Open source' betekent dat de broncode van de software vrij beschikbaar is, zodat gebruikers de database kunnen aanpassen aan hun specifieke behoeften. Deze flexibiliteit is nuttig voor organisaties die onderhevig zijn aan unieke wettelijke vereisten voor gegevens, zoals bedrijven in de financiële dienstverlening.

Een ander voordeel van opensource vectordatabases is de sterke community-ondersteuning die ze genieten. Actieve gebruikerscommunities dragen vaak bij aan de ontwikkeling van deze databases, bieden ondersteuning en delen best practices, om innovatie te bevorderen.

Sommige personen kiezen voor opensource vectordatabases omdat ze 'gratis' zijn, wat betekent dat er geen kosten zijn om de software te verkrijgen of te gebruiken. Een alternatief is het gebruik van de gratis lagen die worden aangeboden door beheerde vectordatabaseservices. Deze beheerde services bieden niet alleen kostenvrije toegang tot een bepaalde gebruikslimiet, maar vereenvoudigen ook de operationele belasting door onderhoud, updates en schaalbaarheid te verwerken. Daarom kunnen gebruikers met behulp van de gratis laag van beheerde vectordatabaseservices kostenbesparingen behalen en tegelijkertijd de beheeroverhead verminderen. Met deze aanpak kunnen gebruikers zich meer richten op hun kernactiviteiten in plaats van op databasebeheer.

Werkingsmechanisme van vectordatabases

Vectordatabases zijn ontworpen om vector-insluitingen op te slaan en te beheren. Dit zijn wiskundige weergaven van gegevens in een hoogdimensionale ruimte. In deze ruimte komt elke dimensie overeen met een functie van de gegevens en kunnen tienduizenden dimensies worden gebruikt om geavanceerde gegevens weer te geven. De positie van een vector in deze ruimte vertegenwoordigt de kenmerken. Woorden, woordgroepen of volledige documenten en afbeeldingen, audio en andere typen gegevens kunnen allemaal worden gevectoriseerd. Deze vector insluitingen worden gebruikt in overeenkomsten zoeken, multimodale zoekopdrachten, aanbevelingen engines, grote talenmodellen (LLM's), enzovoort.

De architectuur van deze databases bevat doorgaans een opslagengine en een indexeringsmechanisme. De opslagengine optimaliseert de opslag van vectorgegevens voor efficiënt ophalen en bewerken, terwijl het indexeringsmechanisme de gegevens organiseert voor snelle zoek- en ophaalbewerkingen.

In een vectordatabase worden insluitingen geïndexeerd en opgevraagd via vectorzoekalgoritmen op basis van hun vectorafstand of overeenkomsten. Een robuust mechanisme is nodig om de meest relevante gegevens te identificeren. Sommige bekende vectorzoekalgoritmen zijn hiërarchische navigable Small World (HNSW), omgekeerd bestand (IVF), enzovoort.

Vectordatabases worden gebruikt in talloze domeinen en situaties in analytische en generatieve AI, waaronder verwerking van natuurlijke taal, video- en afbeeldingsherkenning, aanbevelingssysteem, zoeken, enzovoort. U kunt bijvoorbeeld een vectordatabase gebruiken om het volgende te doen:

  • Vergelijkbare afbeeldingen, documenten en nummers identificeren op basis van hun inhoud, thema's, sentimenten en stijlen
  • Vergelijkbare producten identificeren op basis van hun kenmerken, functies en gebruikersgroepen
  • Inhoud, producten of services aanbevelen op basis van de voorkeuren van personen
  • Inhoud, producten of services aanbevelen op basis van overeenkomsten van gebruikersgroepen
  • De best passende mogelijke opties van een grote groep keuzes identificeren om te voldoen aan complexe vereisten
  • Gegevensafwijkingen of frauduleuze activiteiten identificeren die niet hetzelfde zijn als overwegende of normale patronen
  • Permanent geheugen implementeren voor AI-agents
  • Rag (retrieval-augmented generation) inschakelen

Geïntegreerde vectordatabase versus pure vectordatabase

Er zijn twee veelvoorkomende typen vectordatabase-implementaties: pure vectordatabase en geïntegreerde vectordatabase in een NoSQL- of relationele database.

Een pure vectordatabase is ontworpen om vector-insluitingen efficiënt op te slaan en te beheren, samen met een kleine hoeveelheid metagegevens; deze staat los van de gegevensbron waaruit de insluitingen worden afgeleid.

Een vectordatabase die is geïntegreerd in een zeer krachtige NoSQL- of relationele database biedt extra mogelijkheden. De geïntegreerde vectordatabase in een NoSQL- of relationele database kan insluitingen opslaan, indexeren en query's uitvoeren naast de bijbehorende oorspronkelijke gegevens. Deze aanpak elimineert de extra kosten voor het repliceren van gegevens in een afzonderlijke pure vectordatabase. Bovendien kunt u de vector-insluitingen en oorspronkelijke gegevens beter bij elkaar houden en multimodale gegevensbewerkingen mogelijk maken en betere gegevensconsistentie, schaal en prestaties mogelijk maken.

De beste opensource vectordatabase selecteren

Als u de beste opensource vectordatabase kiest, moet u rekening houden met verschillende factoren. Prestaties en schaalbaarheid van de database zijn van cruciaal belang, omdat deze van invloed zijn op de vraag of de database uw specifieke workloadvereisten kan afhandelen. Databases met efficiënte indexerings- en querymogelijkheden bieden meestal optimale prestaties. Een andere factor is de ondersteuning en documentatie van de community die beschikbaar is voor de database. Een robuuste community en voldoende documentatie kunnen waardevolle hulp bieden. Hier volgen enkele populaire opensource vectordatabases:

  • Chroma
  • Milvus
  • Qdrant
  • Weaviaat

De populairste optie is echter niet de beste optie voor u. Daarom moet u verschillende opties vergelijken op basis van functies, ondersteunde gegevenstypen, compatibiliteit met bestaande hulpprogramma's en frameworks die u gebruikt. Houd ook rekening met de uitdagingen van opensource vectordatabases (hieronder).

Uitdagingen van opensource vectordatabases

De meeste opensource vectordatabases, waaronder de hierboven genoemde databases, zijn pure vectordatabases. Met andere woorden, ze zijn ontworpen voor het opslaan en beheren van vector insluitingen, samen met een kleine hoeveelheid metagegevens. Omdat ze onafhankelijk zijn van de gegevensbron waaruit de insluitingen worden afgeleid, moeten uw gegevens worden verzonden tussen serviceintegraties, waardoor extra kosten, complexiteit en knelpunten voor uw productieworkloads worden toegevoegd.

Ze vormen ook de uitdagingen die typisch zijn voor opensource-databases:

  • Installatie: Gebruikers hebben uitgebreide kennis nodig om complexe implementaties te installeren, te configureren en te gebruiken. Voor het optimaliseren van resources en configuratie tijdens het omhoog schalen zijn bewaking en aanpassingen vereist.
  • Onderhoud: Gebruikers moeten hun eigen updates, patches en onderhoud beheren. Ml-expertise zou dus niet volstaan; gebruikers moeten ook uitgebreide ervaring hebben met databasebeheer.
  • Ondersteuning: Officiële ondersteuning kan worden beperkt in vergelijking met beheerde services, afhankelijk van hulp van de community.

Daarom worden, terwijl in eerste instantie gratis opensource vectordatabases aanzienlijke kosten in rekening worden gebracht bij het omhoog schalen. Het uitbreiden van activiteiten vereist meer hardware, ervaren IT-medewerkers en geavanceerd infrastructuurbeheer, wat leidt tot hogere uitgaven in hardware, personeel en operationele kosten. Het schalen van opensource vectordatabases kan financieel veeleisend zijn, ondanks het gebrek aan licentiekosten.

De uitdagingen van opensource-vectordatabases aanpakken

Een volledig beheerde vectordatabase die is geïntegreerd in een zeer krachtige NoSQL- of relationele database voorkomt de extra kosten en complexiteit van opensource vectordatabases. Een dergelijke database slaat, indexen en query's insluiten naast de bijbehorende oorspronkelijke gegevens op. Deze aanpak elimineert de extra kosten voor het repliceren van gegevens in een afzonderlijke pure vectordatabase. Bovendien kunt u de vector-insluitingen en oorspronkelijke gegevens beter bij elkaar houden en multimodale gegevensbewerkingen mogelijk maken en betere gegevensconsistentie, schaal en prestaties mogelijk maken. Ondertussen helpt de volledig beheerde service ontwikkelaars het probleem te voorkomen van het instellen, onderhouden en vertrouwen op hulp van de community voor een opensource-vectordatabase. Bovendien bieden sommige beheerde vectordatabaseservices een levenslange gratis laag.

Een voorbeeld hiervan is de Integrated Vector Database in Azure Cosmos DB voor MongoDB. Hiermee kunnen ontwikkelaars profiteren van hetzelfde financiële voordeel dat is gekoppeld aan opensource vectordatabases, terwijl de serviceprovider onderhoud, updates en schaalbaarheid afhandelt. Wanneer het tijd is om bewerkingen op te schalen, is upgraden snel en eenvoudig, terwijl u een lage totale eigendomskosten (TCO) houdt. Deze service kan ook worden gebruikt om MongoDB-toepassingen die al in productie zijn, gemakkelijk te schalen.

Volgende stappen