:blobcatscience: Пощупал немножко sentence-embedding'овые модели. если я правильно всё понял[oe], это по сути попытка (и очень неплохая) создать семантический перцепционный хэш:

- из текста произвольной длины получается числовой вектор фиксированной размерности (разные модели разной)
- для равных текстов векторы одинаковые (что и для традиционного хэша верно), для похожих по смыслу (семантике) текстов получаются близкие векторы (а это уже семантико-перцепционная часть)

Воткнул в Obsidian плагин Smart Connections[sc], который с помощью локальной модели вычисляет такие векторы для заметок и с помощью этих векторов ищет похожие для текущей заметки или произвольного текстового запроса. Результаты на удивление неплохи даже на крошечной модели с 35 Мб весов (bge-micro-v2), но считаются, конечно, медленно.

Применить это мне пока что негде, но что такое *существует*, знать полезно.

[oe]: ollama.com/blog/embedding-mode
[sc]: github.com/brianpetro/obsidian

@dside чем они лучше редакторского расстояния и прочих триграмм с соседями?

@3draven Левенштейн и триграммы сугубо про слова. *Семантический* поиск про, ну, *семантику*. Может улавливать сходство между синонимичными терминами и формулировками, например. В меньшей степени, но в ту же сторону, смежные тематики.

@dside вопрос состоял не в том, что такое семантический, а конкретно, чем лучше? Построить хэш на редакторском расстоянии, который словит сходство слов в произвольном порядке будет сильно хуже?

@dside нейронка слишком мелкая что бы хорошо понимать сходство семантики.

@3draven она его и не понимает. Ни хорошо, ни плохо, никак, совсем. И регулярно выдаёт фигню. Всё как с LLMками. Но среди фигни находит и то, что анализ исключительно слов, без оглядки на язык, не находит.

@dside судя по всему бенчмарков не видел с полнотекстовыми поисками и подобным или их нет вовсе. Не зная ответа строить гипотезу на своем понимании вопроса мне не надо, спасибо :) Я ведь конкретную штуку спросил. Нейронка может быть намного хуже обычного подхода. Ладно, разведение бури в стакане не входило в мой вопрос, закроем тему.

@3draven никаких гипотез, я прямо сейчас этим пользуюсь у себя в заметках и это непосредственные практические результаты. Из своих личных заметок делать бенчмарк я не буду, извините.

Но как я уже сказал в соседней ветке, бенчмаркать их друг против друга а нахожу дурацкой затеей. Примерно как бенчмаркать условный Redis против SQLite. Слишком разные штуки.

@dside банальное редакторское расстояние и словарь синонимов, скачанный с сети вполне вероятно будут быстрее и намного проще. Но находишь и находишь.

@3draven они 100%-но будут быстрее и намного проще, но заберут кратно больше времени лично у меня, а словарь синонимов непременно упустит не особо устоявшиеся слова, коих у меня в заметках хватает, и что можно закрыть подредактировав словарь руками или потратив больше времени на поиск словаря поновее… и что-то эта затея уже перестаёт казаться такой уж радужной.

Follow

@dside эти штуки не надо писать, они написаны давно и неплохо работают. Надо просто погуглить чуть. В моих областях, например, апач люцена есть и еще вагон. Там от мелкого до слонов все есть. И они очень, очень быстрые. Словарь засовываешь в мозг этой штуки и все. Блин, ладно, пойду.

@3draven а кто-то говорил про "писать"? Да, хватит, продуктивной дискуссии что-то не получается.

Sign in to participate in the conversation
MustUdon

I like Twitter, but, Mastodon it is so excited! Feel free to register it is server just for fun! Usefull links https://instances.social https://www.reddit.com/r/Mastodon/comments/yugh2o/some_useful_mastodon_lists/?utm_source=share&utm_medium=web2x&context=3