Geschatte leestijd: 9 minuti
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.
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 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.
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:
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.
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.
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?
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.
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.
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
Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...
Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…
Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...
Voorspellend onderhoud zorgt voor een revolutie in de olie- en gassector, met een innovatieve en proactieve benadering van fabrieksbeheer.…