Comments 4
DIW
Приветствую. Подскажете может, какую DB могли бы порекомендовать (или примочку к postgres) чтобы обойти ограничение размерности векторов в 16000? Или это уже разумный лимит и лучше просто уменьшать размерность при построении?
Здравствуйте.
Все известные мне базы ограничивают размерность.
Ограничение разумное, оно связано с memory management'ом в Postgres. Подробнее можно почитать в issue на гитхабе.
Предел зависит от расширения. Например, есть pgvecto.rs, который повышает предел до 65535 взамен Durability принципа. Подойдёт тем, кому нужны базы на сотни тысяч фильмов.
Для поиска важно только расстояние между векторами. Большая размерность даёт оверхед. Понижайте, если получается сохранить отношения векторов в пространстве.
Благодарю. Хотел сравнить насколько повысится качество поиска при больших размерностях и стоит ли оно того. В моей выборке оказалось не так много фильмов (около 2000), из их описания добавил к ents еще и noun_chunks, состоящие из двух и более слов (предполагая, что это должно повысить релевантность), исключил некоторые стоп-слова, которые не несут смысловой нагрузки — получилась размерность 16751, чуть-чуть в лимит не укладывается.
Попробую еще оптимизировать, если не выйдет - попробую pgvecto.rs.
Спасибо за ответ.
Рекомендатель кино или как я писал свое DIY-решение для поиска новых фильмов