Connect with us

AGI

Rollen til vektorbasert databaser i moderne generative AI-applikasjoner

mm
Vector Database embedding space

For store skala Generative AI-applikasjoner å fungere effektivt, trenger det et godt system for å håndtere store mengder data. Et slikt viktig system er vektorbasert database. Det som setter denne databasen apart er evnen til å håndtere mange typer data som tekst, lyd, bilder og videoer i en numerisk/vektorform.

Hva er vektorbasert databaser?

Vektorbasert database er et spesialisert lagringsystem designet for å håndtere høydimensjonale vektorer effektivt. Disse vektorer, som kan betraktes som punkter i et multi-dimensionalt rom, representerer ofte innkapslinger eller komprimerte representasjoner av mer komplekse data som bilder, tekst eller lyd.
Vektorbasert databaser tillater rask søk etter likhet blant disse vektorer, som muliggjør rask gjennfinning av de mest likende elementene fra et stort datasett.

Tradisjonelle databaser vs. vektorbasert databaser

Vektorbasert databaser:

  • Håndtering av høydimensjonale data: Vektorbasert databaser er designet for å håndtere og lagre data i høydimensjonale rom. Dette er spesielt nyttig for applikasjoner som maskinlæring, der datapunkter (som bilder eller tekst) kan representeres som vektorer i multi-dimensionale rom.
  • Optimert for søk etter likhet: En av de fremtredende egenskapene til vektorbasert databaser er evnen til å utføre søk etter likhet. I stedet for å spørre data basert på eksakte treff, tillater disse databasene brukerne å gjenvinne data som er “liknende” en gitt spørring, noe som gjør dem uvurderlige for oppgaver som bilde- eller tekstgjenfinning.
  • Skalbar for store datasett: Ettersom AI- og maskinlæringsapplikasjoner fortsetter å vokse, øker også mengden data de prosesserer. Vektorbasert databaser er bygget for å skale, og sikrer at de kan håndtere store mengder data uten å gå på kompromiss med ytelsen.

Tradisjonelle databaser:

  • Strukturert datalagring: Tradisjonelle databaser, som relasjonsdatabaser, er designet for å lagre strukturert data. Dette betyr at data er organisert i forhåndsdefinerte tabeller, rader og kolonner, og sikrer dataintegritet og konsistens.
  • Optimert for CRUD-operasjoner: Tradisjonelle databaser er primært optimert for CRUD-operasjoner. Dette betyr at de er designet for å effektivt opprette, lese, oppdatere og slette dataposter, og gjør dem egnet for en rekke applikasjoner, fra nettjenester til bedriftsprogramvare.
  • Faste skjema: En av de definerte karakteristikkene til mange tradisjonelle databaser er deres faste skjema. Når databasestrukturen er definert, kan det være komplekst og tidskrevende å gjøre endringer. Denne rigiditeten sikrer datakonsistens, men kan være mindre fleksibel enn skjema-løs eller dynamisk skjema-natur til noen moderne databaser.

Tradisjonelle databaser sliter ofte med kompleksiteten til innkapslinger, en utfordring som lett håndteres av vektorbasert databaser.

Veektorepresentasjoner

Sentral for funksjonen til vektorbasert databaser er det grunnleggende konseptet med å representere ulike former for data ved hjelp av numeriske vektorer. La oss ta et bilde som eksempel. Når du ser et bilde av en katt, kan det for en maskin transformeres til en unik 512-dimensjonal vektor som:

[0,23, 0,54, 0,32, …, 0,12, 0,45, 0,90]

Med vektorbasert databaser kan generative AI-applikasjoner gjøre mer. Den kan finne informasjon basert på mening og huske ting over lang tid. Interessant nok er ikke denne metoden begrenset til bilder alene. Tekstlige data fylt med kontekstuelle og semantiske betydninger kan også plasseres i vektorformer.

Generative AI og behovet for vektorbasert databaser

Generative AI innebærer ofte innkapslinger. Ta for eksempel ordinnkapslinger i naturlig språkprosessering (NLP). Ord eller setninger transformeres til vektorer som fanger semantisk mening. Når generering av menneske-lignende tekst, må modellene raskt sammenligne og gjenvinne relevante innkapslinger, og sikre at den genererte teksten opprettholder kontekstuelle betydninger.

Tilsvarende, i bilde- eller lydgjenning, spiller innkapslinger en avgjørende rolle i å kode mønster og egenskaper. For at disse modellene skal fungere optimalt, trenger de en database som tillater øyeblikkelig gjennfinning av like vektorer, og gjør vektorbasert databaser til en essensiell komponent i generative AI-puslespillet.

Opprettelse av innkapslinger for naturlig språk vanligvis innebærer å bruke forhåndsdefinerte modeller som:

  • GPT-3 og GPT-4: OpenAI’s GPT-3 (Generative Pre-trained Transformer 3) har vært et monumental modell i NLP-samfunnet med 175 milliarder parametre. Følger det, GPT-4, med enda flere parametre, fortsetter å drive grensene i å generere høykvalitetsinnkapslinger. Disse modellene er trent på diverse datasett, og muliggjør at de kan opprette innkapslinger som fanger en rekke lingvistiske nyanser.
  • BERT og dens varianter: BERT (Bidirectional Encoder Representations from Transformers) fra Google, er et annet betydelig modell som har sett flere oppdateringer og variasjoner som RoBERTa og DistillBERT. BERTs to-veis-trening, som leser tekst i begge retninger, er spesielt dyktig til å forstå konteksten rundt et ord.
  • ELECTRA: Et mer nylig modell som er effektivt og utfører like godt som mye større modeller som GPT-3 og BERT, samtidig som det krever færre beregningsressurser. ELECTRA diskriminerer mellom ekte og falske data under forhåndsdefinert trening, og hjelper til å opprette mer raffinerte innkapslinger.

Forståelse av prosessen:

Først blir et innkapslingsmodell brukt til å transformere ønsket innhold til vektorinnkapslinger. Når de er generert, lagres disse innkapslingene i en vektorbasert database. For enkel sporing og relevans, beholder disse lagrede innkapslingene en kobling eller referanse til det opprinnelige innholdet de ble avledet fra.

Senere, når en bruker eller system stiller et spørsmål til applikasjonen, kommer det samme innkapslingsmodell tilbake i aksjon. Det transformerer denne spørringen til tilhørende innkapslinger. Disse nydannede innkapslingene søker så vektorbasert database, og søker etter like vektorrepresentasjoner. Innkapslingene som blir identifisert som treff, har en direkte assosiasjon med deres opprinnelige innhold, og sikrer at brukerens spørring møtes med relevante og nøyaktige resultater.

Økende finansiering for nye vektorbasert databaser

Med AI sin økende popularitet, setter mange selskaper mer penger i vektorbasert databaser for å forbedre deres algoritmer og gjøre dem raskere. Dette kan sees med de nylige investeringene i vektorbasert database-startups som Pinecone, Chroma DB og Weviate.

Store samarbeid som Microsoft har også sine egne verktøy. For eksempel, Azure Cognitive Search lar bedrifter opprette AI-verktøy ved hjelp av vektorbasert databaser.

Oracle har nylig annonsert nye funksjoner for sin Database 23c, og introduserte en integrert vektorbasert database. Navnet “AI Vector Search”, vil ha en ny datatypen, indekser og søkeverktøy for å lagre og søke gjennom data som dokumenter og bilder ved hjelp av vektorer. Den støtter Retrieval Augmented Generation (RAG), som kombinerer store språkmodeller med bedriftsdata for bedre svar på språkspørsmål uten å dele private data.

Primære betraktninger av vektorbasert databaser

Avgjørende mål

Effektiviteten av et søk etter likhet avhenger av det valgte avgjørende målet. Vanlige mål inkluderer Euclidisk avstand og kosin-lignende, hver tilpasset forskjellige typer vektordistribusjoner.

Indeksering

Gitt den høydimensjonale naturen til vektorer, fungerer ikke tradisjonelle indekseringsmetoder. Vektorbasert databaser bruker teknikker som Hierarchical Navigable Small World (HNSW) grafer eller Annoy-trær, som muliggjør effektiv partitionering av vektorrommet og rask nærmeste nabo-søk.

Annoy tree

Annoy tree (Source)

Annoy er en metode som bruker binærsøketrær. Den splitter vårt dataspace mange ganger og ser bare på en del av det for å finne nærmeste naboer.

Hierarchical Navigable Small World (HNSW) graphs

Hierarchical Navigable Small World (HNSW) graphs (Source)

HNSW-grafer, på den andre siden, er som nettverk. De kobler datapunkter på en spesiell måte for å gjøre søking raskere. Disse grafene hjelper til å finne nærmeste punkter i data raskt.

Skalbarhet

Ettersom datasett vokser, øker også utfordringen med å opprettholde rask gjennfinning. Distribuerte systemer, GPU-akselerasjon og optimalt minnehåndtering er noen måter vektorbasert databaser takler skalbarhet.

Rollen til vektorbasert databaser: Implikasjoner og muligheter

1. Treningdata for fremtredende Generative AI-modeller: Generative AI-modeller, som DALL-E og GPT-3, er trent ved hjelp av store mengder data. Denne data består ofte av vektorer uttrukket fra en rekke kilder, inkludert bilder, tekst, kode og andre domener. Vektorbasert databaser kuraterer og håndterer disse datasettene nøye, og lar AI-modellene assimilere og analysere verdens kunnskap ved å identifisere mønster og relasjoner innen disse vektorer.

2. Fremme av few-shot-læring: Few-shot-læring er en AI-treningsteknikk hvor modeller er trent med begrenset data. Vektorbasert databaser forsterker denne tilnærmingen ved å opprettholde en robust vektorindeks. Når en modell er eksponert for bare noen få vektorer – for eksempel, noen bilder av fugler – kan den raskt utvide det bredere konseptet om fugler ved å gjenkjenne likheter og relasjoner mellom disse vektorer.

3. Forbedring av anbefalingsystemer: Anbefalingsystemer bruker vektorbasert databaser for å foreslå innhold som er nært tilknyttet en brukers preferanser. Ved å analysere en brukers atferd, profil og spørringer, trekkes vektorer som er indicative for deres interesser. Systemet søker så vektorbasert database for å finne innholdvektorer som ligner disse interessevektorene, og sikrer presise anbefalinger.

4. Semantisk informasjonsgjenfinning: Tradisjonelle søkemetoder avhenger av eksakte nøkkelord-treff. Vektorbasert databaser muliggjør imidlertid systemer til å forstå og gjenvinne innhold basert på semantisk likhet. Dette betyr at søk blir mer intuitive, og fokuserer på den underliggende meningen til spørringen, snarere enn bare å matche ord. For eksempel, når brukere setter inn en spørring, sammenlignes den tilhørende vektoren med vektorer i databasen for å finne innhold som resonnerer med spørringens intensjon, snarere enn bare dens formulering.

5. Multimodal søk: Multimodal søk er en fremvoksende teknikk som integrerer data fra flere kilder, som tekst, bilder, lyd og video. Vektorbasert databaser fungerer som ryggraden i denne tilnærmingen ved å tillate kombinerende analyse av vektorer fra ulike modaliteter. Dette resulterer i en helhetlig søkeopplevelse, hvor brukere kan gjenvinne informasjon fra en rekke kilder basert på en enkelt spørring, og leder til rikere innsikt og mer komplette resultater.

Konklusjon

AI-verden endrer seg raskt. Den berører mange industrier, og bringer både positive og negative endringer. De raske fremstegene i Generative AI understreker den viktige rollen til vektorbasert databaser i å håndtere og analysere multi-dimensionale data.

Disse spesialiserte lagringsystemer, som er dyktige til å håndtere høydimensjonale vektorer fra ulike dataformer som bilder, tekst eller lyd, står som en avgjørende komponent i den effektive funksjonen til moderne AI-applikasjoner, spesielt i området søk etter likhet.

Deres økende betydning understrekes ytterligere av investeringene som flyter inn i sektoren, med startups som Pinecone og gigantene som Microsoft som aktivt bidrar til fremsteg.

Jeg har brukt de siste fem årene til å dykke ned i den fasiniserende verden av Machine Learning og Deep Learning. Min lidenskap og ekspertise har ført meg til å bidra til over 50 forskjellige prosjekter innen programvareutvikling, med særlig fokus på AI/ML. Min pågående nysgjerrighet har også trukket meg mot Natural Language Processing, et felt jeg er ivrig etter å utforske videre.