Как стать автором
Обновить

Комментарии 25

НЛО прилетело и опубликовало эту надпись здесь
Тот момент когда ты не студент и не школьник, а распознованием лиц не делал))

Интересно какова размерность эмбеддинга

вектор размерности 128
А сколько у вас нодов Cassandra если не секрет?
всего в ОК более 1200 нод Cassandr-ы более чем в 70ти кластерах, а для сервиса распознавания лиц, хватило и 6 нод
Вы за 120 мс успеваете просматривать на 6 нодах 300Гб векторов эмбеддинга для поиска? (нет конечно) Поделитесь секретами индексации?
Да, очень интересно как вы оптимизируете выбор наиболее подходящих векторов
тут есть 3 решения:

1) простое: косинус довольно дешовый поэтому можно считать по друзьям, а потом по друзьям тех кто на фото ;) и это будет работать за миллисекунды

2) brute force: 2млн векторов можно запихать матрицей в GPU и умножать там на вектор кандидата, если поставить 150 GPU то можно все построенные 300 млн эмбеддингов разместить в память карты и брут форсить через весь портал

3) сложное:
есть решение от FB для поиска ближайших векторов по L2 в пространствах большой размерности: github.com/facebookresearch/faiss

мы, пошли по другому пути, бинаризируем вектора и ищем ближайшие по хэммингу: ieeexplore.ieee.org/document/6233169

Так там поиск по первичному ключу скорее всего. В кассандре латенси на такую операцию более или менее константна около 5мс

Они же ищут только в фотках друзей а не во всём БД? Или я вопрос не понял
Ну если в фотках друзей то да, тогда понятно. Просто если искать самый близкий эмбеддинг по всем юзерам (а это, наверное, косинусная мера) на 330M векторов — такое себе занятие…
300Гб дешево умещаются в RAM, поэтому мы поставили off-heap кэш от Андрея Паньгина habrahabr.ru/company/odnoklassniki/blog/148139
и читаем все сектора из памяти
кажется всё очень просто — распознавание производиться только среди друзей загрузившего фотку
Предлагайте свои идеи использования системы распознавания лиц в комментариях.

Искать не только среди друзей.

> Искать не только среди друзей.
Завести категорию «враги». Раньше ходили «стенка на стенку», а теперь буду ходить «стена на стену» :)
Предлагайте свои идеи использования системы распознавания лиц в комментариях.

Закупите сеть наружных камер, прикрутите сеть к ней и автоматически отмечайте геотеги пользователя по мере перемещения его по городу.

А если при этом ещё сеть интерактивных рекламных билбордов закупить, то можно вообще персонализированную видео-рекламу показывать.
Снимать на выходе из клиники, а потом на рекламном ТВ на другом конце города внезапно «Замучил геморрой, Иван Иванов? Покупай новое средство от $brand_name!». Ну и огрести в перспективе, конечно.
НЛО прилетело и опубликовало эту надпись здесь
Предлагайте свои идеи использования системы распознавания лиц в комментариях.

Извините, напрашивается:
1. Брать фото/видео с уличных камер для поиска «их разыскивает»
2. Выборы: детектирование каруселей, подсчёт явки
… а потом в гости полицаи пожалуют из-за того, что кто-то похожий на тебя что-то там сделал.

Хороший текст. И читается легко и технической информации хватает.


Перевел его на английский.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий