Comments 22
Не знаю стал ли я жертвой этой функции, или чего-то еще…
но когда продавал два разных велоколеса, то одно из объявлений было забанено как дублирующее, хотя там в описании параметры товара указывал и они разные, да и фото конкретно так были НЕ похожи друг на друга.
но когда продавал два разных велоколеса, то одно из объявлений было забанено как дублирующее, хотя там в описании параметры товара указывал и они разные, да и фото конкретно так были НЕ похожи друг на друга.
Вопрос конечно совсем не по теме статьи :)
Скорее всего ваше объявление было забанено по какой-то другой причине, раз вы говорите, что фотки разные.
Скорее всего ваше объявление было забанено по какой-то другой причине, раз вы говорите, что фотки разные.
Я написал в поддержку тогда и его в итоге разбанили, извинившись.
а статья мощная, но оооочень технически ориентированная. Реально я думаю понятна будет ничтожному проценту людей, тем кто конкретно такую же штуку запиливал. И то вопросы останутся. А остальным только впечатлиться «до чего техника дошла» :)
а статья мощная, но оооочень технически ориентированная. Реально я думаю понятна будет ничтожному проценту людей, тем кто конкретно такую же штуку запиливал. И то вопросы останутся. А остальным только впечатлиться «до чего техника дошла» :)
Это означает, что мы делаем Inverted File на 262144 кластера
Зачем такое гигантское количество кластеров?
Если в двух словах, то на вырост. Разработчики faiss рекомендуют брать столько и даже больше для индексации миллиарда векторов.
На данном этапе развитии системы в этом действительно нет необходимости, мы проводили эксперименты с 65536 кластерами и это тоже было вполне нормально.
На данном этапе развитии системы в этом действительно нет необходимости, мы проводили эксперименты с 65536 кластерами и это тоже было вполне нормально.
При таком кол-ве кластеров — 2.5М на 240М векторов, должна значительно понизиться точность поиска. Прежде всего я имею ввиду новые записи — они будут попадать, практически, в случайные кластеры. Или вы nprob тоже в 2.5М выставляете?
Но ведь можно регулировать точность параметром nprobe, чтобы опрашивать большее число ближайших кластеров. У нас он выставлен в 256 и точность вполне приличная. К сожалению по нашей системе конкретные числа не достану, но могу показать замеры на BigANN 1B:
Всё таки у нас не 2.5 миллиона кластеров, а 262 тысячи.
R@1 R@10 R@100 time (ms/query)
nprobe=16,efSearch=128,ht=246 0.6546 0.8006 0.8006 4.231
nprobe=32,efSearch=128,ht=246 0.7107 0.8818 0.8818 7.783
nprobe=64,efSearch=128,ht=246 0.7435 0.9343 0.9346 14.691
nprobe=128,efSearch=128,ht=246 0.7653 0.9687 0.9692 28.326
nprobe=256,efSearch=128,ht=246 0.7726 0.9829 0.9834 55.375
Всё таки у нас не 2.5 миллиона кластеров, а 262 тысячи.
Года три назад пытался снять квартиру в Краснодаре через Авито — обнаружил целый рассадник мошенников, в центре 9 из 10 квартир просто не существовали и были опубликованы одной из 3 мошеннических контор (на вскидку 500+ объявлений для каждой конторы). Для блокировки этих мошенников даже не нужны нейронные сети, простых решений на основе fingerprints было бы достаточно, но антиспам-фильтром на Авито в тот момент даже не пахло, либо он легко обходился. Хочется верить, что за 3 года ситуация изменилась, хотя верится слабо.
Поскольку все наши сервисы живут на Kubernetes
А как в этом контексте, развернуть несколько индексов в одном поде? Если он будет достаточно жирным то его деплой приведет к перебалансировке остальных?
Спасибо за статью.
1. Было бы интересно узнать, что вы используете для получения самих векторов.
2. А какой практический смысл в том, что вектора можно только добавлять? Может быть изображения, добавленные, скажем, 5 лет назад уже можно удалять? Это бы позволило немного замедлить рост размера индекса. Если с этмими изображениями начнут спамить, то они добавятся в индекс. Или я что-то упускаю?
1. Было бы интересно узнать, что вы используете для получения самих векторов.
2. А какой практический смысл в том, что вектора можно только добавлять? Может быть изображения, добавленные, скажем, 5 лет назад уже можно удалять? Это бы позволило немного замедлить рост размера индекса. Если с этмими изображениями начнут спамить, то они добавятся в индекс. Или я что-то упускаю?
В общем, всё по классике инфопоиска.
Можете посоветовать литературу по классике?
Есть классическая книга Маннинга Introduction to Information Retrieval, которую в своё время в Яндексе все читали, и мне вот эта книга Бютчера Information Retrieval: Implementing and Evaluating Search Engines очень понравилась.
Отличная статья, спасибо!
1. Я так понял, «train» фазу IVF вы сделали только один раз, при самом первом построении индекса? Не сказывается ли это на точности?
2. Бэкап индекса происходит только с одного инстанса индекса, или сразу со всех? Если с одного, то как вы определяетсе «мастера», который производит бекап?
1. Я так понял, «train» фазу IVF вы сделали только один раз, при самом первом построении индекса? Не сказывается ли это на точности?
2. Бэкап индекса происходит только с одного инстанса индекса, или сразу со всех? Если с одного, то как вы определяетсе «мастера», который производит бекап?
1. Да, мы делаем тренировку один раз для каждой порождающей данные модели. На точность существенного влияния мы не заметили, но тут всё зависит от того, насколько распределение на тренировочной выборке соответствует реальному.
2. Пока что бекапы делаются со всех инстансов, мы немного троттлим чтение файла, чтобы не забивать сеть в полку.
2. Пока что бекапы делаются со всех инстансов, мы немного троттлим чтение файла, чтобы не забивать сеть в полку.
Sign up to leave a comment.
Использование faiss для поиска по многомерным пространствам