Microsoft avoimen lähdekoodin Bingissä käytetyn vektorihakukirjaston

Microsoft julkaistu koneoppimiskirjaston lähdekoodit SPTAG (Space Partition Tree And Graph) likimääräisen algoritmin toteutuksella lähimmän naapurin haku. Kirjasto kehittänyt Microsoft Researchin tutkimusdivisioonassa ja hakuteknologian kehityskeskuksessa (Microsoft Search Technology Center). Käytännössä Bing-hakukone käyttää SPTAGia tärkeimpien tulosten määrittämiseen hakukyselyiden kontekstin perusteella. Koodi on kirjoitettu C++ ja jakelija MIT-lisenssillä. Build for Linux ja Windows on tuettu. Python-kielelle on olemassa sidonta.

Huolimatta siitä, että ajatus vektorimuistin käyttämisestä hakukoneissa on pyörinyt jo pitkään, käytännössä niiden toteuttamista haittaavat vektoreiden korkea resurssiintensiivisyys ja skaalautuvuusrajoitukset. Syvien koneoppimismenetelmien yhdistäminen likimääräisiin lähin naapurin hakualgoritmeihin on mahdollistanut vektorijärjestelmien suorituskyvyn ja skaalautuvuuden saattamisen suurille hakukoneille hyväksyttävälle tasolle. Esimerkiksi Bingissä yli 150 miljardin vektorin vektoriindeksillä osuvimpien tulosten hakemisaika on 8 ms.

Kirjasto sisältää työkaluja indeksin rakentamiseen ja vektorihakujen järjestämiseen sekä joukon työkaluja erittäin suuria vektorikokoelmia kattavan hajautetun online-hakujärjestelmän ylläpitämiseen. Tarjottu seuraavat moduulit: indeksin rakentaja indeksointia varten, hakutoiminto useiden solmujen klusteriin hajautetun indeksin avulla, palvelin käsittelijöiden suorittamiseen solmuissa, Aggregaattori useiden palvelimien yhdistämiseen yhdeksi ja asiakas kyselyiden lähettämiseen. Uusien vektoreiden sisällyttämistä indeksiin ja vektorien poistamista lennossa tuetaan.

Kirjasto tarkoittaa, että kokoelmassa käsiteltävä ja esitettävä tieto on muotoiltu toisiinsa liittyvien vektoreiden muodossa, joita voidaan verrata Euklidinen (L2) tai kosini etäisyydet Hakukysely palauttaa vektoreita, joiden etäisyys niiden ja alkuperäisen vektorin välillä on minimaalinen. SPTAG tarjoaa kaksi menetelmää vektoriavaruuden järjestämiseen: SPTAG-KDT (K-ulotteinen puu (kd-puu) Ja suhteellinen naapurustokaavio) ja SPTAG-BKT (k-means puu (k- tarkoittaa puuta ja suhteellinen naapurustokaavio). Ensimmäinen menetelmä vaatii vähemmän resursseja työskennellessään indeksin kanssa, ja toinen osoittaa hakutulosten tarkkuuden erittäin suurille vektorikokoelmille.

Samaan aikaan vektorihaku ei rajoitu tekstiin, vaan sitä voidaan soveltaa multimediatietoihin ja kuviin sekä järjestelmiin, jotka luovat automaattisesti suosituksia. Esimerkiksi yksi PyTorch-kehykseen perustuvista prototyypeistä toteutti kuvissa olevien objektien samankaltaisuuteen perustuvan haun vektorijärjestelmän, joka rakennettiin useiden viitekokoelmien tiedoilla, joissa oli kuvia eläimistä, kissoista ja koirista, jotka muunnettiin vektoreiksi. . Kun saapuva kuva vastaanotetaan hakuun, se muunnetaan koneoppimismallilla vektoriksi, jonka perusteella SPTAG-algoritmin avulla valitaan indeksistä samankaltaisimmat vektorit ja palautetaan vastaavat kuvat.

Lähde: opennet.ru

Lisää kommentti