Microsoft har åbnet kildekoden til den vektorsøgningsbibliotek, der bruges i Bing.

Microsoft offentliggjorde originale tekster fra maskinlæringsbiblioteket SPTAG (Space Partition Tree And Graph) med implementering af algoritmen til tilnærmet nærmeste nabo søgning. Biblioteket er udviklet i Microsoft Researchs forskningsenhed og i teknologiudviklingscentret for søgning (Microsoft Search Technology Center). I praksis anvendes SPTAG i søgemaskinen Bing til at bestemme de mest relevante resultater under hensyntagen til konteksten af søgeforespørgsler. Koden er skrevet i C++ og distribueres under MIT-licensen. Der tilbydes bygning for Linux og Windows. Der er en binding til Python.

Selvom ideerne om at anvende vektorlager i søgemaskiner har eksisteret i et stykke tid, er implementeringen i praksis blevet hindret af den store ressourcekrav til operationer med vektorer og begrænsninger i skalerbarhed. Kombinationen af metoder fra dyb læring med algoritmer til tilnærmet nærmeste nabo søgning har gjort det muligt at bringe ydeevnen og skalerbarheden i vektorsystemer op på et niveau, der er acceptabelt for store søgemaskiner. For eksempel, i Bing, for et vektorreferencelager på over 150 milliarder vektorer, ligger tiden for at hente de mest relevante resultater inden for 8 ms.

Biblioteket inkluderer værktøjer til opbygning af indekser og organisering af søgning i vektorer samt et sæt værktøjer til vedligeholdelse af et distribueret online-søgesystem, der dækker meget store samlinger af vektorer. Der tilbydes følgende moduler: index builder til indeksering, searcher til søgning ved hjælp af indekset, distribueret i et klynge af flere noder, server til at køre håndterere på noderne, Aggregator til at kombinere flere servere til et hele og klient til at sende forespørgsler. Der understøttes tilføjelse af nye vektorer til indekset og fjernelse af vektorer on-the-fly.

Biblioteket forudsætter, at de behandlede og præsenterede data i samlingen er opstillet som relaterede vektorer, der kan sammenlignes på basis af euclidian (L2) eller kosinus afstande. Ved en søgeforespørgsel returneres vektorer, hvis afstand til den originale vektor er minimal. I SPTAG tilbydes der to metoder til organisering af vektorplads: SPTAG-KDT (K-dimensionelt træ (kd-tree) og graf over relative naboer) og SPTAG-BKT (k-centroid træ (k-means tree og og grafik over relative nærheder). Den første metode kræver færre ressourcer, når den arbejder med indekset, mens den anden viser en højere præcision i søgningerne ved meget store samlinger af vektorer.

Vektor-søgning er ikke begrænset til tekst og kan også bruges til multimedieinformation og billeder samt i systemer til automatisk generering af anbefalinger. For eksempel blev der i en prototype baseret på PyTorch-rammen implementeret et vektorsystem til søgning baseret på lighed mellem objekter i billeder, konstrueret ved hjælp af data fra flere referencekollektioner med billeder af dyr, katte og hunde, der blev konverteret til vektorsæt. Når et indkommende billede skal søges, omdannes det ved hjælp af en maskinlæringsmodel til en vektor, baseret på hvilken algoritmen SPTAG vælger de mest lignende vektorer fra indekset, og som resultat returneres de associerede billeder.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster