Microsoft heeft de vectorzoekbibliotheek die in Bing wordt gebruikt, open source gemaakt

Microsoft опубликовала machine learning-bibliotheekbroncodes SPTAG (Space Partition Tree And Graph) met implementatie van het geschatte algoritme dichtstbijzijnde buur zoeken. Bibliotheek ontwikkeld in de onderzoeksafdeling van Microsoft Research en het ontwikkelingscentrum voor zoektechnologie (Microsoft Search Technology Center). In de praktijk wordt SPTAG gebruikt door de Bing-zoekmachine om de meest relevante resultaten te bepalen op basis van de context van zoekopdrachten. De code is geschreven in C++ en gedistribueerd door onder MIT-licentie. Build voor Linux en Windows wordt ondersteund. Er is een binding voor de Python-taal.

Ondanks het feit dat het idee om vectoropslag in zoekmachines te gebruiken al geruime tijd rondzwerft, wordt de implementatie ervan in de praktijk belemmerd door de hoge resource-intensiteit van operaties met vectoren en schaalbaarheidsbeperkingen. Het combineren van diepgaande machine learning-methoden met geschatte zoekalgoritmen voor de dichtstbijzijnde buur heeft het mogelijk gemaakt om de prestaties en schaalbaarheid van vectorsystemen op een niveau te brengen dat acceptabel is voor grote zoekmachines. In Bing is de tijd voor het ophalen van de meest relevante resultaten bijvoorbeeld binnen 150 ms voor een vectorindex van meer dan 8 miljard vectoren.

De bibliotheek bevat tools voor het opbouwen van een index en het organiseren van vectorzoekopdrachten, evenals een reeks tools voor het onderhouden van een gedistribueerd online zoeksysteem dat zeer grote collecties vectoren bestrijkt. Aangeboden de volgende modules: indexbuilder voor indexering, zoeker voor zoeken met behulp van een index die is gedistribueerd in een cluster van verschillende knooppunten, server voor het uitvoeren van handlers op knooppunten, Aggregator voor het combineren van verschillende servers in één, en client voor het verzenden van zoekopdrachten. Het opnemen van nieuwe vectoren in de index en het direct verwijderen van vectoren wordt ondersteund.

De bibliotheek impliceert dat de gegevens die in de collectie worden verwerkt en gepresenteerd, zijn opgemaakt in de vorm van gerelateerde vectoren die kunnen worden vergeleken op basis van Euclidisch (L2) of cosinus afstanden De zoekopdracht retourneert vectoren waarvan de afstand tussen hen en de oorspronkelijke vector minimaal is. SPTAG biedt twee methoden voor het organiseren van vectorruimte: SPTAG-KDT (K-dimensionale boom (kd-boom) En relatieve buurtgrafiek) en SPTAG-BKT (k betekent boom (k-betekent boom en relatieve buurtgrafiek). De eerste methode vereist minder bronnen bij het werken met de index, en de tweede demonstreert een hogere nauwkeurigheid van zoekresultaten voor zeer grote verzamelingen vectoren.

Tegelijkertijd is het zoeken naar vectoren niet beperkt tot tekst en kan het worden toegepast op multimedia-informatie en afbeeldingen, maar ook in systemen voor het automatisch genereren van aanbevelingen. Een van de prototypes op basis van het PyTorch-framework implementeerde bijvoorbeeld een vectorsysteem voor zoeken op basis van de gelijkenis van objecten in afbeeldingen, gebouwd met behulp van gegevens uit verschillende referentiecollecties met afbeeldingen van dieren, katten en honden, die werden omgezet in sets van vectoren . Wanneer een binnenkomend beeld wordt ontvangen om te zoeken, wordt het met behulp van een machinaal leermodel omgezet in een vector, op basis waarvan de meest vergelijkbare vectoren uit de index worden geselecteerd met behulp van het SPTAG-algoritme en als resultaat de bijbehorende afbeeldingen worden geretourneerd.

Bron: opennet.ru

Voeg een reactie