Microsoft het die kode oopgemaak vir die vektorsoektogbiblioteek wat deur Bing gebruik word

Microsoft gepubliseer masjienleer biblioteek bronkodes SPTAG (Space Partition Tree And Graph) met implementering van die benaderde algoritme naaste buurman soek. Biblioteek ontwikkel in die navorsingsafdeling van Microsoft Research en die soektegnologie-ontwikkelingsentrum (Microsoft Search Technology Centre). In die praktyk word SPTAG deur die Bing-soekenjin gebruik om die mees relevante resultate te bepaal gebaseer op die konteks van soeknavrae. Die kode is geskryf in C++ en versprei deur onder MIT-lisensie. Bou vir Linux en Windows word ondersteun. Daar is 'n binding vir die Python-taal.

Ten spyte van die feit dat die idee om vektorberging in soekenjins te gebruik al vir 'n lang tyd ronddryf, word die implementering daarvan in die praktyk belemmer deur die hoë hulpbronintensiteit van bedrywighede met vektore en skaalbaarheidsbeperkings. Die kombinasie van diep masjienleermetodes met benaderde naaste-buursoekalgoritmes het dit moontlik gemaak om die werkverrigting en skaalbaarheid van vektorstelsels op 'n vlak te bring wat aanvaarbaar is vir groot soekenjins. Byvoorbeeld, in Bing, vir 'n vektorindeks van meer as 150 miljard vektore, is die tyd om die mees relevante resultate te haal binne 8 ms.

Die biblioteek sluit gereedskap in om 'n indeks te bou en vektorsoektogte te organiseer, sowel as 'n stel hulpmiddels vir die instandhouding van 'n verspreide aanlyn soekstelsel wat baie groot versamelings vektore dek. Aangebied die volgende modules: indeksbouer vir indeksering, soeker vir soek deur gebruik te maak van 'n indeks wat in 'n groepering van verskeie nodusse versprei is, bediener om hanteerders op nodusse te laat loop, Aggregator om verskeie bedieners in een te kombineer, en kliënt vir die stuur van navrae. Insluiting van nuwe vektore in die indeks en verwydering van vektore op die vlieg word ondersteun.

Die biblioteek impliseer dat die data wat in die versameling verwerk en aangebied word geformateer word in die vorm van verwante vektore wat vergelyk kan word op grond van Euklidiese (L2) of kosinus afstande Die soeknavraag gee vektore terug waarvan die afstand tussen hulle en die oorspronklike vektor minimaal is. SPTAG verskaf twee metodes om vektorruimte te organiseer: SPTAG-KDT (K-dimensionele boom (kd-boom) En relatiewe buurtgrafiek) en SPTAG-BKT (k-beteken boom (k-beteken boom en relatiewe buurtgrafiek). Die eerste metode vereis minder hulpbronne wanneer met die indeks gewerk word, en die tweede toon hoër akkuraatheid van soekresultate vir baie groot versamelings vektore.

Terselfdertyd is vektorsoektog nie beperk tot teks nie en kan dit toegepas word op multimedia-inligting en beelde, sowel as in stelsels om aanbevelings outomaties te genereer. Byvoorbeeld, een van die prototipes gebaseer op die PyTorch-raamwerk het 'n vektorstelsel geïmplementeer vir soek gebaseer op die ooreenkomste van voorwerpe in beelde, gebou met behulp van data van verskeie verwysingsversamelings met beelde van diere, katte en honde, wat in stelle vektore omgeskakel is. . Wanneer 'n inkomende beeld vir soektog ontvang word, word dit met behulp van 'n masjienleermodel in 'n vektor omgeskakel, gebaseer op wat die meeste soortgelyke vektore uit die indeks gekies word deur die SPTAG-algoritme te gebruik en die geassosieerde beelde word as gevolg daarvan teruggestuur.

Bron: opennet.ru

Voeg 'n opmerking