Практическое задание

Эта задача — шаг 18 курса «Redis в проде»

Похожие документы: Vector Sets

средне~10 мин

В /root/vectors.txt — эмбеддинги статей базы знаний: в каждой строке имя статьи и 4 координаты вектора через пробел.

  1. Загрузи все строки в векторное множество docs командой VADD (имя статьи — элемент, вектор — его координаты).
  2. Найди командой VSIM 3 статьи, ближайшие к вектору запроса 0.7 0.4 0.1 0.0.
  3. Запиши их имена в /root/nearest.txt — по одному в строке, от самой похожей к менее похожей.

Похожесть здесь — косинусная, как у эмбеддингов: важно направление вектора, а не расстояние между точками.

Что потренируешь:
  • redis
  • Vector Sets
  • VADD
  • VSIM
  • VCARD
  • векторный поиск
  • эмбеддинги

Разбор темы

Vector Set — тип данных Redis 8, похожий на sorted set, но вместо числового score у элемента вектор. Внутри — граф HNSW, который ищет ближайших соседей приближённо, но быстро даже на миллионах векторов; сходство считается по косинусу, поэтому важно направление вектора, а не его длина. По умолчанию координаты квантуются в int8 — памяти в 4 раза меньше ценой небольшой погрешности. Это основа семантического поиска и RAG: тексты превращают в эмбеддинги, а по запросу пользователя находят самые близкие по смыслу документы.

Что проверяется

  1. в docs все статьи из файла, размерность 4
  2. векторы загружены из файла
  3. в /root/nearest.txt три ближайшие статьи по порядку

Как это выглядит