Artikelen

Wat zijn vectordatabases, hoe ze werken en potentiële markt

Een vectordatabase is een type database waarin gegevens worden opgeslagen als hoogdimensionale vectoren, dit zijn wiskundige representaties van kenmerken of attributen. 

Deze vectoren worden meestal gegenereerd door een soort inbeddingsfunctie toe te passen op onbewerkte gegevens, zoals tekst, afbeeldingen, audio, video en andere.

Vectordatabases kunnen dat zijn definite als een hulpmiddel dat vector-insluitingen indexeert en opslaat voor snel ophalen en zoeken naar overeenkomsten, met functies zoals filtering van metagegevens en horizontaal schalen.

Geschatte leestijd: 9 minuti

Groeiende interesse van investeerders

In de afgelopen weken is de interesse van investeerders in vectordatabases toegenomen. Sinds begin 2023 merken we dat:

Laten we in meer detail bekijken wat vectordatabases zijn.

Vectoren als gegevensrepresentatie

Vectordatabases zijn sterk afhankelijk van vectorinbedding, een type gegevensrepresentatie die de semantische informatie bevat die cruciaal is voor AI om begrip te krijgen en langetermijngeheugen te behouden om uit te putten bij het uitvoeren van complexe activiteiten. 

Vector-insluitingen

Vector-insluitingen zijn als een kaart, maar in plaats van ons te laten zien waar de dingen in de wereld zijn, laten ze ons zien waar de dingen zijn in iets genaamd Vector ruimte. Vectorruimte is een soort grote speeltuin waar alles zijn plek heeft om te spelen. Stel je voor dat je een groep dieren hebt: een kat, een hond, een vogel en een vis. We kunnen voor elke afbeelding een vectorinsluiting maken door deze een speciale positie op de speelplaats te geven. De kat kan in de ene hoek zitten, de hond aan de andere kant. De vogel zou in de lucht kunnen zijn en de vis zou in de vijver kunnen zijn. Deze plek is een multidimensionale ruimte. Elke dimensie komt overeen met verschillende aspecten ervan, vissen hebben bijvoorbeeld vinnen, vogels hebben vleugels, katten en honden hebben poten. Een ander aspect ervan kan zijn dat vissen tot het water behoren, vogels voornamelijk tot de lucht en katten en honden tot de grond. Zodra we deze vectoren hebben, kunnen we wiskundige technieken gebruiken om ze te groeperen op basis van hun gelijkenis. Op basis van de informatie die we hebben,

Vectorinbeddingen zijn dus als een kaart die ons helpt overeenkomsten te vinden tussen dingen in de vectorruimte. Net zoals een kaart ons helpt bij het navigeren door de wereld, helpen vector-insluitingen bij het navigeren door de vector-speeltuin.

Het belangrijkste idee is dat instortvoorzieningen die semantisch vergelijkbaar met elkaar zijn, een kleinere onderlinge afstand hebben. Om erachter te komen hoe vergelijkbaar ze zijn, kunnen we vectorafstandsfuncties gebruiken, zoals Euclidische afstand, cosinusafstand, enz.

Vectordatabases versus vectorbibliotheken

De vectorbibliotheken sla inbeddingen van vectoren op in indexen in het geheugen om zoekopdrachten naar overeenkomsten uit te voeren. Vectorbibliotheken hebben de volgende kenmerken/beperkingen:

  1. Bewaar alleen vectoren : Vectorbibliotheken slaan alleen inbeddingen van vectoren op en niet de bijbehorende objecten waaruit ze zijn gegenereerd. Dit betekent dat wanneer we vragen, een vectorbibliotheek zal antwoorden met de relevante vectoren en object-ID's. Dit is beperkend omdat de feitelijke informatie in het object wordt opgeslagen en niet in de id. Om dit probleem op te lossen, moeten we de objecten in secundaire opslag opslaan. We kunnen dan de ID's gebruiken die door de query worden geretourneerd en deze matchen met objecten om de resultaten te begrijpen.
  2. Indexgegevens zijn onveranderlijk : Indexen geproduceerd door vectorbibliotheken zijn onveranderlijk. Dit betekent dat zodra we onze gegevens hebben geïmporteerd en de index hebben opgebouwd, we geen wijzigingen meer kunnen aanbrengen (geen nieuwe toevoegingen, verwijderingen of wijzigingen). Om wijzigingen in onze index aan te brengen, moeten we deze helemaal opnieuw opbouwen
  3. Query terwijl importeren wordt beperkt : De meeste vectorbibliotheken kunnen niet worden opgevraagd tijdens het importeren van gegevens. We moeten eerst al onze gegevensobjecten importeren. De index wordt dus gemaakt nadat de objecten zijn geïmporteerd. Dit kan een probleem zijn voor toepassingen waarvoor miljoenen of zelfs miljarden objecten moeten worden geïmporteerd.

Er zijn veel vectorzoekbibliotheken beschikbaar: FAISS van Facebook, Annoy door Spotify en ScanNN door Google. FAISS gebruikt de clustermethode, Annoy gebruikt bomen en ScanNN gebruikt vectorcompressie. Voor elk is er een prestatieafweging, die we kunnen kiezen op basis van onze toepassings- en prestatiestatistieken.

CRUD

Het belangrijkste kenmerk dat vectordatabases onderscheidt van vectorbibliotheken, is de mogelijkheid om gegevens te archiveren, bij te werken en te verwijderen. Vectordatabases hebben CRUD-ondersteuning compleet (aanmaken, lezen, bijwerken en verwijderen) dat de beperkingen van een vectorbibliotheek oplost.

  1. Archiveer vectoren en objecten : Databases kunnen zowel gegevensobjecten als vectoren opslaan. Omdat beide worden opgeslagen, kunnen we vectorzoeken combineren met gestructureerde filters. Met filters kunnen we ervoor zorgen dat de dichtstbijzijnde buren overeenkomen met het metadatafilter.
  2. Veranderlijkheid : zoals vectordatabases volledig ondersteunen grof, we kunnen eenvoudig vermeldingen in onze index toevoegen, verwijderen of bijwerken nadat deze is gemaakt. Dit is vooral handig bij het werken met voortdurend veranderende gegevens.
  3. Realtime zoeken : In tegenstelling tot vectorbibliotheken, stellen databases ons in staat om onze gegevens op te vragen en te wijzigen tijdens het importproces. Terwijl we miljoenen objecten laden, blijven de geïmporteerde gegevens volledig toegankelijk en operationeel, zodat u niet hoeft te wachten tot de import is voltooid om te beginnen met werken aan wat er al is.

Kortom, een vectordatabase biedt een superieure oplossing voor het omgaan met vectorinstortvoorzieningen door de beperkingen van op zichzelf staande vectorindices aan te pakken, zoals besproken in de voorgaande punten.

Maar wat maakt vectordatabases superieur aan traditionele databases?

Vectordatabases versus traditionele databases

Traditionele databases zijn ontworpen om gestructureerde gegevens op te slaan en op te halen met behulp van relationele modellen, wat betekent dat ze zijn geoptimaliseerd voor zoekopdrachten op basis van kolommen en rijen met gegevens. Hoewel het mogelijk is om vectorinbeddingen op te slaan in traditionele databases, zijn deze databases niet geoptimaliseerd voor vectorbewerkingen en kunnen ze geen zoekopdrachten naar overeenkomsten of andere complexe bewerkingen op grote datasets efficiënt uitvoeren.

Dit komt omdat traditionele databases indexeringstechnieken gebruiken op basis van eenvoudige gegevenstypen, zoals strings of getallen. Deze indexeringstechnieken zijn niet geschikt voor vectorgegevens, die een hoge dimensionaliteit hebben en gespecialiseerde indexeringstechnieken vereisen, zoals omgekeerde indexen of ruimtelijke bomen.

Bovendien zijn traditionele databases niet ontworpen om de grote hoeveelheden ongestructureerde of semi-gestructureerde gegevens te verwerken die vaak worden geassocieerd met vectorinsluitingen. Een beeld- of audiobestand kan bijvoorbeeld miljoenen datapunten bevatten, die traditionele databases niet efficiënt kunnen verwerken.

Vectordatabases daarentegen zijn specifiek ontworpen om vectorgegevens op te slaan en op te halen en zijn geoptimaliseerd voor het zoeken naar overeenkomsten en andere complexe bewerkingen op grote datasets. Ze gebruiken gespecialiseerde indexeringstechnieken en algoritmen die zijn ontworpen om met hoogdimensionale gegevens te werken, waardoor ze veel efficiënter zijn dan traditionele databases voor het opslaan en ophalen van vectorinsluitingen.

Nu je zoveel hebt gelezen over vectordatabases, vraag je je misschien af: hoe werken ze? Laten we kijken.

Hoe werkt een vectordatabase?

We weten allemaal hoe relationele databases werken: ze slaan strings, getallen en andere soorten scalaire gegevens op in rijen en kolommen. Aan de andere kant werkt een vectordatabase op vectoren, dus de manier waarop deze wordt geoptimaliseerd en bevraagd, is heel anders.

In traditionele databases zoeken we meestal naar rijen in de database waar de waarde meestal exact overeenkomt met onze zoekopdracht. In vectordatabases passen we een gelijkenisstatistiek toe om een ​​vector te vinden die het meest lijkt op onze zoekopdracht.

Een vectordatabase gebruikt een combinatie van verschillende algoritmen die allemaal deelnemen aan het zoeken naar de dichtstbijzijnde buur (ANN). Deze algoritmen optimaliseren het zoeken door hashing, kwantisatie of op grafieken gebaseerd zoeken.

Deze algoritmen worden samengevoegd tot een pijplijn die zorgt voor snel en nauwkeurig ophalen van de buren van een opgevraagde vector. Aangezien de vectordatabase geschatte resultaten oplevert, zijn de belangrijkste afwegingen die we overwegen die tussen nauwkeurigheid en snelheid. Hoe preciezer het resultaat, hoe langzamer de query zal zijn. Een goed systeem kan echter supersnel zoeken met bijna perfecte nauwkeurigheid.

  • Indexeren : De vectordatabase indexeert vectoren met behulp van een algoritme zoals PQ, LSH of HNSW. Deze stap koppelt de vectoren aan een gegevensstructuur waardoor sneller kan worden gezocht.
  • Vraag : vectordatabase vergelijkt de geïndexeerde queryvector met geïndexeerde vectoren in de dataset om de naaste buren te vinden (door een gelijkenismetriek toe te passen die door die index wordt gebruikt)
  • Nabewerking : In sommige gevallen haalt de vectordatabase de laatste naaste buren uit de dataset en verwerkt deze na om de uiteindelijke resultaten te retourneren. Deze stap kan het opnieuw classificeren van de naaste buren omvatten met behulp van een andere overeenkomstmaatstaf.

voordelen

Vectordatabases zijn een krachtig hulpmiddel voor het zoeken naar overeenkomsten en andere complexe bewerkingen op grote datasets, die niet effectief kunnen worden uitgevoerd met traditionele databases. Om een ​​functionele vectordatabase op te bouwen, zijn insluitingen essentieel, omdat ze de semantische betekenis van de gegevens vastleggen en nauwkeurig zoeken naar overeenkomsten mogelijk maken. In tegenstelling tot vectorbibliotheken zijn vectordatabases ontworpen om te passen in onze use case, waardoor ze ideaal zijn voor toepassingen waarbij prestaties en schaalbaarheid van cruciaal belang zijn. Met de opkomst van machine learning en kunstmatige intelligentie worden vectordatabases steeds belangrijker voor een breed scala aan toepassingen, waaronder aanbevelingssystemen, zoeken naar afbeeldingen, semantische gelijkenis en de lijst gaat maar door. Naarmate het veld blijft evolueren, kunnen we in de toekomst nog meer innovatieve toepassingen van vectordatabases verwachten.

Ercole Palmeri

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Recente artikelen

Uitgevers en OpenAI ondertekenen overeenkomsten om de informatiestroom die door kunstmatige intelligentie wordt verwerkt, te reguleren

Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...

April 30 2024

Online betalingen: hier is hoe streamingdiensten u voor altijd laten betalen

Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…

April 29 2024

Veeam biedt de meest uitgebreide ondersteuning voor ransomware, van bescherming tot respons en herstel

Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...

April 23 2024

Groene en digitale revolutie: hoe voorspellend onderhoud de olie- en gasindustrie transformeert

Voorspellend onderhoud zorgt voor een revolutie in de olie- en gassector, met een innovatieve en proactieve benadering van fabrieksbeheer.…

April 22 2024