Компания Microsoft опубликовала (https://blogs.microsoft.com/ai/bing-vector-search/) исходные тексты библиотеки машинного обучения SPTAG (https://github.com/Microsoft/SPTAG) (Space Partition Tree And Graph) с реализацией алгоритма приблизительного поиска ближайшего соседа (https://ru.wikipedia.org/wiki/%D0%97%D0%.... Библиотека разработана (https://www.ailab.microsoft.com/vectorsearchexperiment) в исследовательском подразделении Microsoft Research и центре разработки поисковых технологий (Microsoft Search Technology Center). На практике SPTAG применяется в поисковой системе Bing для определения наиболее релевантных результатов с учётом контекста поисковых запросов. Код написан на языке С++ и распространяется (https://github.com/Microsoft/SPTAG) под лицензией MIT. Поддерживается сборка для Linux и Windows.
Несмотря на то, что идеи применения векторных хранилищ в поисковых системах витают уже достаточно давно, на практике их внедрению мешает большая ресурсоёмкость операций с векторами и ограничения в масштабируемости. Совмещение методов глубинного машинного обучения с алгоритмами приблизительного поиска ближайшего соседа позволило довести производительность и масштабируемость векторных систем до уровня, приемлемого для крупных поисковых систем. Например, в Bing для векторного индекса размером более 150 миллиардов векторов время выборки наиболее релевантных результатов укладывается в 8 мс.В состав библиотеки включены средства для построения индекса и организации поиска векторов, а также набор инструментов для сопровождения распределённой системы online-поиска, охватывающей очень большие коллекции векторов. Предлагается два основных модуля: index builder для индексации и searcher для поиска с использованием индекса, распределённого в кластере из нескольких узлов. Поддерживается включение новых векторов в индекс и удаление векторов на лету.
Библиотека подразумевает, что обрабатываемые и представленные в коллекции данные оформлены в виде связанных векторов, которые можно сравнивать на основе евклидовых (https://ru.wikipedia.org/wiki/%D0%95%D0%... (L2) или косинусных (https://ru.wikipedia.org/wiki/%D0%9A%D0%... расстояний. При поисковом запросе возвращаются векторы, расстояние между которыми и исходным вектором минимально. В SPTAG предоставляется два метода организации векторного пространства: SPTAG-KDT (K-мерное дерево (kd-tree (https://ru.wikipedia.org/wiki/K-%D0%BC%D0... и граф относительных окрестностей (https://ru.wikipedia.org/wiki/%D0%93%D1%... и SPTAG-BKT (дерево k-средних (k-means tree (https://ru.wikipedia.org/wiki/%D0%9C%D0%... и граф относительных окрестностей). Первый метод требует меньше ресурсов при работе с индексом, а второй демонстрирует более высокую точность результатов поиска при очень больших коллекциях векторов.
При этом векторный поиск не ограничивается текстом и может применяться к мультимедийной информации и изображениям, а также для в системах автоматического формирования рекомендаций. Например, в одном из прототипов на базе фреймворка PyTorch была реализована векторная система для поиска с учётом сходства объектов на изображениях, построенная с использованием данных из нескольких эталонных коллекций с изображениями животных, кошек и собак, которые были преобразованы в наборы векторов. При поступлении входящего изображения для поиска оно преобразуется с использованием модели машинного обучения в вектор, на основе которого при помощи алгоритма SPTAG из индекса выбираются наиболее похожие векторы и как результат возвращаются связанные с ними изображения.URL: https://blogs.microsoft.com/ai/bing-vector-search/
Новость: https://www.opennet.dev/opennews/art.shtml?num=50698
Поскольку M$ трудно обвинить в альтруизме, можно предроложть, что им потребовался аутсорс на поиск ошибок :)
Можно сразу опередить всех умников и сразу написать EEE.
Ненужная библиотека ненужного поиска, который ищет хуже, чем Duckduckgo.
Какой поисковик лучший?
По каким критериям?
Гугл. К сожалению. По любым критериям.
Спорно. рускоязычный контент таки яндекс лучше индексирует.
По хабру и жж гугл норм ищет. А какой ещё бывает полезный русскоязычный контент в сети?
Стыдно такое писать на опеннете
Так по опеннету гугл тоже лучше яндекса ищет.Какие еще остались варианты полезных сайтов рунета?
Только что проверил поиск по фразе:
"Так по опеннету гугл тоже лучше яндекса ищет.
Какие еще остались варианты полезных сайтов рунета?"и ее нашел здесь только Яндекс. Гугл не нашел. Получается, по опеннету лучше Яндекс ищет.
Русскоязычный контент? Глупее выражения трудно придумать.
Никакой )
А что, бывает поиск ещё хуже чем у утки? Но это точно не про Bing.
этот ваш ненужный поиск используется в Duckduckgo "DuckDuckGo's results are a compilation of "over 400" sources,[15] including Yahoo! Search BOSS; Wolfram Alpha; Bing; Yandex; its own Web crawler (the DuckDuckBot); and others.[4][15][16][17] It also uses data from crowdsourced sites, including Wikipedia, to populate knowledge panel boxes to the right of the results.[17]" https://en.wikipedia.org/wiki/DuckDuckGo
я уж забыл когда последний раз видел в логах DuckDuckBot
DuckDuckGo ничего не ищет. Он просто проксирует результаты из Bing.
Умные...
> Поскольку M$ трудно обвинить в альтруизме, можно предроложть, что им потребовался аутсорс
> на поиск ошибок :)скорее можно предположить что бинг отправится следом за йожом :-(
видимо, в новом хромойоже поменять дефолтный поисковик индусы не справились
насколько я знаю ддг ище на инглише как правило опираясь на бинг
> насколько я знаю ддг ище на инглише как правило опираясь на бингну будет искать, опираясь на яндекс, по слухам, оттуда давно уже берется большая часть его содержимого.
Вполне возможно, что просто перешли на что-то новое, существенно лучшее, а это выкинули в качестве дезинформации для тех, кто сам исследованиями не занимается. Удобно же, потенциальные конкуренты сидят на старье и уверены, что у них всё как у М$
вообще-то гораздо удобнее, когда потенциальные клиенты покупают ключи для api, а данные хранит гугл...зачеркнуто, MS.
И никакого кода никому не давать, даже устаревшего.Но корпорация - зла.
Потому что нафиг эта либа никому не упёрлась.
А мне нравится. Прикольно было бы в засунуть в WorldBrain's Memex[1], чтобы искать по истории с учётом семантики, а не тупо по регекспам.
Что это за штука и что она делает?
> Что это за штука и что она делает?Историю браузера индексирует. Не только заголовки и теги, но ещё и содержимое страниц. Позволяет искать по истории всякими интересными запросами, а не так как это по дефолту сделано убого. Короче круть несусветная.
> Что это за штука и что она делает?правильный линк - lmgfy:memex...зачеркнуто, https://worldbrain.io/
ну и как обычно - работает в последнем-распоследнем хроме, хроме, хроме, и еще иногда и с глюками в распоследнем фуфлофоксе из-за любви к нескучным js тулкитам, разумеется, самых распоследних версий. (Попутно сливает массу инфы о юзвере - как обещается, отключаемо. Впрочем, нескучные тулкиты и нагромождение зависимостей не оставляют возможности это действительно проверить.)
По этой же причине с ms'овской поделкой ее связать не получится, у той нет нескучного npm модуля.
Гипертекстового?
Даже не представляю, что должно случиться с человеком, что произойти в жизни, чтобы он в этом стал копаться, разбираться?
ну, например, человеку может захотеться нормального поиска по собственным серверам, не сливающего данные дяде и не зависящего от канала в сторону дяди.И при этом у него может найтись на это время, вдохновение, и кое-какое образование.
Такой человек пойдет https://sphinxsearch.com/ сюда и обретет там счастья полные штаны
А еще более такой человек сравнит разные методологии и архитектуры, а значит - пойдёт не только по одной ссылке.
ну я же вроде сказал про образование...
как минимум позволяющее отличить примитивный индексатор с поиском по побуквенным совпадениям от нечеткого поиска с самообучающимся алгоритмом, умеющим отличить картинку кошки от собаки.
> ну я же вроде сказал про образование...
> как минимум позволяющее отличить примитивный индексатор с поиском по побуквенным совпадениям
> от нечеткого поиска с самообучающимся алгоритмом, умеющим отличить картинку кошки от
> собаки.Ну и расскажи про примитивный индексатор с поиском по буквам в поиски википедии, а над тобой поржет весь опеннет
> Ну и расскажи про примитивный индексатор с поиском по буквам в поиски
> википедии, а над тобой поржет весь опеннет!
(это палец, поржи)P.S. в викивракии именно примитивный индексатор с поиском по буквам - найти не может ничего и никогда, кроме такого, что проще "искать" прямо в строке url
Впрочем, я охотно поверю, что альтернативно-одаренные опеннетчики поржут, поскольку никогда им не пользовались, но свято верят в чудо.https://vectorsearch.azurewebsites.net/ - для ниасиливших прочитать по английски.
конечно же, для викивракии это давно пройденый этап, она читает мысли прямо из головы.
Написано "open source" и нет ссылки на исходники. В загрузках предлагают скачать бинарники. Морды своей, я так понял нет, нужно где-то искать?
> Написано "open source" и нет ссылки на исходники.у вас очки запотели - меньше др..те на лошадок в интернетах. Возможно, сумеете после этого расслеповать репо на гитхабе.
> В загрузках предлагают скачать
> бинарники. Морды своей, я так понял нет, нужно где-то искать?это низкоуровневая библиотека векторного поиска. Ее можно использовать в своем индексаторе, ага, когда и если ты его напишешь.
>> Написано "open source" и нет ссылки на исходники.
> у вас очки запотели - меньше др..те на лошадок в интернетах. Возможно,
> сумеете после этого расслеповать репо на гитхабе.Это что-ли?
3.0 and up sources are currently only available under a delayed FOSS or commercial licenses for several reasons; going back to regular plain old GPL is planned but timing is moot; so email us if you require the sources immediately.
>> В загрузках предлагают скачать
>> бинарники. Морды своей, я так понял нет, нужно где-то искать?
> это низкоуровневая библиотека векторного поиска. Ее можно использовать в своем индексаторе,
> ага, когда и если ты его напишешь.То есть нет не только морды, но и краулера?
Вы что издеваетесь?
это я издеваюсь, а он реально не понимает.P.S. а меж тем там уже пачка issues и пара дельных pull-requests, то есть подальше от опеннета находятся те, кто не только понимают, но, похоже, всерьез намерены пользоваться. Эх...где мой безусловный доход?
> Это что-ли?еще меньше др..м на лошадок, и очки промойте - вы их, похоже, забрызгали и оно там присохло, а к нему прилипла газета Красная Звезда, кою вы и читаете.
Потому что в SPTAG нет никаких версий "3.0"> То есть нет не только морды, но и краулера?
какого в $опу краулера? Оно не про веб вообще.
Оно про поиск векторов, голая математика.
>> Это что-ли?
> еще меньше др..м на лошадок, и очки промойте - вы их, похоже,
> забрызгали и оно там присохло, а к нему прилипла газета Красная
> Звезда, кою вы и читаете.
> Потому что в SPTAG нет никаких версий "3.0"При чём тут SPTAG? Ты хоть почитай о чём ветка обсуждения. А то выходит живая иллюстрация к бревну в чужом глазу :)
> При чём тут SPTAG? Ты хоть почитай о чём ветка обсуждения. Аа, так ты о свинксе? Я думал, эту тему мы сразу проехали, ненужное ненужно.
Надо ж. Я им не интересовался лет с десяток, а они за это время, оказывается, совсем кукухой уехали от успехов.
Но нет, веб-crawler к нему отродясь не прилагался, эта хрень для поисков по своей собственной, ни с чем несовместимой базе, наполнять которую надо самому, уж как сумеешь.в отличие от ms'овской поделки, база просто текстовая, поэтому применить в домашнем хозяйстве раньше было вполне можно, без особых прыжков и приседаний со вспоминанием курса линейной алгебры и чего там еще.
Но ненужно - современный sqlite'овый fts и побыстрее будет, и более предсказуем.
Мне для такого хватало xapian+omega (ну ладно, и ещё немножко рукоприкладства -- жаль только, не выложил никуда).
В чем проблема выложить? Если просуммировать время на написание всех комментов, где ты сокрушаешься о невыкладывании, -- получится больше, чем время на публикацию своего "рукоприкладства".
> В чем проблема выложить?Сделано было лет десять назад, те машины offline уже лет пять, сохранились ли диски или копии -- не знаю. Сам локти грызу, а переизобретать колёсико пока лень.
то же, что заставляет копаться в любом опенсорсе?
> Код написан на языке С++ и распространяется под лицензией MIT.Нет ведь написать на чистом Си и распространять под GPLv3+.
EEE и корпоративные грязные приемы во все поля.
Спасибо, не нужно.
Дарёному коню в лицензию не смотрят.
> Дарёному коню в лицензию не смотрят.А ведь и точно! Троянскому коню -- сразу на авторстве разворот от ворот.
"Микрософт открыл", "Интел выпустил", "Оракл пофиксил"... [I]Охохонюшки, опенетушки...
>Троянскому конюДавай, расскажи нам, код какого трояна ты нашёл в этой майкрософтовской библиотеке.
>>Троянскому коню
> Давай, расскажи нам, код какого трояна ты нашёл в этой майкрософтовской библиотеке.Ты плохо помнишь сказку про Трою?
"Нашли"-то как раз те, что открыли ворота и втащили.
Та-а-а-шта... ты нам расскажи -- как оно... "там".
Мне вот интересно - ты дурачка строишь или таки взаправду? Повторяю вопрос: какой вредоносный или потенциально вредоносный код ты обнаружил в библиотеке из новости?
Я скачал код - там в некоторых местах обнаружил замаскированный EEE (я знаю C++ если что). Опенсорсному сообществу надо быть на чеку.
> (я знаю C++ если что). Опенсорсному сообществу надо быть на чеку.Ага, "не всё так просто, я дочь офицера".
Ну ты и спалился, солдат ;)
> Мне вот интересно - ты дурачка строишь или таки взаправду? Повторяю вопрос:Не больше, чем ты.
> какой вредоносный или потенциально вредоносный код ты обнаружил в библиотеке из
> новости?Повторяю ответ. В заголовке ж. Новости. С первого раза не понятно. Почему.
> Повторяю ответ. В заголовке ж. Новости. С первого раза не
> понятно. Почему.Потому что в заголовке новости ничего не сказано про троянских коней или ещё каких-то сферических лошадок в вакууме, подсказывает Кэп.
Перед началом дискуссии на опеннете рекомендую читать ник собеседника.Посмею предположить, что ваш вопрос остался вашим собеседником непонятым, потому что ответ — взаправду.
Давайте сразу признаем что ищет BIng так себе )
Зато у него все шаги записаны.
> Давайте сразу признаем что ищет BIng так себе )А он вообще что-то ищет?
Помнится я как-то пытался им искать, у меня создалось впечатление, что он не ищет что-то в сети, а показывает ссылки на рандомные сайты в надежде угадать :-D
> А он вообще что-то ищет?секс с конями мне ни разу не находил.
так что да, ищет, а не подбирает подходящее по истории твоей веб-активности. Видимо, у ms (по крайней мере - моей) нет.
P.S. а еще у него картинки
>> А он вообще что-то ищет?
> секс с конями мне ни разу не находил.
> так что да, ищет, а не подбирает подходящее по истории твоей веб-активности.
> Видимо, у ms (по крайней мере - моей) нет.
> P.S. а еще у него картинкиНу секс с конями я не пробовал искать ни там, ни в гугле, ни альтависте. Как-то мне не нужно.
А вот когда пробовал искать по делу он искал ну чуть лучше покойного спутника.А поиск по картинкам очень качественный есть у гугла и яндекса, узнай же это.
> Ну секс с конями я не пробовал искать ни там, ни в
> гугле, ни альтависте. Как-то мне не нужно.а я вот пробовал - регулярно и старательно. И теперь даже если набираю "алгоритмы векторного поиска" - в пару кликов вылезают лошадки (что и было целью, если еще не дошло). Что как бы говорит нам о том, как именно работает "поиск" гугля последние десять лет. До 2008го - да, было лучше.
Разумеется, я могу его обмануть, но в этих случаях релевантность поиска сравнима нынче уже с duck-duck - зачем улучшать алгоритмы поиска, когда можно вместо этого улучшать алгоритмы слежки?
> А поиск по картинкам очень качественный есть у гугла и яндекса, узнай
я рад за гугля с яндексом, но вам же сказали - эта либа - для тех кто сам себе хочет быть гугляндексом (и готов на это потратиться, поскольку там нет готового). А вы притащили корявого свинкса, который только сегфолтиться хорошо умеет.
Кстати, возможно, яндексу и пригодится - его "очень качественный" лажает на элементарных вещах (сунул ему первую попавшуюся фотку с дачи, чисто поржать - нет, за последние годы лучше не стало. У гугля стало. Кстати, ЭТОТ поиск результаты слежки, видимо, не использует, про дачу гугль знает.)
хотя скорее всего лажает от того что обучать ленятся, а не от того что алгоритм плох.
не вижу описание алгоритмической сложности сего поделия, ткните, ну или бенчмарки какие-нить
э... бенчмарки - чего? говорят тебе - это библиотека. Ты ей вектор, она тебе - "похожий".
Можно было бы сравнивать с другими библиотеками векторного поиска, на одном и том же массиве данных, если бы они у тебя были.
> э... бенчмарки - чего? говорят тебе - это библиотека."""
В состав библиотеки включены средства для построения индекса и организации поиска векторов, а также набор инструментов для сопровождения распределённой системы online-поиска, охватывающей очень большие коллекции векторов.
"""Ну если считать это бенчмарком
"""
Например, в Bing для векторного индекса размером более 150 миллиардов векторов время выборки наиболее релевантных результатов укладывается в 8 мс.
"""Допустим это для поиска, а для индексации "150 миллиардов векторов" сколько времени уйдет?
> В состав библиотеки включены средства для построения индекса и организации поиска векторовну. У тебя есть какая-то более другая библиотека для поиска векторов и набор этих самых векторов для построения индекса?
> Допустим это для поиска, а для индексации "150 миллиардов векторов" сколько времени уйдет?
ну уж всяко меньше чем найти данные и построить по ним эти 150 миллиардов векторов. Правда, кто-то жаловался, что обломался о лимит 4g, но, возможно, просто не надо их пихать индексатору за раз.
Ты бы хоть код глянул, что-ли - там вполне человекочитаемые примеры на, тьфу, пихоне.
>ну. У тебя есть какая-то более другая библиотека для поиска векторов и набор этих самых векторов для построения индекса?а почему нет? алгоритмы известны. И в случае с МС, ничего нового тут нету.
> Ты бы хоть код глянул, что-ли - там вполне человекочитаемые примеры на, тьфу, пихоне.
а зачем? если есть ссылки на вики
к примеру https://ru.wikipedia.org/wiki/K-%D0%BC%D0...
"""
Из этого можно сделать вывод, что чем больше элементов будет содержаться в узле, тем быстрее будет проходить поиск по дереву, так как высота дерева будет оставаться минимальной, однако не следует хранить огромное количество элементов в узле, так как при таком способе всё дерево может выродиться в обычный массив или список.
"""Там дальше в разделе "Поиск ближайшего соседа" описана сложность.
Ну и собственно свои плюсы-минусы
"""
Первый метод требует меньше ресурсов при работе с индексом, а второй демонстрирует более высокую точность результатов поиска при очень больших коллекциях векторов.
"""
> а почему нет? алгоритмы известны. И в случае с МС, ничего нового тут нету.откуда ж я знаю, почему у тебя ее нет. У MS вот, оказываетсо, есть. Ничего нового - начать и кончить, ага.
Будем ждать пока и векторы нам ms подарит, или сами писать пойдем? Вот и я тоже думаю...
> Будем ждать пока и векторы нам ms подарит, или сами писать пойдем?
> Вот и я тоже думаю...https://en.wikipedia.org/wiki/K-d_tree
раздел Open source implementations, есть и их куча, все кому не лень её писали
> раздел Open source implementations, есть и их куча, все кому не леньвидимо, так написали, что пользы никому от них никакой.
А из этой ms умудрилась собрать бинг, что как бе намекает.
Дальше можно заниматься схоластикой, и писать синтетические тесты для неведомой хрени, найденой в википедии. Можно вместо этого придумывать, как представить доступный тебе набор информации векторами и потихоньку писать замену тому же свинксу.
А я пойду собачку погуляю, пожалуй. К счастью, для этого не нужна ни одна модная технология моложе XIX века.
Потому и библиотека халявная.
А вы у у гугла без истории поиска поищите результат примерно тот же будет что и у бинг. Вот до чего терпеть не могу m$, но поиск в целом нормальный.
тут, конечно, еще вопрос, история чего есть у bing.
С учетом search suggestions и не только.(нет, не предлагайте мне кормить его конями и понями, это надо несколько лет к ряду делать, чтобы результат увидеть, у меня давным-давно нет столько времени)
обвязка есть, а надстройку сделать забыли?
не забыли, bing называетсо.
Исходники зажали, это да. Ну чо ты хошь, корпорация - зла!(я сегодня читал про особенности администрежа windows core через, блжад - ssh - плакал. Такое и впрямь только от большого зла можно наколбасить. И кто тут нынче пуссиэкзешники?)
От Майкрософт нам ничего не нужно.
У них денег много, стимулируют почёсывая гениталии того кто при делах и устроят как им нужно... А многочисленные проплаченные хомячки дружно одобрят "не сектантсквое" начинание, а адепты млкомягкой кроссплатформенности начнут выть как это прекрасно и всем пингвино юзающим полезно!
> От Майкрософт нам ничего не нужно.вы - ненужно.
тема хоть и нишевая но очень острая. Приблизительное сравнение множеств с неограниченным числом вариантов за фиксированное время из области не решаемого.
А что, кто-то пользуется бингом для поиска? о_О
Дарёному ослику под хвост не заглядывают?
Да, я пользуюсь Бингом.
Его игнорируют SEO оптимизаторы, поэтому он ищет лучше Гугла.
Хреново он ищет. Точнее, неверно расставляет приоритеты.
Гугл первым ставит официальные мануалы, бинг же - не всегда, но часто - всякие stackoverflow.
Где лежат официальные мануалы и так известно без Гугла.
А редкие специфические вещи Бинг находит лучше Гугла и Яндекса.
Ну и что, что известно? Написать в поисковой строке браузера что-то вроде "javascript reduce" и сходить по первой ссылке все равно быстрее.Редкие специфичные - хм, это какие? Где-то слышал, что Bing порнуху ищет лучше :-)
Про порнуху не в курсе, но как то раз захотелось перечитать одну статью по специфической эзотерической практике. Оказалось, что сайт исчез в месте со статьей и на archive.org ее нет.
Должна же быть где-то копия на просторах инета?
Гугл меня упорно держал в поисковом пузыре. Искуственный интеллект предлагал, что по его мнению ищут обычные люди по подобным словам. По ссылкам все, что угодно, кроме копии статьи.
Яндекс тоже не смог ничего найти.
А Бинг нашел сразу на первой странице выдачи и копии статьи и обсуждения статьи на форумах.
После этого случая я Бинг зауважал.
Порнуху тоже. В целом это удивительно, но он зачастую успешней других находит релевантные _нужные_ результаты. А из гугла просто всё удаляют, там ничего не ищется, как ни начнёшь искать что-то конкрентное.