Microsoft open sourced ang vector search library na ginamit sa Bing

Microsoft ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° machine learning library source code SPTAG (Space Partition Tree At Graph) na may pagpapatupad ng tinatayang algorithm pinakamalapit na paghahanap ng kapitbahay. Aklatan umunlad sa research division ng Microsoft Research at ang search technology development center (Microsoft Search Technology Center). Sa pagsasagawa, ang SPTAG ay ginagamit ng Bing search engine upang matukoy ang mga pinakanauugnay na resulta batay sa konteksto ng mga query sa paghahanap. Ang code ay nakasulat sa C++ at ipinamahagi ni sa ilalim ng lisensya ng MIT. Ang Build para sa Linux at Windows ay suportado. Mayroong isang pagbubuklod para sa wikang Python.

Sa kabila ng katotohanan na ang ideya ng paggamit ng vector storage sa mga search engine ay medyo matagal nang lumulutang, sa pagsasagawa, ang kanilang pagpapatupad ay nahahadlangan ng mataas na resource intensity ng mga operasyon na may mga vectors at mga limitasyon sa scalability. Ang pagsasama-sama ng malalim na mga pamamaraan sa pag-aaral ng makina sa tinatayang pinakamalapit na mga algorithm sa paghahanap ng kapitbahay ay naging posible upang dalhin ang pagganap at scalability ng mga vector system sa isang antas na katanggap-tanggap para sa malalaking search engine. Halimbawa, sa Bing, para sa isang vector index na higit sa 150 bilyong vectors, ang oras para makuha ang mga pinakanauugnay na resulta ay nasa loob ng 8 ms.

Kasama sa library ang mga tool para sa pagbuo ng isang index at pag-aayos ng mga vector search, pati na rin ang isang set ng mga tool para sa pagpapanatili ng isang distributed online search system na sumasaklaw sa napakalaking koleksyon ng mga vector. Inaalok ang mga sumusunod na module: index builder para sa pag-index, searcher para sa paghahanap gamit ang isang index na ibinahagi sa isang cluster ng ilang mga node, server para sa pagpapatakbo ng mga handler sa mga node, Aggregator para sa pagsasama-sama ng ilang mga server sa isa, at client para sa pagpapadala ng mga query. Ang pagsasama ng mga bagong vector sa index at ang pagtanggal ng mga vector sa mabilisang ay suportado.

Ang aklatan ay nagpapahiwatig na ang data na naproseso at ipinakita sa koleksyon ay naka-format sa anyo ng mga kaugnay na vectors na maaaring ihambing batay sa Euclidean (L2) o cosine mga distansya Ang query sa paghahanap ay nagbabalik ng mga vector na ang distansya sa pagitan nila at ng orihinal na vector ay minimal. Nagbibigay ang SPTAG ng dalawang paraan para sa pag-aayos ng vector space: SPTAG-KDT (K-dimensional tree (kd-puno) At relatibong kapitbahayan graph) at SPTAG-BKT (k-means tree (k-ibig sabihin puno at relatibong graph ng kapitbahayan). Ang unang paraan ay nangangailangan ng mas kaunting mapagkukunan kapag nagtatrabaho sa index, at ang pangalawa ay nagpapakita ng mas mataas na katumpakan ng mga resulta ng paghahanap para sa napakalaking koleksyon ng mga vector.

Kasabay nito, ang paghahanap ng vector ay hindi limitado sa teksto at maaaring ilapat sa impormasyon at mga imahe ng multimedia, pati na rin sa mga system para sa awtomatikong pagbuo ng mga rekomendasyon. Halimbawa, ang isa sa mga prototype batay sa balangkas ng PyTorch ay nagpatupad ng isang vector system para sa paghahanap batay sa pagkakapareho ng mga bagay sa mga imahe, na binuo gamit ang data mula sa ilang mga koleksyon ng sanggunian na may mga larawan ng mga hayop, pusa at aso, na na-convert sa mga hanay ng mga vector. . Kapag ang isang papasok na imahe ay natanggap para sa paghahanap, ito ay kino-convert gamit ang isang machine learning model sa isang vector, batay sa kung saan ang pinakakatulad na mga vector ay pinili mula sa index gamit ang SPTAG algorithm at ang mga nauugnay na imahe ay ibinalik bilang isang resulta.

Pinagmulan: opennet.ru

Magdagdag ng komento