The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Доступна СУБД EuclidesDB, использующая элементы машинного об..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от opennews (?), 26-Ноя-18, 19:22 
Подготовлен первый экспериментальный выпуск СУБД EuclidesDB (https://github.com/perone/euclidesdb/), предоставляющей средства для использования моделей машинного обучения при индексировании и выборки данных. СУБД позволяет привязывать к различным классам информации отдельные модели машинного обучения, например, можно подключить модель для классификации изображений и применять СУБД для поиска похожих фотографий или выборки изображений, на которых присутствует определённый объект. Проект написан на языке С++ и распространяется под лицензией Apache 2.0. Модели машинного обучения обрабатываются при помощи библиотеки PyTorch (https://pytorch.org/) (используется C++-интерфейс libtorch (https://pytorch.org/cppdocs/)).

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


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

Взаимодействие с СУБД осуществляется с использованием протокола gRPC (https://grpc.io/) c применением  HTTP/2 для сетевого взаимодействия и  Protocol Buffers для сериализации данных. Низкоуровневое хранение данных реализовано с использованием  LevelDB (https://www.opennet.dev/opennews/art.shtml?num=31325).  Логика обработки моделей задаётся на языке Python (TorchScript ) и оформляется в виде модулей к PyTorch. В комплекте поставляются три готовые модели (resnet101, resnet18 и vgg16), обеспечивающие распознавание и классификацию изображений. В дальнейшем планируется включить в состав модели для обработки других видов информации.


Поддерживается несколько методов индексации и поиска данных:


-  annoy - движок нечёткого поиска на базе библиотеки Annoy (https://github.com/spotify/annoy) (Approximate Nearest Neighbors Oh Yeah), которая применяется для формирования рекомендаций в музыкальном сервисе Spotify. Библиотека реализует алгоритм решения
задачи поиска ближайшего соседа (https://ru.wikipedia.org/wiki/%D0%97%D0%...), оптимизированный для снижения потребления оперативной памяти и использования подкачки данных с диска;

-  faiss - движок на основе библиотеки поиска похожих элементов Faiss (https://github.com/facebookresearch/faiss), развиваемой компанией Facebook. Faiss предлагает большой набор настроек, позволяющих добиться необходимого компромисса  в отношении времени поиска, качества поиска, потребления оперативной памяти и длительности обучения;

-  exact_disk - простейший движок, в котором применяется линейный поиск точных совпадений. Индекс сразу сохраняется на диск, что позволяет добиться минимального расхода оперативной памяти.

URL: https://news.ycombinator.com/item?id=18488042
Новость: https://www.opennet.dev/opennews/art.shtml?num=49664

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +3 +/
Сообщение от klalafuda (?), 26-Ноя-18, 19:22 
SELECT COUNT(*) FROM Cats WHERE cat_image LIKE LOAD_FILE('mycat.jpeg')
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +1 +/
Сообщение от na (??), 26-Ноя-18, 20:20 
Это когда-то в светлом будущем. Пока только так.:)

SELECT COUNT(*) FROM Turtles WHERE turtle_image LIKE rifle

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от Аноним84701 (ok), 26-Ноя-18, 21:30 
> SELECT COUNT(*) FROM Cats WHERE cat_image LIKE LOAD_FILE('mycat.jpeg')

Скорее:
SELECT COUNT(*) FROM ReCaptcha WHERE fire_hydrant_image LIKE LOAD_FILE('green_traffic_light_for_my_bus.jpeg');

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +1 +/
Сообщение от Урри (?), 26-Ноя-18, 19:48 
Не понимаю, зачем?
Неужели так сложно навесить над движком абсолютно любой БД ту жа самую логику и вместо INSERT (image) делать предвычисленные INSERT (image, attribute1, attribute2, attribute3)?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +1 +/
Сообщение от Orduemail (ok), 27-Ноя-18, 07:09 
> Неужели так сложно...

Простые пути не всегда лучшие. В новости же всё сказано: алгоритмы выполнения запросов заточены под определённые задачи AI. Всякие там SQL субд общего назначения менее заточены под эти задачи и будут сливать по производительности. Ну или точнее разработчики этой ЕвклиДБ полагают, что они будут сливать: тесты пока они судя по всему стесняются выкладывать.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  –1 +/
Сообщение от Аноним (5), 26-Ноя-18, 21:00 
Без прямой поддержки Julia - не жилец...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  –2 +/
Сообщение от fu (?), 27-Ноя-18, 04:09 
да, julia не жилец.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от User237 (?), 27-Ноя-18, 00:10 
А есть тут возможность обработки логов и каких-либо метрик мониторинга?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от Anon4ik_ (?), 27-Ноя-18, 00:37 
Стесняюсь спросить, сколько ж она жрать то будет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +1 +/
Сообщение от Ydro (?), 27-Ноя-18, 19:09 
Две видяхи.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

23. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от Фикус (?), 28-Ноя-18, 08:53 
на завтрак, столько же на обед и ужин
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

20. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  –1 +/
Сообщение от Аноним (20), 27-Ноя-18, 16:31 
>модели могут применяться для рекомендации клиенту интернет-магазина туфель и футболок, наиболее похожих на те, что уже выбрал покупатель

Идиотское предположение, что покупателю нужна еще одна такая же вещь. Обычно это не так.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +1 +/
Сообщение от Аноним (21), 27-Ноя-18, 17:42 
> Идиотское предположение, что покупателю нужна еще одна такая же вещь. Обычно это
> не так.

Выбрал не значит, что уже купил. На Ali, например, одна из самых удобных штук, когда в момент помещения в корзину товара он показывает кучи похожих вещей и можно сразу найти лучше или дешевле.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

24. "Доступна СУБД EuclidesDB, использующая элементы машинного об..."  +/
Сообщение от Аноним (24), 28-Ноя-18, 15:58 
а как они в gRPC очередь запросов хранят? а что если операции изменяют состояние сервера? выходит нужно хранить операции в надежном хранилище. клиент может запросить сервер статус операции по определенному id? выходит нужно запросы вечно хранить или требовать от клиента их аннулировать (но тупой клиент например web может их потерять и не аннулировать). как бы вы все это организовали?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру