Написать пост

Выпущена СУБД EuclidesDB с элементами машинного обучения

Аватар Андрей Галадей

СУБД EuclidesDB позволяет подключать модели машинного обучения и использовать их для индексирования и обработки результатов поиска.

Обложка поста Выпущена СУБД EuclidesDB с элементами машинного обучения

Доступна первая экспериментальная сборка СУБД EuclidesDB, написанная на языке C++. Эта система позволяет задействовать модели машинного обучения во время индексирования и выборки данных из базы.

Что умеет СУБД?

К СУБД EuclidesDB можно подключать модели машинного обучения и использовать их для выдачи результатов. Это позволяет задействовать модель, которую натренировали распознавать определённые объекты на фото, после чего выбирать из базы подходящие изображения автоматически.

Подобное пригодится в крупных базах данных, например, для интернет-магазинов в качестве системы рекомендаций или для тех же задач в потоковых сервисах. СУБД сможет выбирать данные в зависимости от того, чем заинтересовался пользователь. При этом можно подключать несколько моделей, обученных на разные категории данных.

Выпущена СУБД EuclidesDB с элементами машинного обучения 1

При добавлении новых данных требуется указывать модель машинного обучения для каждого изображения. Система обрабатывает информацию и сохраняет ключ в локальное хранилище. На основе этих результатов формируется индекс запросов. В случае сходства элементов в запросе нужно указать допустимый диапазон моделей для поиска. На выходе система вернёт перечень аналогичных элементов с указанием уровня релеватности.

Как это работает?

EuclidesDB использует фреймворк gRPC для вызова удалённых процедур, протокол HTTP/2 — для сетевого взаимодействия и Protocol Buffers — для сериализации. Низкоуровневое хранение реализовано с помощью системы LevelDB, а работа моделей машинного обучения построена на библиотеке PyTorch.

В комплекте идёт три готовые модели — resnet101, resnet18 и vgg16 — для распознавания и классификации фотографий объектов. В будущем планируется добавить обработку и других видов информации.

При этом используется различные способы индексирования и поиска:

  • annoy — система нечёткого поиска на базе одноимённой библиотеки. Она используется в музыкальном сервисе Spotify для создания списка рекомендаций. Библиотека решает задачу поиска ближайшего соседа, при этом алгоритм оптимизирован, чтобы уменьшить потребление памяти и файла подкачки;
  • faiss — система для поиска похожих элементов с большим количеством настроек;
  • exact_disk — система для поиска точных совпадений. В этом случае индекс сразу сохраняется на диск, что минимизирует потребление ОЗУ.

В ноябре 2018 года Apple выпустила первую стабильную версию открытой распределённой СУБД FoundationDB. Она рассчитана на обработку крупных наборов структурированных данных. СУБД относится к категории NoSQL-систем и работает с большим количеством языков программирования.

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов