A Microsoft nyílt forráskódú a Bingben használt vektorkereső könyvtárat

Microsoft közzétett gépi tanulási könyvtár forráskódjai SPTAG (Space Partition Tree And Graph) a közelítő algoritmus megvalósításával a legközelebbi szomszéd keresése. Könyvtár fejlett a Microsoft Research kutatási részlegében és a keresőtechnológiai fejlesztési központban (Microsoft Search Technology Center). A gyakorlatban az SPTAG-ot használja a Bing keresőmotor a legrelevánsabb találatok meghatározására a keresési lekérdezések kontextusa alapján. A kód C++ és nyelven van írva forgalmazza MIT licenc alatt. A Build for Linux és Windows támogatott. Van egy kötés a Python nyelvhez.

Annak ellenére, hogy a vektortárolás keresőmotorokban való alkalmazásának gondolata már jó ideje lebeg, a gyakorlatban ezek megvalósítását hátráltatja a vektoros műveletek nagy erőforrás-intenzitása és a skálázhatósági korlátok. A mély gépi tanulási módszerek és a hozzávetőleges legközelebbi szomszéd keresési algoritmusok kombinálása lehetővé tette a vektorrendszerek teljesítményének és méretezhetőségének a nagy keresőmotorok számára elfogadható szintre hozását. Például a Bingben egy több mint 150 milliárd vektorból álló vektorindex esetén a legrelevánsabb eredmények lekérésének ideje 8 ms-on belül van.

A könyvtár tartalmazza az index felépítéséhez és a vektoros keresések szervezéséhez szükséges eszközöket, valamint egy nagyon nagy vektorgyűjteményt lefedő, elosztott online keresőrendszer karbantartásához szükséges eszközöket. Felajánlott a következő modulok: indexkészítő az indexeléshez, kereső több csomópontból álló fürtben elosztott index használatával történő kereséshez, szerver a kezelők csomópontokon való futtatásához, aggregátor több szerver egyesítéséhez és kliens lekérdezések küldéséhez. Új vektorok felvétele az indexbe és a vektorok menet közbeni törlése támogatott.

A könyvtár azt jelenti, hogy a gyűjteményben feldolgozott és bemutatott adatok kapcsolódó vektorok formájában vannak formázva, amelyek összehasonlíthatók euklideszi (L2) vagy koszinusz távolságok A keresési lekérdezés olyan vektorokat ad vissza, amelyek távolsága az eredeti vektortól minimális. Az SPTAG két módszert kínál a vektortér szervezésére: SPTAG-KDT (K-dimenziós fa (kd-fa) És relatív szomszédsági grafikon) és SPTAG-BKT (k-középfa (k- jelentése fa és relatív szomszédsági grafikon). Az első módszer kevesebb erőforrást igényel, amikor az indexszel dolgozik, a második pedig a keresési eredmények nagyobb pontosságát mutatja nagyon nagy vektorgyűjtemények esetén.

Ugyanakkor a vektoros keresés nem korlátozódik a szövegre, és alkalmazható multimédiás információkra és képekre, valamint az ajánlásokat automatikusan generáló rendszerekben. Például a PyTorch keretrendszerre épülő prototípusok egyike vektoros rendszert valósított meg a képeken lévő objektumok hasonlóságán alapuló kereséshez, amelyet több referenciagyűjtemény adataiból építettek fel állatok, macskák és kutyák képeivel, amelyeket vektorhalmazokká alakítottak át. . Ha egy bejövő kép érkezik keresésre, az egy gépi tanulási modell segítségével vektorrá konvertálódik, amely alapján az indexből az SPTAG algoritmussal kiválasztják a leginkább hasonló vektorokat, és ennek eredményeként visszaadják a kapcsolódó képeket.

Forrás: opennet.ru

Hozzászólás