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

Най-четени

Светослав Димитров
Светослав Димитров
Занимава се със създаване на съдържание за уеб от 2009 г. с над 15000 написани новини за Калдата. Интересува се от SMM, Афилиейт и др.

Разработчиците на 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 беше публикувана на специален уеб-сайт.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

1 Коментар
стари
нови оценка

Нови ревюта

Подобни новини