Что означают параметры M, ef_construct, ef_search в HNSW?

В HNSW (Hierarchical Navigable Small World) важны следующие гиперпараметры:

Короткий ответ

Что ответить на собеседовании

В HNSW (Hierarchical Navigable Small World) важны следующие гиперпараметры:

Подробный разбор

Ответ с пояснениями

В HNSW (Hierarchical Navigable Small World) важны следующие гиперпараметры:

  • M — максимальное количество связей (рёбер) для каждого узла в графе. Чем больше M, тем плотнее граф, что улучшает качество поиска, но увеличивает память и время построения.
  • efConstruction — размер динамического списка кандидатов при построении индекса. Большие значения повышают качество индекса и точность поиска, но увеличивают время построения.
  • efSearch — размер списка кандидатов при поиске. Чем больше efSearch, тем выше точность поиска, но дольше время отклика.

Пример настройки:

index = hnswlib.Index(space='l2', dim=128)
index.init_index(max_elements=10000, M=16, ef_construction=200)
index.set_ef(50)  # efSearch

Здесь M=16 балансирует качество и ресурсы, efConstruction=200 улучшает индекс, efSearch=50 задаёт компромисс между скоростью и точностью поиска.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее