AGI en toekomstige AI
De rol van vector databases in moderne Generative AI-toepassingen
Voor grote Generative AI-toepassingen is een goed systeem nodig 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, in een numerieke vectorvorm te verwerken.
Wat zijn vector databases?
Een vector database is een gespecialiseerd opslagsysteem dat is ontworpen om high-dimensional vectors efficiënt te verwerken. Deze vectors, die kunnen worden gezien 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 vectors, waardoor het mogelijk is om snel de meest overeenkomstige items uit een grote dataset op te halen.
Traditionele databases vs. vector databases
Vector databases:
- Verwerking van high-dimensionale data: Vector databases zijn ontworpen om data in high-dimensionale ruimtes te verwerken en op te slaan. Dit is vooral handig voor toepassingen zoals machine learning, waarbij datapunten (zoals afbeeldingen of tekst) kunnen worden weergegeven als vectors in multi-dimensionale ruimtes.
- Optimalisatie voor overeenkomstige zoekopdrachten: Een van de opvallende functies van vector databases is de mogelijkheid 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 “overeenkomt” met een gegeven zoekopdracht, waardoor ze onmisbaar zijn voor taken zoals afbeelding- of tekstherkenning.
- Schaalbaarheid voor grote datasets: Naarmate AI- en machine learning-toepassingen blijven groeien, neemt ook de hoeveelheid data die ze verwerken toe. Vector databases zijn ontworpen om te schalen, waardoor ze grote hoeveelheden data kunnen verwerken zonder de prestaties te compromitteren.
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 data-integriteit en -consistentie worden gewaarborgd.
- Optimalisatie voor CRUD-operaties: Traditionele databases zijn voornamelijk geoptimaliseerd voor CRUD-operaties. Dit betekent dat ze zijn ontworpen om data-efficiënt te creëren, lezen, updaten 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 moeilijk en tijdrovend zijn om wijzigingen aan te brengen. Deze rigiditeit waarborgt data-consistentie, 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.
Vectorrepresentaties
Centraal in de werking van vector databases staat het fundamentele concept van het weergeven van verschillende soorten data met behulp van numerieke vectors. Laten we een afbeelding als voorbeeld nemen. Wanneer u een afbeelding van een kat ziet, kan deze voor een machine worden getransformeerd 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 met contextuele en semantische betekenissen kan ook worden omgezet in vectorvorm.
Generatieve AI en de noodzaak van vector databases
Generatieve AI houdt vaak embeddings in. Neem bijvoorbeeld word embeddings in natuurlijke taalverwerking (NLP). Woorden of zinnen worden getransformeerd in vectors die semantische betekenis vastleggen. Wanneer generatieve tekst wordt gegenereerd, moeten modellen snel vergelijken en relevante embeddings ophalen, waardoor de gegenereerde tekst contextuele betekenissen behoudt.
Evenzo spelen embeddings in beeld- of geluidsgeneratie een cruciale rol bij het coderen van patronen en kenmerken. Voor deze modellen om optimaal te functioneren, hebben ze een database nodig die instantane overeenkomstige vectoropslag mogelijk maakt, waardoor vector databases een essentieel onderdeel vormen van de generatieve AI-puzzel.
Het creëren van embeddings voor natuurlijke taal vereist 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, GPT-4, met een nog groter aantal parameters, blijft de grenzen verleggen bij het genereren van hoge kwaliteit embeddings. Deze modellen zijn getraind op diverse datasets, waardoor ze embeddings kunnen creëren die een breed scala aan linguïstische nuances vastleggen.
- BERT en zijn varianten: BERT (Bidirectional Encoder Representations from Transformers) van Google (GOOGL ) 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 meer recent model dat efficiënt is en presteert op het niveau van veel grotere modellen zoals GPT-3 en BERT, terwijl het minder rekenkracht vereist. ELECTRA onderscheidt zich door te discrimineren tussen echte en valse data tijdens de voortraining, waardoor het meer verfijnde embeddings kan genereren.
Het begrijpen van het bovenstaande proces:
Initieel wordt een embeddingmodel gebruikt om de gewenste inhoud om te zetten in vector embeddings. Zodra deze zijn gegenereerd, worden ze 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 embeddingmodel in actie. Het transformeert deze vraag in overeenkomstige embeddings. Deze nieuw gevormde embeddings zoeken vervolgens de vector database, op zoek naar overeenkomstige vectorrepresentaties. De embeddings die als overeenkomstig worden geïdentificeerd, hebben een directe associatie met hun oorspronkelijke inhoud, waardoor de vraag van de gebruiker wordt beantwoord met relevante en nauwkeurige resultaten.
Stijgende investeringen in vector database-nieuwkomers
Met de groeiende populariteit van AI investeren veel bedrijven meer 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 bedrijven zoals Microsoft (MSFT ) hebben ook hun eigen tools. Bijvoorbeeld, Azure Cognitive Search laat bedrijven toe om AI-hulpmiddelen te maken met behulp van vector databases.
Oracle (ORCL ) heeft onlangs nieuwe functies aangekondigd voor zijn Database 23c, met 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 zoeken met behulp van vectors, zoals documenten en afbeeldingen. 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
Afstandsmetingen
De effectiviteit van een overeenkomstige zoekopdracht hangt af van de gekozen afstandsmeting. Veel voorkomende metingen zijn Euclidische afstand en cosinusgelijkheid, elk geschikt voor verschillende soorten vectorverdelingen.
Indexeren
Gezien de hoge dimensionaliteit van vectors, werken traditionele indexmethoden 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 buurzoeken mogelijk zijn.

Annoy-boom (Bron)
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 (Bron)
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 gegevens.
Schaalbaarheid
Naarmate datasets groeien, neemt ook de uitdaging toe om snelle ophaaltijden te behouden. Gedistribueerde systemen, GPU-versnelling en geoptimaliseerd geheugengebruik zijn enkele manieren waarop vector databases schaalbaarheid aanpakken.
Rol van vector databases: implicaties en kansen
1. Trainingsdata voor state-of-the-art Generatieve AI-modellen: Generatieve AI-modellen, zoals DALL-E en GPT-3, worden getraind met behulp van grote hoeveelheden data. Deze data bestaat vaak uit vectors die zijn geëxtraheerd uit diverse 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 vectors te identificeren.
2. Vervolmaking van few-shot learning: Few-shot learning is een AI-trainingsmethode waarbij modellen worden getraind met beperkte data. Vector databases versterken deze benadering door een robuuste vectorindex te onderhouden. Wanneer een model wordt geconfronteerd met slechts een handvol vectors – bijvoorbeeld een paar afbeeldingen van vogels – kan het snel het bredere concept van vogels extrapoleren door overeenkomsten en relaties tussen deze vectors te herkennen.
3. Verbetering van aanbevelingssystemen: Aanbevelingssystemen gebruiken vector databases om inhoud aan te bevelen die nauw aansluit bij de voorkeuren van een gebruiker. Door de gedragingen, profielen en vragen van een gebruiker te analyseren, worden vectors geëxtraheerd die indicatief zijn voor hun interesses. Het systeem zoekt vervolgens de vector database om inhoudsvectors te vinden die sterk overeenkomen met deze interessevectors, waardoor nauwkeurige aanbevelingen worden gegarandeerd.
4. Semantische informatieopslag: Traditionele zoekmethoden vertrouwen op exacte trefwoorden. Vector databases maken het echter mogelijk om inhoud op te halen op basis van semantische overeenkomst. Dit betekent dat zoekopdrachten intuïtiever worden, waarbij de onderliggende betekenis van de vraag centraal staat in plaats van alleen maar woorden te matchen. Bijvoorbeeld, wanneer gebruikers een vraag stellen, wordt de overeenkomstige vector vergeleken met vectors in de database om inhoud te vinden die overeenkomt met de intentie van de vraag, niet alleen de woorden.
5. Multimodale zoekopdrachten: Multimodale zoekopdrachten is een opkomende techniek die data uit meerdere bronnen integreert, zoals tekst, afbeeldingen, audio en video. Vector databases vormen de ruggengraat van deze benadering door de gecombineerde analyse van vectors uit diverse modaliteiten mogelijk te maken. Dit leidt tot een holistische zoekervaring, waarbij gebruikers informatie uit een breed scala aan bronnen kunnen ophalen op basis van een enkele vraag, resulterend in 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 Generatieve AI benadrukt de cruciale rol van vector databases bij het beheren en analyseren van multi-dimensionale data.
Deze gespecialiseerde opslagsystemen, die zijn ontworpen om high-dimensionale vectors uit diverse gegevensvormen zoals afbeeldingen, tekst of geluid te verwerken, staan centraal in de effectieve werking van moderne AI-toepassingen, met name in het kader van overeenkomstige zoekopdrachten.















