Microsoft vállalat a gépi tanulás könyvtárának eredeti szövegei (Térbeli Partíciós Fa és Grafikon) az approximatív algoritmus megvalósításával . A könyvtár a Microsoft Research kutatóegységében és a Microsoft Search Technology Center fejlesztő központjában készült. A SPTAG a gyakorlatban a Bing keresőmotorban alkalmazásra kerül a legrelevánsabb találatok meghatározására a keresési kifejezések kontextusának figyelembevételével. A kód C++ nyelven íródott, és MIT licenc alatt áll. Támogatott a Linux és Windows verziója. Van egy kötege a Python nyelvhez.
Bár a vektortárolók keresőmotorokban való használatának ötlete már régóta létezik, a gyakorlatban a vektorokkal végzett műveletek magas erőforrás-igénye és a skálázhatósági korlátok megnehezítik a bevezetést. A mély gépi tanulás módszereinek kombinálása az approximatív legközelebbi szomszéd keresési algoritmusokkal lehetővé tette a vektorrendszerek teljesítményének és skálázhatóságának emelését olyan szintre, amely elfogadható a nagyobb keresőmotorok számára. Például a Bing esetében több mint 150 milliárd vektor méretű vektoriindex esetén a legrelevánsabb találatok kiválasztásának ideje 8 ms-on belül van.
A könyvtár tartalmazza az indexépítő és a vektorok keresésének megszervezésére szolgáló eszközöket, valamint egy eszközkészletet az online keresési rendszer elosztott támogatására, amely rendkívül nagy vektorkollekciókat ölel fel. : indexelő az indexeléshez, kereső az index használatával történő kereséshez, elosztott szerverekből álló klaszterben, szerver az ügyintézők futtatásához a csomópontokon, Aggregátor a több szerver egyesítésére és kliens a lekérdezések küldésére. Támogatott az új vektorok indexbe való felvétele és vektorok valós időben történő eltávolítása.
A könyvtár azt feltételezi, hogy a feldolgozott és a gyűjteményben bemutatott adatok összekapcsolt vektorok formájában vannak, amelyeket az (L2) vagy távolságok alapján lehet összehasonlítani. A keresési lekérdezés eredményeként azok a vektorok térnek vissza, amelyek távolsága a kimeneti vektortól a legkisebb. Az SPTAG két módszert kínál a vektortér megszervezésére: SPTAG-KDT (K-dimenzionális fa (, ennek eredményeként a lekérdezések olyan formát öltenek, mint a fent említett. ) és SPTAG-BKT (k-közép fa ( a relatív környezetek grafikonja). Az első módszer kevesebb erőforrást igényel az index működtetésekor, míg a második módszer a keresési eredmények magasabb pontosságát mutatja meg nagyon nagy vektorkollekciók esetén.
Ezenkívül a vektoros keresés nem korlátozódik a szövegre, alkalmazható multimédiás információkra és képekre is, valamint automatizált ajánlási rendszerekben. Például az egyik prototípusban a PyTorch keretrendszerre építve egy vektoralapú kereső rendszert valósítottak meg, amely figyelembe vette az objektumok hasonlóságát a képeken. Ez a rendszer több referencia kollekció adatait használva készült, amelyek állatok - macskák és kutyák képeit tartalmazták, ezeket vektorkészletekké alakították. Amikor egy bemeneti kép érkezik, azt gépi tanulási modellel vektorrá alakítják, és az SPTAG algoritmus segítségével a legjobban hasonlító vektorokat választják ki az indexből, így a hozzájuk kapcsolódó képeket adják vissza eredményként.
Forrás: opennet.ru
