Connect with us

AGI

De rol van vector databases in moderne Generative AI-toepassingen

mm
Vector Database embedding space

Voor grote Generative AI-toepassingen is het noodzakelijk om een goed systeem te hebben om grote hoeveelheden data te verwerken. Een van deze belangrijke systemen is de vector database. Wat deze database uniek maakt, is de mogelijkheid om verschillende soorten data, zoals tekst, geluid, afbeeldingen en video’s, te verwerken in de vorm van nummers/vectoren.

Wat zijn Vector Databases?

Een vector database is een gespecialiseerd opslagsysteem dat is ontworpen om high-dimensional vectoren efficiënt te verwerken. Deze vectoren, die kunnen worden beschouwd als punten in een multi-dimensionale ruimte, vertegenwoordigen vaak embeddings of gecomprimeerde representaties van meer complexe data, zoals afbeeldingen, tekst of geluid.
Vector databases maken het mogelijk om snel overeenkomstige zoekopdrachten uit te voeren onder deze vectoren, waardoor het mogelijk is om snel de meest vergelijkbare items uit een grote dataset op te halen.

Traditionele Databases vs. Vector Databases

Vector Databases:

  • Verwerking van High-Dimensional Data: Vector databases zijn ontworpen om data in high-dimensional ruimtes te beheren en op te slaan. Dit is bijzonder nuttig voor toepassingen zoals machine learning, waarbij datapunten (zoals afbeeldingen of tekst) kunnen worden weergegeven als vectoren in multi-dimensionale ruimtes.
  • Geoptimaliseerd voor Overeenkomstige Zoekopdrachten: Een van de opvallende functies van vector databases is hun vermogen om overeenkomstige zoekopdrachten uit te voeren. In plaats van data op te vragen op basis van exacte overeenkomsten, maken deze databases het mogelijk om data op te halen die “vergelijkbaar” is met een gegeven zoekopdracht, waardoor ze onmisbaar zijn voor taken zoals afbeelding- of tekstopname.
  • Schaalbaar voor Grote Datasets: Naarmate AI- en machine learning-toepassingen blijven groeien, groeit ook de hoeveelheid data die ze verwerken. Vector databases zijn ontworpen om te schalen, waardoor ze grote hoeveelheden data kunnen verwerken zonder in te boeten aan prestaties.

Traditionele Databases:

  • Opslag van Gestructureerde Data: Traditionele databases, zoals relationele databases, zijn ontworpen om gestructureerde data op te slaan. Dit betekent dat data wordt georganiseerd in vooraf gedefinieerde tabellen, rijen en kolommen, waardoor en -consistentie worden gewaarborgd.
  • Geoptimaliseerd voor CRUD-bewerkingen: Traditionele databases zijn voornamelijk geoptimaliseerd voor CRUD-bewerkingen. Dit betekent dat ze zijn ontworpen omënt te creëren, lezen, bijwerken en verwijderen, waardoor ze geschikt zijn voor een breed scala aan toepassingen, van webdiensten tot bedrijfssoftware.
  • Vaste Schema: Een van de kenmerkende eigenschappen van veel traditionele databases is hun vaste schema. Zodra de databasestructuur is gedefinieerd, kan het maken van wijzigingen complex en tijdrovend zijn. Deze rigiditeit waarborgt, maar kan minder flexibel zijn dan de schema-loze of dynamische schema-aard van sommige moderne databases.

Traditionele databases hebben vaak moeite met de complexiteit van embeddings, een uitdaging die gemakkelijk wordt aangepakt door vector databases.

Vector Representaties

Centraal in de werking van vector databases staat het fundamentele concept van het weergeven van diverse vormen van data met behulp van numerieke vectoren. Laten we een afbeelding als voorbeeld nemen. Wanneer u een afbeelding van een kat ziet, kan deze voor een machine worden omgezet in een unieke 512-dimensionale vector, zoals:

[0.23, 0.54, 0.32, …, 0.12, 0.45, 0.90]

Met vector databases kunnen Generative AI-toepassingen meer dingen doen. Ze kunnen informatie vinden op basis van betekenis en dingen onthouden voor een lange tijd. Interessant is dat deze methode niet beperkt is tot afbeeldingen alleen. Tekstuele data vol met contextuele en semantische betekenissen kan ook in vectorvorm worden omgezet.

Generative AI en de Behoefte aan Vector Databases

Generative AI houdt vaak embeddings in. Neem bijvoorbeeld word embeddings in natuurlijke taalverwerking (NLP). Woorden of zinnen worden omgezet in vectoren die semantische betekenis vastleggen. Wanneer menselijke tekst wordt gegenereerd, moeten modellen snel overeenkomstige embeddings vergelijken en ophalen, waardoor wordt gegarandeerd dat de gegenereerde tekst contextuele betekenissen behoudt.

Evenzo spelen embeddings in afbeelding- of geluidsgeneratie een cruciale rol bij het coderen van patronen en kenmerken. Voor een optimale werking van deze modellen is een database nodig die onmiddellijke ophaling van vergelijkbare vectoren mogelijk maakt, waardoor vector databases een essentieel onderdeel vormen van de puzzel van generatieve AI.

Het creëren van embeddings voor natuurlijke taal omvat meestal het gebruik van vooraf getrainde modellen zoals:

  • GPT-3 en GPT-4: OpenAI’s GPT-3 (Generative Pre-trained Transformer 3) is een monumentaal model in de NLP-gemeenschap met 175 miljard parameters. Na dit model is GPT-4, met een nog groter aantal parameters, het bereiken van de grenzen in het genereren van hoge kwaliteit embeddings. Deze modellen zijn getraind op diverse datasets, waardoor ze in staat zijn om embeddings te creëren die een breed scala aan linguïstische nuances vastleggen.
  • BERT en zijn varianten: BERT (Bidirectional Encoder Representations from Transformers) van Google is een ander belangrijk model dat verschillende updates en iteraties heeft gezien, zoals RoBERTa en DistillBERT. BERT’s bidirectionele training, die tekst in beide richtingen leest, is bijzonder geschikt voor het begrijpen van de context rondom een woord.
  • ELECTRA: Een recent model dat efficiënt is en presteert op het niveau van veel grotere modellen zoals GPT-3 en BERT, terwijl het minder rekenkracht nodig heeft. ELECTRA onderscheidt zich door het onderscheiden tussen echte en valse data tijdens de voorafgaande training, waardoor het genereren van meer verfijnde embeddings mogelijk wordt.

Het begrijpen van het bovenstaande proces:

Initieel wordt een embedding-model gebruikt om de gewenste inhoud om te zetten in vector-embeddings. Zodra deze zijn gegenereerd, worden deze opgeslagen in een vector database. Voor gemakkelijke traceerbaarheid en relevantie behouden deze opgeslagen embeddings een link of verwijzing naar de oorspronkelijke inhoud waaruit ze zijn afgeleid.

Later, wanneer een gebruiker of systeem een vraag stelt aan de toepassing, springt hetzelfde embedding-model in actie. Het zet deze vraag om in overeenkomstige embeddings. Deze nieuw gevormde embeddings zoeken vervolgens de vector database, op zoek naar vergelijkbare vectorrepresentaties. De embeddings die zijn geïdentificeerd als overeenkomsten hebben een directe associatie met hun oorspronkelijke inhoud, waardoor de vraag van de gebruiker wordt beantwoord met relevante en accurate resultaten.

Groeiende Financiering voor Nieuwkomers in Vector Databases

Met de groeiende populariteit van AI steken veel bedrijven meer geld in vector databases om hun algoritmes te verbeteren en te versnellen. Dit is te zien aan de recente investeringen in vector database-startups zoals Pinecone, Chroma DB en Weviate.

Grote samenwerkingen zoals Microsoft hebben ook hun eigen tools. Bijvoorbeeld, Azure Cognitive Search laat bedrijven toe om AI-hulpmiddelen te creëren met behulp van vector databases.

Oracle heeft onlangs nieuwe functies aangekondigd voor zijn Database 23c, met de introductie van een geïntegreerde vector database. Genoemd “AI Vector Search”, zal het een nieuwe gegevenstype, indexes en zoekgereedschap hebben om data op te slaan en te doorzoeken, zoals documenten en afbeeldingen, met behulp van vectoren. Het ondersteunt Retrieval Augmented Generation (RAG), die grote taalmodellen combineert met bedrijfsdata voor betere antwoorden op taalvragen zonder privé-data te delen.

Primaire Overwegingen van Vector Databases

Afstandsmaten

De effectiviteit van een overeenkomstige zoekopdracht hangt af van de gekozen afstandsmaat. Veel voorkomende maten zijn Euclidische afstand en cosinusgelijkheid, die elk zijn aangepast aan verschillende soorten vectorverdelingen.

Indexeren

Gezien de hoge dimensionaliteit van vectoren, werken traditionele indexeermethoden niet. Vector databases gebruiken technieken zoals Hierarchische Navigable Small World (HNSW) -grafieken of Annoy-bomen, waardoor efficiënte partitie van de vectorruimte en snelle dichtstbijzijnde buurzoekopdrachten mogelijk worden.

Annoy tree

Annoy tree (Source)

Annoy is een methode die gebruik maakt van binaire zoekbomen. Het splitst onze gegevensruimte meerdere keren en kijkt alleen naar een deel ervan om dichtbijgelegen buren te vinden.

Hierarchische Navigable Small World (HNSW) -grafieken

Hierarchische Navigable Small World (HNSW) -grafieken (Source)

HNSW-grafieken daarentegen zijn als netwerken. Ze verbinden datapunten op een speciale manier om zoeken te versnellen. Deze grafieken helpen bij het snel vinden van dichtbijgelegen punten in de data.

Schaalbaarheid

Naarmate datasets groeien, groeit ook de uitdaging om snelle ophaal­tijden te behouden. Gedistribueerde systemen, GPU-versnelling en geoptimaliseerd geheugenbeheer zijn enkele manieren waarop vector databases schaalbaarheid aanpakken.

Rol van Vector Databases: Implicaties en Kansen

1. Trainingsdata voor Baanbrekende Generative AI-modellen: Generative AI-modellen, zoals DALL-E en GPT-3, worden getraind met behulp van grote hoeveelheden data. Deze data bestaat vaak uit vectoren die zijn geëxtraheerd uit een breed scala aan bronnen, waaronder afbeeldingen, tekst, code en andere domeinen. Vector databases beheren en analyseren deze datasets zorgvuldig, waardoor AI-modellen de kennis van de wereld kunnen assimileren en analyseren door patronen en relaties binnen deze vectoren te identificeren.

2. Het Verder Ontwikkelen van Few-Shot Learning: Few-shot learning is een AI-trainings­techniek waarbij modellen worden getraind met beperkte data. Vector databases versterken deze aanpak door een robuust vectorindex te behouden. Wanneer een model wordt blootgesteld aan slechts een handvol vectoren – zeg, een paar afbeeldingen van vogels – kan het snel extrapoleren naar het bredere concept van vogels door overeenkomsten en relaties tussen deze vectoren te herkennen.

3. Verbetering van Aanbevelingssystemen: Aanbevelingssystemen gebruiken vector databases om inhoud voor te stellen die nauw aansluit bij de voorkeuren van een gebruiker. Door de gedragingen, profielen en zoekopdrachten van een gebruiker te analyseren, worden vectoren geëxtraheerd die de interesses van de gebruiker weergeven. Het systeem scant vervolgens de vector database om inhoud te vinden die overeenkomt met deze interesses, waardoor nauwkeurige aanbevelingen worden gegarandeerd.

4. Semantische Informatie-opname: Traditionele zoekmethoden vertrouwen op exacte trefwoordenovereenkomsten. Vector databases maken het echter mogelijk voor systemen om inhoud op te halen op basis van semantische overeenkomst. Dit betekent dat zoekopdrachten intuïtiever worden, waarbij de focus ligt op de onderliggende betekenis van de zoekopdracht in plaats van alleen maar woorden te matchen. Wanneer gebruikers bijvoorbeeld een zoekopdracht invoeren, wordt de overeenkomstige vector vergeleken met vectoren in de database om inhoud te vinden die overeenkomt met de bedoeling van de zoekopdracht, niet alleen met de formulering.

5. Multimodale Zoekopdracht: Multimodale zoekopdracht is een opkomende techniek die data van meerdere bronnen combineert, zoals tekst, afbeeldingen, audio en video. Vector databases vormen de ruggengraat van deze aanpak door de gezamenlijke analyse van vectoren uit diverse modaliteiten mogelijk te maken. Dit resulteert in een holistische zoekervaring, waarbij gebruikers informatie kunnen ophalen uit een breed scala aan bronnen op basis van een enkele zoekopdracht, wat leidt tot rijkere inzichten en meer complete resultaten.

Conclusie

De AI-wereld verandert snel. Het raakt veel industrieën, brengt goede dingen en nieuwe problemen met zich mee. De snelle vooruitgang in Generative AI benadrukt de vitale rol van vector databases bij het beheren en analyseren van multi-dimensionale data.

Deze gespecialiseerde opslagsystemen, die zijn ontworpen om high-dimensionale vectoren van verschillende dataformaten, zoals afbeeldingen, tekst of geluid, te verwerken, staan als de spil in de effectieve werking van moderne AI-toepassingen, met name in het domein van overeenkomstige zoekopdrachten.

Hun toenemende belang wordt verder onderstreept door de investeringen die in de sector worden gestoken, met startups zoals Pinecone en reuzen zoals Microsoft die actief bijdragen aan de vooruitgang.

Ik heb de afgelopen vijf jaar mezelf ondergedompeld in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 uiteenlopende software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.