Microsoft ilifungua chanzo cha maktaba ya utaftaji wa vekta inayotumiwa katika Bing

Kampuni ya Microsoft ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° misimbo ya chanzo ya maktaba ya kujifunza mashine SPTAG (Space Partition Tree And Graph) pamoja na utekelezaji wa makadirio ya algoriti utafutaji wa jirani wa karibu. Maktaba kuendelezwa katika kitengo cha utafiti cha Utafiti wa Microsoft na kituo cha ukuzaji wa teknolojia ya utaftaji (Kituo cha Teknolojia ya Utafutaji cha Microsoft). Kiutendaji, SPTAG hutumiwa na injini ya utafutaji ya Bing kubainisha matokeo muhimu zaidi kulingana na muktadha wa hoja za utafutaji. Nambari imeandikwa katika C ++ na kusambazwa na chini ya leseni ya MIT. Jenga kwa ajili ya Linux na Windows inatumika. Kuna kifungo kwa lugha ya Python.

Licha ya ukweli kwamba wazo la kutumia uhifadhi wa vekta katika injini za utaftaji limekuwa likielea kwa muda mrefu, kwa vitendo, utekelezaji wao unazuiliwa na nguvu kubwa ya utendakazi na vekta na mapungufu ya ukali. Kuchanganya mbinu za kina za kujifunza kwa mashine na takriban algoriti za utafutaji za jirani kumewezesha kuleta utendakazi na upanuzi wa mifumo ya vekta kwa kiwango kinachokubalika kwa injini kubwa za utafutaji. Kwa mfano, katika Bing, kwa faharasa ya vekta ya zaidi ya vekta bilioni 150, muda wa kupata matokeo muhimu zaidi ni ndani ya 8 ms.

Maktaba inajumuisha zana za kujenga faharasa na kuandaa utafutaji wa vekta, pamoja na seti ya zana za kudumisha mfumo wa utafutaji uliosambazwa mtandaoni unaofunika makusanyo makubwa sana ya vekta. Iliyotolewa moduli zifuatazo: kijenzi cha faharasa kwa kuorodhesha, mtafutaji wa kutafuta kwa kutumia faharasa iliyosambazwa katika kundi la nodi kadhaa, seva ya vidhibiti vinavyoendesha kwenye nodi, Kikusanyaji cha kuchanganya seva kadhaa kuwa moja, na mteja kwa kutuma maswali. Kuingizwa kwa vekta mpya kwenye faharisi na ufutaji wa vekta kwenye kuruka kunasaidiwa.

Maktaba ina maana kwamba data iliyochakatwa na kuwasilishwa katika mkusanyo imeumbizwa katika mfumo wa vekta zinazohusiana ambazo zinaweza kulinganishwa kulingana na Euclidean (L2) au kosini umbali Hoja ya utaftaji inarudisha vekta ambazo umbali kati yao na vekta asili ni mdogo. SPTAG hutoa njia mbili za kupanga nafasi ya vekta: SPTAG-KDT (mti wa K-dimensional (kd-mti) na grafu ya jirani) na SPTAG-BKT (k-inamaanisha mti (k-inamaanisha mti na grafu ya jirani). Njia ya kwanza inahitaji rasilimali kidogo wakati wa kufanya kazi na index, na ya pili inaonyesha usahihi wa juu wa matokeo ya utafutaji kwa makusanyo makubwa sana ya vekta.

Wakati huo huo, utafutaji wa vekta hauzuiliwi na maandishi na unaweza kutumika kwa habari na picha za multimedia, na pia katika mifumo ya kutoa mapendekezo kiotomatiki. Kwa mfano, moja ya prototypes kulingana na mfumo wa PyTorch ilitekeleza mfumo wa vekta wa kutafuta kulingana na kufanana kwa vitu kwenye picha, iliyojengwa kwa kutumia data kutoka kwa makusanyo kadhaa ya kumbukumbu na picha za wanyama, paka na mbwa, ambazo zilibadilishwa kuwa seti za vekta. . Wakati picha inayoingia inapokewa kwa ajili ya utafutaji, inabadilishwa kwa kutumia kielelezo cha mashine ya kujifunza kuwa kivekta, kulingana na ambayo vekta zinazofanana zaidi huchaguliwa kutoka kwenye faharasa kwa kutumia algoriti ya SPTAG na picha zinazohusiana zinarejeshwa kama matokeo.

Chanzo: opennet.ru

Kuongeza maoni