TECHitMedia.NET

Бъди в крак с технологиите!

Инженерният екип на Spotify представи Voyager – библиотека за намиране на най-близките съседи

Сподели с приятели.

Разработчиците на Spotify представиха библиотеката Voyager, предназначена да реши проблема с намирането на най-близките съседи. Новото решение постепенно ще бъде внедрено в услугите на компанията. В допълнение, Voyager ще замени Annoy — предишното решение от Spotify.

Дълго време стрийминг-услугата използваше библиотеката Annoy, за да реши проблема с намирането на най-близките съседи. Той се основава на система от препоръки, търсене и генератор на плейлисти въз основа на потребителските предпочитания. Компанията отбелязва, че е по-ефективно да се използват подобни библиотеки, отколкото да се изпълняват изискващите много памет алгоритми за машинно обучение.

Кодът на Annoy беше отворен през 2013 г. и много базирани на него функции бяха внедрени в Spotify. Много неща се промениха в областта на откриването на данните през последните десет години. Появиха се решения, които предоставят по-точни резултати за половината от времето за търсене с помощта на Annoy. Някои нови услуги за управление на бази данни идват с вече вградени възможности за търсене на най-близките съседи и добавят към традиционните решения разширени алгоритми за търсене. Например, pgvevctor за векторно търсене се появи в PostgreSQL.

От 2018 г. някои екипи за разработка на Spotify започнаха да експериментират с библиотеки с отворен код, които биха могли да заменят Annoy. Разработчиците обърнаха внимание на hnswlib. С негова помощ успяха да получат десетократно увеличение на производителността, но е липсвала поддръжка на специфични функции, които са важни за Spotify. Екипът е решил да не се ангажира с функции, от които само той се нуждае и така е започнала разработката на Voyager.

Voyager вече е готов за използване. Характеристиките и функциите му включват:

  • десетократно увеличение на производителността в сравнение с Annoy;
  • спад в употребата на паметта с 4 пъти;
  • напълно многонишков индекс и създаване на заявки;
  • устойчиви на грешки файлови индекси със система за откриване на повреди;
  • I/O стрийминг, съвместим с Google Cloud Platform;
  • 16 пъти по-малко памет се използва по време на създаване на индекс, отколкото с оригиналната версия на hnswlib;
  • пълна поддръжка на Python и Java със същите интерфейси;
  • версията за Java се инсталира без зависимости от трети страни, а за Python е необходим само NumPy;
  • поддръжка на Windows, Linux и macOS на x86 и arm64 процесорите.

Кодът на библиотеката е отворен и достъпен в GitHub. Документацията за Python и Linux беше публикувана на специален уеб-сайт.

Източник: Kaldata

Leave a Reply

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

TECHitMedia.NET
Правила за бисквитките:

Относно бисквитките!

Тази политика обяснява подробно как “TECHitMedia.NET” използва всяка информация, събрана по време на всяка сесия на ползване от вас (наричана по-долу “Вашата информация”).

Вашата информация се събира по два начина. Първо, разглеждането на “ TECHitMedia.NET” ще накара софтуерът да създаде няколко бисквитки, представляващи малки текстови файлове, които се свалят при временните файлове на браузъра на Вашия компютър. Първите две бисквитки съдържат само потребителски идентификатор (наричан по-долу “user-id”) и анонимен идентификатор на сесията (наричан по-долу “session-id”), които са Ви автоматично назначени от софтуера. Трета бисквитка се създадена при преглеждане на теми в “ TECHitMedia.NET ” и се използва за запомняне на прочетените от Вас теми, подобрявайки работата Ви.

Ние можем също така да създадем бисквитки отвъд софтуера при разглеждане на “ TECHitMedia.NET ”, въпреки че те са извън обхвата на този документ, който е предназначен само за покриване на страници, създадени от софтуера. Вторият начин, по който ние събираме Вашата информация, е това какво Вие изпращате към нас. Това може да бъде, и не е ограничено до: писане като анонимен потребител (наричани по-долу “анонимни мнения”), регистриране в “ TECHitMedia.NET ” (наричан по-долу “Вашият акаунт”) и мнения, написани от Вас след регистрация използвайки акаунт (наричани по-долу “Вашите мнения”).

Вашият акаунт ще съдържа минимум уникално идентифициращо име (наричано по-долу “Вашето потребителско име”), лична парола за влизане във Вашия акаунт (наричана по-долу “Вашата парола”) и личен, валиден e-mail адрес (наричан по-долу “Вашият e-mail”). Вашата информация за Вашия акаунт в “ TECHitMedia.NET ” е защитена от законите за защита на данни, приложими в нашата страна. Всякаква информация, различна от Вашето потребителско име, Вашата парола и Вашия e-mail, която се изисква от “ TECHitMedia.NET ” в процеса на регистрация е или задължителна, или незадължителна, по преценка на “ TECHitMedia.NET ”. Във всички случаи, Вие можете да определите каква информация от Вашия акаунт е видима публично. При това, в рамките на Вашия акаунт, Вие можете да се запишете или да се отпишете от получаване на автоматично генерирани писма оt софтуера.

Вашата парола е шифрована (еднопосочно хеширана) така че да бъде в безопасност. Въпреки това е препоръчително да не използвате същата парола в други сайтове. Вашата парола е средството за достъп до Вашия акаунт в “ TECHitMedia.NET ”, затова моля пазете я внимателно и знайте, че при каквито и да било обстоятелства, никой от “ TECHitMedia.NET ”, или друга трета страна няма да поиска Вашата парола. Ако се случи да забравите Вашата парола за Вашия акаунт, можете да използвате функцията „Забравена парола“, предоставена от сайта. Този процес ще поиска от Вас да изпратите Вашето потребителско име и Вашия e-mail, след което TECHitMedia.NET софтуерът ще генерира нова парола, за да възстановите Вашия акаунт.